| 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 | 
  | 
  | 
| 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 |