/[MITgcm]/MITgcm_contrib/gael/matlab_class/gcmfaces_calc/calc_mskmean_T.m
ViewVC logotype

Contents of /MITgcm_contrib/gael/matlab_class/gcmfaces_calc/calc_mskmean_T.m

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


Revision 1.1 - (show annotations) (download)
Mon Feb 8 16:42:33 2016 UTC (9 years, 5 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint65x, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, HEAD
- calc_zonmean_T.m: add alternative methods, treat case of structure input.
- calc_mskmean_T.m (new): computes average over a region (mask).
- removed: calc_budget_mean_mask.m, calc_budget_mean_zonal.m

1 function [fldOut,area]=calc_mskmean_T(fldIn,mask,fldType);
2 % CALC_MSKMEAN_T(budgIn,mask,fldType)
3 % computes average over a region (mask) of fldIn (or its fields recursively).
4 % If fldType is 'intensive' (default) then fldIn is mutliplies by RAC.
5
6 gcmfaces_global;
7
8 if isempty(who('fldType')); fldType='intensive'; end;
9
10 if isa(fldIn,'struct');
11 list0=fieldnames(fldIn);
12 fldOut=[];
13 for vv=1:length(list0);
14 tmp1=getfield(fldIn,list0{vv});
15 if isa(tmp1,'gcmfaces');
16 [tmp2,area]=calc_mskmean_T(tmp1,mask,fldType);
17 fldOut=setfield(fldOut,list0{vv},tmp2);
18 end;
19 end;
20 return;
21 end;
22
23 nr=size(fldIn{1},3);
24 nr2=size(mask{1},3);
25 if nr2~=nr; mask=repmat(mask,[1 1 nr]); end;
26 mask(mask==0)=NaN; mask(isnan(fldIn))=NaN;
27 areaMask=repmat(mygrid.RAC,[1 1 nr]).*mask;
28 if strcmp(fldType,'intensive');
29 fldOut=nansum(fldIn.*areaMask,0)./nansum(areaMask,0);
30 area=nansum(areaMask,0);
31 else;
32 fldOut=nansum(fldIn.*mask,0)./nansum(areaMask,0);
33 area=nansum(areaMask,0);
34 end;
35
36

  ViewVC Help
Powered by ViewVC 1.1.22