| 42 |  |  | 
| 43 | ntrl = length(page{inrow}); if ntrl ~= 1, ntrl = ntrl - 1; end | ntrl = length(page{inrow}); if ntrl ~= 1, ntrl = ntrl - 1; end | 
| 44 | if ntrl == 1, cmp = 'Sep'; else, cmp = page{inrow}{end}; end | if ntrl == 1, cmp = 'Sep'; else, cmp = page{inrow}{end}; end | 
| 45 | if ntrl == 1, ncol = 1; elseif cmp == 'Sbs', ncol = ntrl; 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 |  |  |