1 |
gforget |
1.1 |
function []=diags_grid(dirModel,doInteractive); |
2 |
|
|
%object : load grid to mygrid if needed |
3 |
|
|
%input : dirModel is the model run / output directory |
4 |
|
|
%(optional) doInteractive=1 allows users to specify parameters interactively |
5 |
|
|
% doInteractive = 0 (default) uses ECCO v4 parameters |
6 |
|
|
% and omits budgets and model-data misfits analyses |
7 |
|
|
|
8 |
|
|
%global variables |
9 |
|
|
gcmfaces_global; |
10 |
|
|
global myparms; |
11 |
|
|
|
12 |
|
|
if ~isfield(myparms,'dirGrid'); |
13 |
|
|
|
14 |
|
|
if isempty(dir('GRID'))&isempty(dir('nctiles_grid'))&... |
15 |
|
|
isempty(dir([dirModel filesep 'GRID']))&... |
16 |
|
|
isempty(dir([dirModel filesep 'nctiles_grid'])); |
17 |
|
|
dirGrid=input('grid directory?\n'); |
18 |
|
|
fprintf('\nFor the ECCO v4 LLC90 grid, the following parameters\n'); |
19 |
|
|
fprintf('apply: nF=5; frmt=''compact''; memoryLimit=0; \n\n'); |
20 |
|
|
nF=input('Number of faces? (nF=1, 4, 5 or 6)\n'); |
21 |
|
|
frmt=input('File format? (frmt=''straight'', ''cube'' or ''compact'')\n'); |
22 |
|
|
memoryLimit=input('memoryLimit? (0=load full grid, 1=less, 2=even less)\n'); |
23 |
|
|
elseif ~isempty(dir('GRID')); |
24 |
|
|
dirGrid=['GRID' filesep]; |
25 |
|
|
nF=5; |
26 |
|
|
frmt='compact'; |
27 |
|
|
memoryLimit=0; |
28 |
|
|
elseif ~isempty(dir('nctiles_grid')); |
29 |
|
|
dirGrid=['nctiles_grid' filesep]; |
30 |
|
|
nF=5; |
31 |
|
|
frmt='nctiles'; |
32 |
|
|
memoryLimit=0; |
33 |
|
|
elseif ~isempty(dir([dirModel filesep 'GRID'])); |
34 |
|
|
dirGrid=[dirModel filesep 'GRID' filesep]; |
35 |
|
|
nF=5; |
36 |
|
|
frmt='compact'; |
37 |
|
|
memoryLimit=0; |
38 |
|
|
elseif ~isempty(dir([dirModel filesep 'nctiles_grid'])); |
39 |
|
|
dirGrid=[dirModel filesep 'nctiles_grid' filesep]; |
40 |
|
|
nF=5; |
41 |
|
|
frmt='nctiles'; |
42 |
|
|
memoryLimit=0; |
43 |
|
|
end; |
44 |
|
|
|
45 |
|
|
if doInteractive; |
46 |
|
|
nF=input('number of faces? (1, 4, 5or 6)\n'); |
47 |
|
|
frmt=input('file format ? (''straight'', ''cube'' or ''compact'')\n'); |
48 |
|
|
memoryLimit=input('memoryLimit ? (0=load full grid, 1=load less, 2=load even less)\n'); |
49 |
|
|
end; |
50 |
|
|
|
51 |
|
|
myparms.dirGrid=dirGrid; myparms.nF=nF; |
52 |
|
|
myparms.frmt=frmt; myparms.memoryLimit=memoryLimit; |
53 |
|
|
|
54 |
|
|
end;%if ~isfield(myparms,'dirGrid'); |
55 |
|
|
|
56 |
|
|
%load mygrid if needed |
57 |
|
|
test1=isfield(mygrid,'dirGrid'); |
58 |
|
|
if test1; |
59 |
|
|
test1=strcmp(mygrid.dirGrid,myparms.dirGrid); |
60 |
|
|
end; |
61 |
|
|
if ~test1; |
62 |
|
|
fprintf([' diags_grid.m now loading mygrid \n']); |
63 |
|
|
grid_load(myparms.dirGrid,myparms.nF,myparms.frmt,myparms.memoryLimit); |
64 |
|
|
end; |
65 |
|
|
|
66 |
|
|
%add definition of zonal and transport lines to mygrid |
67 |
|
|
if ~isfield(mygrid,'mygrid.LATS_MASKS'); |
68 |
|
|
fprintf([' diags_grid.m now defining zonal lines\n']); |
69 |
|
|
gcmfaces_lines_zonal; |
70 |
|
|
end; |
71 |
|
|
if ~isfield(mygrid,'LINES_MASKS'); |
72 |
|
|
fprintf([' diags_grid.m now defining transport lines\n']); |
73 |
|
|
[lonPairs,latPairs,names]=gcmfaces_lines_pairs; |
74 |
|
|
gcmfaces_lines_transp(lonPairs,latPairs,names); |
75 |
|
|
end; |
76 |
|
|
|
77 |
|
|
|