| 1 | gforget | 1.1 | function r = nanmax(p,varargin) | 
| 2 | gforget | 1.4 | % NANMAX(p,varargin) | 
| 3 |  |  | % | 
| 4 | gforget | 1.2 | %overloaded gcmfaces nanmax function : | 
| 5 |  |  | %  1) if single gcmfaces argument, then returns the global nanmax over all faces | 
| 6 | gforget | 1.3 | %  2) if two gcmfaces arguments, then returns the nanmax of the two at each point | 
| 7 |  |  | %  3) otherwise calls double nanmax function for each face, passing over the other arguments | 
| 8 | gforget | 1.1 |  | 
| 9 |  |  | if nargin==1; | 
| 10 |  |  | tmp1=[]; | 
| 11 |  |  | for iFace=1:p.nFaces; | 
| 12 |  |  | iF=num2str(iFace); | 
| 13 |  |  | eval(['tmp1=[tmp1;p.f' iF '(:)];']); | 
| 14 |  |  | end; | 
| 15 |  |  | r=nanmax(tmp1); | 
| 16 |  |  | return; | 
| 17 |  |  | end; | 
| 18 |  |  |  | 
| 19 | gforget | 1.3 | if isa(varargin{1},'gcmfaces'); | 
| 20 |  |  | r=p; | 
| 21 |  |  | for iFace=1:r.nFaces; | 
| 22 |  |  | iF=num2str(iFace); | 
| 23 |  |  | eval(['r.f' iF '=nanmax(p.f' iF ',varargin{1}.f' iF ');']); | 
| 24 |  |  | end; | 
| 25 |  |  | return; | 
| 26 |  |  | end; | 
| 27 |  |  |  | 
| 28 | gforget | 1.4 | if varargin{2}>0; | 
| 29 |  |  | r=p; | 
| 30 |  |  | for iFace=1:r.nFaces; | 
| 31 |  |  | iF=num2str(iFace); | 
| 32 |  |  | eval(['r.f' iF '=nanmax(p.f' iF ',varargin{:});']); | 
| 33 |  |  | end; | 
| 34 |  |  | else; | 
| 35 |  |  | tmp1=convert2gcmfaces(p); | 
| 36 |  |  | [n1,n2,n3,n4]=size(tmp1); | 
| 37 |  |  | tmp1=reshape(tmp1,n1*n2,n3,n4); | 
| 38 |  |  | r=nanmax(tmp1,[],1); | 
| 39 | gforget | 1.1 | end; | 
| 40 |  |  |  | 
| 41 |  |  |  |