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

Annotation of /MITgcm_contrib/gael/matlab_class/gcmfaces_calc/calc_barostream.m

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


Revision 1.1 - (hide annotations) (download)
Wed Feb 10 14:45:59 2010 UTC (15 years, 5 months ago) by gforget
Branch: MAIN
matlad_class: some basic computations

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    

  ViewVC Help
Powered by ViewVC 1.1.22