/[MITgcm]/MITgcm_contrib/enderton/Diagnostics/DiagPlot.m
ViewVC logotype

Diff of /MITgcm_contrib/enderton/Diagnostics/DiagPlot.m

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

revision 1.1 by enderton, Mon Jan 31 15:43:27 2005 UTC revision 1.7 by enderton, Tue Sep 13 19:32:03 2005 UTC
# Line 40  figure; clf; set(gca,'fontsize',fs_tick) Line 40  figure; clf; set(gca,'fontsize',fs_tick)
40  % Loop over subplots and make plots.  % Loop over subplots and make plots.
41  for inrow = 1:nrow  for inrow = 1:nrow
42            
43      nexp = length(page{inrow}); if nexp ~= 1, nexp = nexp - 1; end      ntrl = length(page{inrow}); if ntrl ~= 1, ntrl = ntrl - 1; end
44      if nexp == 1, cmp = 'Sep'; else, cmp = page{inrow}{end}; end      if ntrl == 1, cmp = 'Sep'; else, cmp = page{inrow}{end}; end
45      if nexp == 1, ncol = 1; elseif cmp == 'Sbs', ncol = nexp; else ncol = 1; end      if ntrl == 1, ncol = 1; elseif isequal(cmp,'Sbs'), ncol = ntrl; else ncol = 1; end
46            
47      dx = (1-dxl-dxr-(ncol-1)*dxm)/ncol;      dx = (1-dxl-dxr-(ncol-1)*dxm)/ncol;
48      dy = (1-dyb-dyt-(nrow-1)*dym)/nrow;      dy = (1-dyb-dyt-(nrow-1)*dym)/nrow;
49            
50      for incol = 1:ncol      for incol = 1:ncol
51                    
52          if size(data{inrow}{incol}) == [6*hres,hres], isCS = 1; else, isCS = 0; end          if ~isequal(data{inrow}{incol},'Empty')
         fln = page{inrow}{incol}{ifln};  
         pst = page{inrow}{incol}{ipst};  
         flu = page{inrow}{incol}{iflu};  
53                    
54          % Set panel settings to default values, override with optional              % Very crude test to see if cube sphere, must be fixed!
55          % settings.              test = size(data{inrow}{incol});
56                  ExpInfo = page{inrow}{incol};              if test(1)./test(2) == 6, isCS = 1; else, isCS = 0; end
57                  for iarg = 14:2:length(ExpInfo)              fln = page{inrow}{incol}{ifln};
58              if ~ismember(ExpInfo{iarg},diagrunparam)              pst = page{inrow}{incol}{ipst};
59                  ivalue=ExpInfo{iarg+1};              flu = page{inrow}{incol}{iflu};
60                  if isstr(ivalue), fvalue=['''',ivalue,''''];              
61                  elseif prod(size(ivalue))>1, fvalue=mat2str(ivalue);              % Set panel settings to default values, override with optional
62                  else fvalue=num2str(ivalue); end              % settings.
63                  evalexpr = [ExpInfo{iarg},'=',fvalue,';'];              DiagPlotDefaults;
64                  if DiagDebug, disp(['  Optional plot parameter evaluation:  ',evalexpr]); end                          ExpInfo = page{inrow}{incol};
65                  eval(evalexpr);                          for iarg = 14:2:length(ExpInfo)
66              end                  if ~ismember(ExpInfo{iarg},diagrunparam)
67                  end                      ivalue=ExpInfo{iarg+1};
68                                if isstr(ivalue), fvalue=['''',ivalue,''''];
69          disp(['  Row: ',num2str(inrow),'/',num2str(nrow),...                      elseif prod(size(ivalue))>1, fvalue=mat2str(ivalue);
70                '; Col: ',num2str(incol),'/',num2str(ncol),...                      else fvalue=num2str(ivalue); end
71                '; Cmp: ',cmp]);                      evalexpr = [ExpInfo{iarg},'=',fvalue,';'];
72                                if DiagDebug, disp(['  Optional plot parameter evaluation:  ',evalexpr]); end
73          % Load contour intervals, units (loaded in 'DiagFieldParam[A,O]').                      eval(evalexpr);
74          try, contint; catch                  end
75              try, eval(['contint = ',fln,'contour',flu,';']);                          end
76              catch, disp(['***Warning***  No contour information for ',fln]);              
77                     disp(['               Using 10 generic contour levels.']);              disp(['  Row: ',num2str(inrow),'/',num2str(nrow),...
78                     contint = 10; end, end                    '; Col: ',num2str(incol),'/',num2str(ncol),...
79          try, units; catch                    '; Cmp: ',cmp]);
80              try, eval(['units = ',fln,'units',flu,';']);              
81              catch, disp(['***Warning***  No unit information found for ',fln]);              % Load contour intervals, units (loaded in
82                     disp(['               Using question mark.']);              % 'DiagFieldParam[A,O]').
83                     units = '?'; end, end              if ~isequal(cmp,'Dif')
84                          try, contint; catch
85          xi = dxl + (incol-1)*(dx+dxm);                      try, eval(['contint = ',fln,'contour',flu,';']);
86          yi = 1-dyt-inrow*dy-(inrow-1)*dym;                      catch, disp(['***Warning***  No contour information for ',fln]);
87                                       disp(['               Using 10 generic contour levels.']);
88          isp = (inrow-1)*ncol+incol;                             contint = 10; end, end
89          subplot(nrow,ncol,isp); hold on;              else, try, contint; catch, contint = 10; end, end
90          set(gca,'position',[xi,yi,dx,dy],'fontsize',fs_axis);              try, units; catch
91                            try, eval(['units = ',fln,'units',flu,';']);
92          % (Re)set axes and color axis -- Accounts for things like a possible                  catch, disp(['***Warning***  No unit information found for ',fln]);
93          % colorbar, or trimming the axis in certain ways.                         disp(['               Using question mark.']);
94          % Apply desired colorbar, contour label, tick labels, box, grid, and                         units = '?'; end, end
95          % other such odds and ends.              
96          DiagPlotMakePlot;              xi = dxl + (incol-1)*(dx+dxm);
97          DiagPlotResetAxes;              yi = 1-dyt-inrow*dy-(inrow-1)*dym;
98          DiagPlotMisc;              
99          DiagPlotTitles;              isp = (inrow-1)*ncol+incol;
100          clear contint units              if DiagDebug, disp(['  DiagDebug:  Subplot:  ',mat2str([nrow,ncol,isp])]); end
101                if DiagDebug, disp(['  DiagDebug:  SP Range: ',mat2str([xi,yi,dx,dy])]); end
102                subplot(nrow,ncol,isp); hold on;
103                set(gca,'position',[xi,yi,dx,dy],'fontsize',fs_axis);
104                
105                if Coast
106                    fac = pi./180;
107                    xax{inrow}{incol} = xax{inrow}{incol}.*fac;
108                    yax{inrow}{incol} = yax{inrow}{incol}.*fac;
109                else, fac = 1; end
110                
111                % (Re)set axes and color axis -- Accounts for things like a possible
112                % colorbar, or trimming the axis in certain ways.
113                % Apply desired colorbar, contour label, tick labels, box, grid, and
114                % other such odds and ends.
115                DiagPlotMakePlot;
116                DiagPlotResetAxes;
117                DiagPlotMisc;
118                DiagPlotTitles;
119                clear contint units crange
120            end
121      end      end
122  end  end
123    
# Line 111  end Line 128  end
128    
129  % Save plot as desired.  % Save plot as desired.
130  if SavePlots  if SavePlots
131      outputfile = [outputdir,'/',pagename,'.eps'];      if isequal(outputdir,'')
132            outputfile = [pagename,'.eps'];
133        else
134            outputfile = [outputdir,'/',pagename,'.eps'];
135        end
136      print('-depsc2',outputfile);      print('-depsc2',outputfile);
137  end  end

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.22