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

Annotation 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 - (hide 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 cnh 1.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