/[MITgcm]/MITgcm_contrib/tides/create_bc_grid.m
ViewVC logotype

Contents of /MITgcm_contrib/tides/create_bc_grid.m

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


Revision 1.1 - (show annotations) (download)
Thu Mar 21 01:30:27 2013 UTC (11 years, 1 month ago) by dimitri
Branch: MAIN
CVS Tags: HEAD
adding Xiochun Wang's scripts for computing tidal forcing for regional
MITgcm configurations

1 % function create_bc_grid(dir_in, nx, ny, nz, cbdry)
2 %
3 % Input: dir_in, directory that has MITgcm grid files
4 % (following files are expected,
5 % YC.data. XC.data, hFacC.data
6 % RF.data, AngleCS.data, AngleSN.data )
7 % nx, first dimension of MITgcm grid, (west-east)
8 % ny, second dimension of MITgcm grid (south-north)
9 % nz, dimension in z (or r) direction
10 % cbdry, character for bdry to generate: s, n, w, e, (south, north, west, east)
11 %
12 % Output: No output
13 % The script will generate a grid file named
14 % bdry_grid_[snwe].mat
15 %
16 %
17 % XC WANG 25jan2013
18 % Modified 01feb2013
19 %
20 %
21 function create_bc_grid(dir_in,nx,ny,nz,cbdry)
22
23 % addpath /data17/home/xiao/Mat_Tools/MITgcm_Tool
24
25 % Default location of boundary
26 ny_north = ny -1 ; ny_south=1;
27 nx_west = 1; nx_east=nx-1 ;
28
29 %dir_in=['/data17/XCW_output/Grid/data/'];
30 % Three boundaries, South, North and West
31 %ibc = 2;
32 %c_bdry3 = {'s', 'n', 'w', 'e'} ;
33 %c_bdry = c_bdry3{ibc} ;
34 %%bdry_file=['bdry_grid_',c_bdry, '.mat.test'];
35 %bdry_file=['bdry_grid_',c_bdry, '.mat'];
36
37 ufile = ['YC.data'];
38 ufile1 = [dir_in, ufile];
39 lat = readbin(ufile1, [nx ny]) ;
40
41 ufile = ['XC.data'];
42 ufile1 = [dir_in, ufile];
43 lon = readbin(ufile1, [nx ny]) ;
44
45 %ufile = ['Depth.data'];
46 %ufile1 = [dir_in, ufile];
47 %depth = readbin(ufile1, [nx ny]) ;
48
49 rf=-readbin([dir_in, 'RF.data'], nz+1) ;
50 thk=diff(rf) ;
51
52 hfac =readbin([dir_in, 'hFacC.data'], [nx ny nz]) ;
53 %obmask = squeeze(hfac(:, ny_north, :)) ;
54 thk3d = zeros(size(hfac)) ;
55 for k =1:nz
56 temp1 = squeeze(hfac(:,:, k)) ;
57 thk3d(:,:, k) = thk(k) * temp1 ;
58 end
59 depth = sum(thk3d, 3) ;
60 %depth_bc = depth2d(:, ny_north) ;
61
62 anglefile = ['AngleCS.data'] ;
63 tfile1 = [dir_in, anglefile];
64 AngleCS = readbin(tfile1, [nx ny]) ;
65
66 anglefile = ['AngleSN.data'] ;
67 tfile1 = [dir_in, anglefile];
68 AngleSN = readbin(tfile1, [nx ny]) ;
69
70 %%bdry_file=['bdry_grid_',c_bdry, '.mat.test'];
71 bdry_file=['bdry_grid_',cbdry, '.mat'];
72 switch cbdry
73 case 's'
74 lat_bc=lat(:, ny_south);
75 lon_bc=lon(:, ny_south) ;
76 depth_bc=depth(:, ny_south) ;
77 AngleCS_bc = AngleCS(:,ny_south);
78 AngleSN_bc = AngleSN(:,ny_south);
79 %bdry_file=['bdry_grid_',c_bdry, '.mat'];
80 case 'n'
81 lat_bc=lat(:, ny_north);
82 lon_bc=lon(:, ny_north) ;
83 depth_bc=depth(:, ny_north) ;
84 AngleCS_bc = AngleCS(:,ny_north);
85 AngleSN_bc = AngleSN(:,ny_north);
86 case 'w'
87 lat_bc=lat(nx_west,:);
88 lon_bc=lon(nx_west,:) ;
89 depth_bc=depth(nx_west,:) ;
90 AngleCS_bc = AngleCS(nx_west,:);
91 AngleSN_bc = AngleSN(nx_west,:);
92 case 'e'
93 lat_bc=lat(nx_east,:);
94 lon_bc=lon(nx_east,:) ;
95 depth_bc=depth(nx_east,:) ;
96 AngleCS_bc = AngleCS(nx_east,:);
97 AngleSN_bc = AngleSN(nx_east,:);
98 otherwise
99 display('No such selection ', cbdry)
100 return
101 end
102
103 %rad2deg = 180/pi;
104 %angle = atan2(AngleSN, AngleCS);
105 %angle = angle*rad2deg ;
106
107 save(bdry_file, 'lat_bc', 'lon_bc', 'depth_bc', 'AngleCS_bc', 'AngleSN_bc') ;
108
109 return

  ViewVC Help
Powered by ViewVC 1.1.22