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 |
|
|
60 |
|
|
61 |
%ancilliary fields for netcdf file |
%ancilliary fields for netcdf file |
62 |
tim=[1:size(myDiag{1},3)]; |
tim=[1:size(myDiag{1},3)]; |
|
timName='month index'; |
|
63 |
descr=nameDiag; |
descr=nameDiag; |
64 |
|
|
65 |
%get units and long name from available_diagnostics.log |
%get units and long name from available_diagnostics.log |
66 |
[avail_diag]=read_avail_diag(filAvailDiag,nameDiag); |
[avail_diag]=read_avail_diag(filAvailDiag,nameDiag); |
67 |
|
|
68 |
|
%get description of estimate from README |
69 |
|
[rdm]=read_readme(filReadme); |
70 |
|
disp(rdm'); |
71 |
|
|
72 |
%convert to MITgcm format (90x1170 array) |
%convert to MITgcm format (90x1170 array) |
73 |
myFile=[dirOut nameDiag]; |
myFile=[dirOut nameDiag]; |
74 |
|
|
79 |
doCreate=1; |
doCreate=1; |
80 |
dimOut=write2nctiles(myFile,myDiag,doCreate,... |
dimOut=write2nctiles(myFile,myDiag,doCreate,... |
81 |
{'fldName',nameDiag},{'longName',avail_diag.longNameDiag},... |
{'fldName',nameDiag},{'longName',avail_diag.longNameDiag},... |
82 |
{'units',avail_diag.units},{'descr',descr}); |
{'units',avail_diag.units},{'descr',descr},{'rdm',rdm}); |
83 |
|
|
84 |
%prepare to add fields |
%prepare to add fields |
85 |
doCreate=0; |
doCreate=0; |
86 |
|
|
87 |
%determine relevant dimensions (note the reverse order) |
%determine relevant dimensions (note the reverse order) |
88 |
for ff=1:mygrid.nFaces; |
for ff=1:mygrid.nFaces; |
89 |
|
dimtim{ff}={dimOut{ff}{1}}; |
90 |
dim2d{ff}={dimOut{ff}{end-1:end}}; |
dim2d{ff}={dimOut{ff}{end-1:end}}; |
91 |
if avail_diag.nr~=1; |
if avail_diag.nr~=1; |
92 |
dimmsk{ff}={dimOut{ff}{end-2:end}}; |
dimmsk{ff}={dimOut{ff}{end-2:end}}; |
98 |
end; |
end; |
99 |
|
|
100 |
%now add fields |
%now add fields |
101 |
|
write2nctiles(myFile,tim,doCreate,{'fldName','month'},... |
102 |
|
{'longName','month index starting Jan. 1992'},... |
103 |
|
{'units',''},{'dimIn',dimtim}); |
104 |
write2nctiles(myFile,grid_diag.lon,doCreate,... |
write2nctiles(myFile,grid_diag.lon,doCreate,... |
105 |
{'fldName','longitude'},{'units',''},{'dimIn',dim2d}); |
{'fldName','longitude'},{'units',''},{'dimIn',dim2d}); |
106 |
write2nctiles(myFile,grid_diag.lat,doCreate,... |
write2nctiles(myFile,grid_diag.lat,doCreate,... |
149 |
|
|
150 |
%% |
%% |
151 |
|
|
152 |
|
function [rdm]=read_readme(filReadme); |
153 |
|
|
154 |
|
gcmfaces_global; |
155 |
|
|
156 |
|
rdm=[]; |
157 |
|
|
158 |
|
fid=fopen(filReadme,'rt'); |
159 |
|
while ~feof(fid); |
160 |
|
nn=length(rdm); |
161 |
|
rdm{nn+1} = fgetl(fid); |
162 |
|
end; |
163 |
|
fclose(fid); |
164 |
|
|
165 |
|
%% |
166 |
|
|
167 |
function [avail_diag]=read_avail_diag(filAvailDiag,nameDiag); |
function [avail_diag]=read_avail_diag(filAvailDiag,nameDiag); |
168 |
|
|
169 |
gcmfaces_global; |
gcmfaces_global; |