1 |
function [msk_SB,msk_LB] = CreateDDrmask(grdO); |
2 |
|
3 |
% function [msk_SB,msk_LB] = CreateDDrmask(grdO); |
4 |
% Create mask for Small and Large Basin of Double Drake |
5 |
|
6 |
nc=24; |
7 |
nr=length(grdO.drF); |
8 |
|
9 |
maskW=ceil(grdO.HFacW(1:6*nc,1:nc,:)); |
10 |
maskS=ceil(grdO.HFacS(1:6*nc,1:nc,:)); |
11 |
maskC=ceil(grdO.HFacC(1:6*nc,1:nc,:)); |
12 |
|
13 |
%%%% Southern most latitudes of walls |
14 |
%min(grdO.YC( find(grdO.HFacC(1:6*nc,1:nc,1) == 0) )) %% C-points |
15 |
%min(grdO.YC( find(grdO.HFacW(1:6*nc,1:nc,1) == 0) )) %% U-points |
16 |
%min(grdO.YG( find(grdO.HFacS(1:6*nc,1:nc,1) == 0) )) %% V-points |
17 |
|
18 |
%%%% Small-Basin Masks |
19 |
|
20 |
mskSB_G=ones(6*nc,nc); mskSB_G(grdO.XG(1:6*nc,1:nc) < 90 )=0; |
21 |
mskSB_C=ones(6*nc,nc); mskSB_C(grdO.XC(1:6*nc,1:nc) < 90 )=0; |
22 |
|
23 |
maskW_SB = maskW .* repmat(mskSB_G,[1 1 nr]); |
24 |
maskS_SB = maskS .* repmat(mskSB_C,[1 1 nr]); |
25 |
maskC_SB = maskC .* repmat(mskSB_C,[1 1 nr]); |
26 |
|
27 |
msk_SB.maskW=maskW_SB; |
28 |
msk_SB.maskS=maskS_SB; |
29 |
msk_SB.maskC=maskC_SB; |
30 |
|
31 |
%%%% Large-Basin Masks |
32 |
|
33 |
mskLB_G=ones(6*nc,nc); mskLB_G(grdO.XG(1:6*nc,1:nc) > 90 )=0; |
34 |
mskLB_C=ones(6*nc,nc); mskLB_C(grdO.XC(1:6*nc,1:nc) > 90 )=0; |
35 |
|
36 |
maskW_LB = maskW .* repmat(mskLB_G,[1 1 nr]); |
37 |
maskS_LB = maskS .* repmat(mskLB_C,[1 1 nr]); |
38 |
maskC_LB = maskC .* repmat(mskLB_C,[1 1 nr]); |
39 |
|
40 |
msk_LB.maskW=maskW_LB; |
41 |
msk_LB.maskS=maskS_LB; |
42 |
msk_LB.maskC=maskC_LB; |
43 |
|
44 |
return |