1 |
gforget |
1.1 |
function [fldBAR]=calc_barostream(fldU,fldV); |
2 |
|
|
|
3 |
|
|
%by assumption: grid_load is done |
4 |
|
|
global mygrid; |
5 |
|
|
|
6 |
|
|
%initialize output: |
7 |
|
|
n3=max(size(fldU.f1,3),1); n4=max(size(fldV.f1,4),1); |
8 |
|
|
|
9 |
|
|
%prepare fldU/fldV: |
10 |
|
|
fldU(isnan(fldU))=0; fldV(isnan(fldV))=0; |
11 |
|
|
|
12 |
|
|
dxg=mk3D(mygrid.DXG,fldU); dyg=mk3D(mygrid.DYG,fldU); drf=mk3D(mygrid.DRF,fldU); |
13 |
|
|
for k4=1:n4; |
14 |
|
|
fldU(:,:,:,k4)=fldU(:,:,:,k4).*dyg.*drf.*mygrid.hFacW*1e-6; |
15 |
|
|
fldV(:,:,:,k4)=fldV(:,:,:,k4).*dxg.*drf.*mygrid.hFacS*1e-6; |
16 |
|
|
end; |
17 |
|
|
|
18 |
|
|
fldU=sum(fldU,3); fldV=sum(fldV,3); |
19 |
|
|
|
20 |
|
|
[FLDU,FLDV]=exch_UV(fldU,fldV); |
21 |
|
|
FLDU(isnan(FLDU))=0; FLDV(isnan(FLDV))=0; |
22 |
|
|
|
23 |
|
|
n1=size(fldU{1},1); |
24 |
|
|
|
25 |
|
|
fldBAR=FLDU; |
26 |
|
|
|
27 |
|
|
if fldBAR.nFaces==1; |
28 |
|
|
fldBAR{1}=[zeros(n1,1) cumsum(FLDU{1}(1:n1,:),2)]; |
29 |
|
|
fldBAR{1}=(fldBAR{1}(:,2:end)+fldBAR{1}(:,1:end-1))/2; |
30 |
|
|
elseif fldBAR.nFaces==5; |
31 |
|
|
fldBAR{1}=[zeros(n1,1) cumsum(FLDU{1}(1:n1,:),2)]; |
32 |
|
|
fldBAR{2}=[zeros(n1,1) cumsum(FLDU{2}(1:n1,:),2)]; |
33 |
|
|
fldBAR{3}=[zeros(n1,1) cumsum(FLDU{3}(1:n1,:),2)]+fldBAR{2}(:,end)*ones(1,n1+1); |
34 |
|
|
fldBAR{4}=[flipdim(cumsum(flipdim(FLDV{4}(:,1:n1),1),1),1);zeros(1,n1)]; |
35 |
|
|
fldBAR{5}=[flipdim(cumsum(flipdim(FLDV{5}(:,1:n1),1),1),1);zeros(1,n1)]; |
36 |
|
|
|
37 |
|
|
fldBAR{1}=(fldBAR{1}(:,2:end)+fldBAR{1}(:,1:end-1))/2; |
38 |
|
|
fldBAR{2}=(fldBAR{2}(:,2:end)+fldBAR{2}(:,1:end-1))/2; |
39 |
|
|
fldBAR{3}=(fldBAR{3}(:,2:end)+fldBAR{3}(:,1:end-1))/2; |
40 |
|
|
fldBAR{4}=(fldBAR{4}(2:end,:)+fldBAR{4}(1:end-1,:))/2; |
41 |
|
|
fldBAR{5}=(fldBAR{5}(2:end,:)+fldBAR{5}(1:end-1,:))/2; |
42 |
|
|
else; |
43 |
|
|
fprintf('this case is not implemented\n'); |
44 |
|
|
end; |
45 |
|
|
|
46 |
|
|
tmp1=convert2array(fldBAR); |
47 |
|
|
tmp2=convert2array(mygrid.hFacC); |
48 |
|
|
tmp3=tmp2(:,:,1); tmp3=find(tmp3==0); |
49 |
|
|
tmp1=tmp1-median(tmp1(tmp3)); tmp1(tmp3)=NaN; |
50 |
|
|
|
51 |
|
|
fldBAR=convert2array(tmp1,fldBAR); |
52 |
|
|
|
53 |
|
|
|