/[MITgcm]/MITgcm_contrib/high_res_cube/matlab-grid-converter/convertMITgrid.m
ViewVC logotype

Contents of /MITgcm_contrib/high_res_cube/matlab-grid-converter/convertMITgrid.m

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


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Tue Nov 11 18:10:30 2003 UTC (21 years, 8 months ago) by cnh
Branch: initial, MAIN
CVS Tags: baseline, hrcube4, hrcube_1, hrcube_2, hrcube_3, checkpoint52d_pre, checkpoint52a_post, HEAD
Changes since 1.1: +0 -0 lines
Checking in work done with Dimitri on high-resolution cube gridding and parallel 
communications. 
   o code is in a contrib experiment for now so we can continue collaborating
     on it. However most code is general and will be moved into main branch once 
     it is fully hardened.
   o There are README files in the contrib root and in the subdirectories that
     explain the contents

1 nx=32;
2 sz=[nx 6 nx];
3 prm=[1 3 2];
4
5 xc=permute( rdda('LONC.bin',sz,1,'real*8','b') ,prm);
6 yc=permute( rdda('LATC.bin',sz,1,'real*8','b') ,prm);
7 dxf=permute( rdda('DXF.bin',sz,1,'real*8','b') ,prm);
8 dyf=permute( rdda('DYF.bin',sz,1,'real*8','b') ,prm);
9 rac=permute( rdda('RA.bin',sz,1,'real*8','b') ,prm);
10
11 xg=permute( rdda('LONG.bin',sz,1,'real*8','b') ,prm); xg(end+1,end+1,:)=NaN;
12 yg=permute( rdda('LATG.bin',sz,1,'real*8','b') ,prm); yg(end+1,end+1,:)=NaN;
13 dxv=permute( rdda('DXV.bin',sz,1,'real*8','b') ,prm); dxv(end+1,end+1,:)=NaN;
14 dyu=permute( rdda('DYU.bin',sz,1,'real*8','b') ,prm); dyu(end+1,end+1,:)=NaN;
15 raz=permute( rdda('RAZ.bin',sz,1,'real*8','b') ,prm); raz(end+1,end+1,:)=NaN;
16
17 xg(1,end,[1 3 5])=xg(1,1,1);
18 xg(end,1,[2 4 6])=xg(1,1,4);
19 xg(end,:,[1 3 5])=xg(1,:,[2 4 6]);
20 xg(:,end,[1 3 5])=xg(1,end:-1:1,[3 5 1]);
21 xg(end,:,[2 4 6])=xg(end:-1:1,1,[4 6 2]);
22 xg(:,end,[2 4 6])=xg(:,1,[3 5 1]);
23
24 yg(1,end,[1 3 5])=yg(1,1,3);
25 yg(end,1,[2 4 6])=yg(1,1,6);
26 yg(end,:,[1 3 5])=yg(1,:,[2 4 6]);
27 yg(:,end,[1 3 5])=yg(1,end:-1:1,[3 5 1]);
28 yg(end,:,[2 4 6])=yg(end:-1:1,1,[4 6 2]);
29 yg(:,end,[2 4 6])=yg(:,1,[3 5 1]);
30
31 raz(1,end,[1 3 5])=raz(1,1,1);
32 raz(end,1,[2 4 6])=raz(1,1,4);
33 raz(end,:,[1 3 5])=raz(1,:,[2 4 6]);
34 raz(:,end,[1 3 5])=raz(1,end:-1:1,[3 5 1]);
35 raz(end,:,[2 4 6])=raz(end:-1:1,1,[4 6 2]);
36 raz(:,end,[2 4 6])=raz(:,1,[3 5 1]);
37
38 dxv(1,end,[1 3 5])=dxv(1,1,1);
39 dxv(end,1,[2 4 6])=dxv(1,1,4);
40 dyu(1,end,[1 3 5])=dxv(1,1,1);
41 dyu(end,1,[2 4 6])=dxv(1,1,4);
42 dxv(end,:,[1 3 5])=dxv(1,:,[2 4 6]);
43 dxv(:,end,[1 3 5])=dyu(1,end:-1:1,[3 5 1]);
44 dxv(end,:,[2 4 6])=dyu(end:-1:1,1,[4 6 2]);
45 dxv(:,end,[2 4 6])=dxv(:,1,[3 5 1]);
46 dyu(end,:,[1 3 5])=dyu(1,:,[2 4 6]);
47 dyu(:,end,[1 3 5])=dxv(1,end:-1:1,[3 5 1]);
48 dyu(end,:,[2 4 6])=dxv(end:-1:1,1,[4 6 2]);
49 dyu(:,end,[2 4 6])=dyu(:,1,[3 5 1]);
50
51 dxc=permute( rdda('DXC.bin',sz,1,'real*8','b') ,prm); dxc(end+1,:,:)=NaN;
52 dyc=permute( rdda('DYC.bin',sz,1,'real*8','b') ,prm); dyc(:,end+1,:,:)=NaN;
53 raw=permute( rdda('RAW.bin',sz,1,'real*8','b') ,prm); raw(end+1,:,:)=NaN;
54 ras=permute( rdda('RAS.bin',sz,1,'real*8','b') ,prm); ras(:,end+1,:,:)=NaN;
55 dxg=permute( rdda('DXG.bin',sz,1,'real*8','b') ,prm); dxg(:,end+1,:,:)=NaN;
56 dyg=permute( rdda('DYG.bin',sz,1,'real*8','b') ,prm); dyg(end+1,:,:)=NaN;
57
58 dxc(end,:,[1 3 5])=dxc(1,:,[2 4 6]);
59 dxc(end,:,[2 4 6])=dyc(end:-1:1,1,[4 6 2]);
60 dyc(:,end,[2 4 6])=dyc(:,1,[3 5 1]);
61 dyc(:,end,[1 3 5])=dxc(1,end:-1:1,[3 5 1]);
62
63 raw(end,:,[1 3 5])=raw(1,:,[2 4 6]);
64 raw(end,:,[2 4 6])=ras(end:-1:1,1,[4 6 2]);
65 ras(:,end,[2 4 6])=ras(:,1,[3 5 1]);
66 ras(:,end,[1 3 5])=raw(1,end:-1:1,[3 5 1]);
67
68 dyg(end,:,[1 3 5])=dyg(1,:,[2 4 6]);
69 dyg(end,:,[2 4 6])=dxg(end:-1:1,1,[4 6 2]);
70 dxg(:,end,[2 4 6])=dxg(:,1,[3 5 1]);
71 dxg(:,end,[1 3 5])=dyg(1,end:-1:1,[3 5 1]);
72
73 % Pad arrays to be same size
74 xc(end+1,end+1,:)=0;
75 yc(end+1,end+1,:)=0;
76 dxf(end+1,end+1,:)=0;
77 dyf(end+1,end+1,:)=0;
78 rac(end+1,end+1,:)=0;
79 dxc(end,end+1,:)=0;
80 dyc(end+1,end,:)=0;
81 raw(end,end+1,:)=0;
82 ras(end+1,end,:)=0;
83 dyg(end,end+1,:)=0;
84 dxg(end+1,end,:)=0;
85
86 dtype='real*8';
87 ieee='b';
88
89 for n=1:6;
90 %fnm=sprintf('tile%3.3i.mitgrid',n)
91 %fid=f77write(fnm,xc(:,:,n),dtype,ieee);
92 %fid=f77write(fid,yc(:,:,n),dtype,ieee);
93 %fid=f77write(fid,dxf(:,:,n),dtype,ieee);
94 %fid=f77write(fid,dyf(:,:,n),dtype,ieee);
95 %fid=f77write(fid,rac(:,:,n),dtype,ieee);
96 %fid=f77write(fid,xg(:,:,n),dtype,ieee);
97 %fid=f77write(fid,yg(:,:,n),dtype,ieee);
98 %fid=f77write(fid,dxv(:,:,n),dtype,ieee);
99 %fid=f77write(fid,dyu(:,:,n),dtype,ieee);
100 %fid=f77write(fid,raz(:,:,n),dtype,ieee);
101 %fid=f77write(fid,dxc(:,:,n),dtype,ieee);
102 %fid=f77write(fid,dyc(:,:,n),dtype,ieee);
103 %fid=f77write(fid,raw(:,:,n),dtype,ieee);
104 %fid=f77write(fid,ras(:,:,n),dtype,ieee);
105 %fid=f77write(fid,dxg(:,:,n),dtype,ieee);
106 %fid=f77write(fid,dyg(:,:,n),dtype,ieee);
107 %fclose(fid);
108 fid=fopen( sprintf('tile%3.3i.mitgrid',n), 'w',ieee );
109 fwrite(fid,xc(:,:,n),dtype);
110 fwrite(fid,yc(:,:,n),dtype);
111 fwrite(fid,dxf(:,:,n),dtype);
112 fwrite(fid,dyf(:,:,n),dtype);
113 fwrite(fid,rac(:,:,n),dtype);
114 fwrite(fid,xg(:,:,n),dtype);
115 fwrite(fid,yg(:,:,n),dtype);
116 fwrite(fid,dxv(:,:,n),dtype);
117 fwrite(fid,dyu(:,:,n),dtype);
118 fwrite(fid,raz(:,:,n),dtype);
119 fwrite(fid,dxc(:,:,n),dtype);
120 fwrite(fid,dyc(:,:,n),dtype);
121 fwrite(fid,raw(:,:,n),dtype);
122 fwrite(fid,ras(:,:,n),dtype);
123 fwrite(fid,dxg(:,:,n),dtype);
124 fwrite(fid,dyg(:,:,n),dtype);
125 fclose(fid);
126 end

  ViewVC Help
Powered by ViewVC 1.1.22