1 |
clear all |
2 |
nx=32;ny=nx;ntx=6; |
3 |
|
4 |
% Generate initial surface pressure |
5 |
h=zeros(nx,ntx,ny); |
6 |
tileno=2; |
7 |
o=1; |
8 |
i=round(nx*1/2); |
9 |
j=round(ny*1/2); |
10 |
h(i:i+o,tileno,j:j+o)=1; |
11 |
|
12 |
fid=fopen('square.bin','w','b'); |
13 |
fwrite(fid,h,'real*8'); |
14 |
fclose(fid); |
15 |
|
16 |
% Read grid info and convert to model input files |
17 |
|
18 |
% DXC |
19 |
fid=fopen('DXC.tile','r','b');q=fread(fid,[nx nx],'real*8');fclose(fid); |
20 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
21 |
fid=fopen('DXC.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
22 |
% DYC |
23 |
q=q'; |
24 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
25 |
fid=fopen('DYC.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
26 |
|
27 |
% DXG |
28 |
fid=fopen('DXG.tile','r','b');q=fread(fid,[nx nx],'real*8');fclose(fid); |
29 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
30 |
fid=fopen('DXG.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
31 |
% DYG |
32 |
q=q'; |
33 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
34 |
fid=fopen('DYG.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
35 |
|
36 |
% DXF |
37 |
fid=fopen('DXF.tile','r','b');q=fread(fid,[nx nx],'real*8');fclose(fid); |
38 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
39 |
fid=fopen('DXF.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
40 |
% DYF |
41 |
q=q'; |
42 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
43 |
fid=fopen('DYF.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
44 |
|
45 |
% DXV |
46 |
fid=fopen('DXV.tile','r','b');q=fread(fid,[nx nx],'real*8');fclose(fid); |
47 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
48 |
fid=fopen('DXV.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
49 |
% DYU |
50 |
q=q'; |
51 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
52 |
fid=fopen('DYU.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
53 |
|
54 |
% RAW |
55 |
fid=fopen('RAW.tile','r','b');q=fread(fid,[nx nx],'real*8');fclose(fid); |
56 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
57 |
fid=fopen('RAW.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
58 |
% RAS |
59 |
q=q'; |
60 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
61 |
fid=fopen('RAS.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
62 |
|
63 |
% RA |
64 |
fid=fopen('RA.tile','r','b');q=fread(fid,[nx nx],'real*8');fclose(fid); |
65 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
66 |
fid=fopen('RA.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
67 |
|
68 |
% RAZ |
69 |
fid=fopen('RAZ.tile','r','b');q=fread(fid,[nx nx],'real*8');fclose(fid); |
70 |
Q(1:nx,:)=q;Q(nx+(1:nx),:)=q;Q(2*nx+(1:nx),:)=q;Q(3*nx+(1:nx),:)=q;Q(4*nx+(1:nx),:)=q;Q(5*nx+(1:nx),:)=q; |
71 |
fid=fopen('RAZ.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
72 |
|
73 |
% LONC |
74 |
fid=fopen('LONC.tile','r','b');q=fread(fid,[nx nx*6],'real*8');fclose(fid); |
75 |
q=reshape(q,[nx nx 6]); |
76 |
Q(1:nx,:)=q(:,:,1);Q(nx+(1:nx),:)=q(:,:,2);Q(2*nx+(1:nx),:)=q(:,:,3);Q(3*nx+(1:nx),:)=q(:,:,4);Q(4*nx+(1:nx),:)=q(:,:,5);Q(5*nx+(1:nx),:)=q(:,:,6); |
77 |
fid=fopen('LONC.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
78 |
|
79 |
% LATC |
80 |
fid=fopen('LATC.tile','r','b');q=fread(fid,[nx nx*6],'real*8');fclose(fid); |
81 |
q=reshape(q,[nx nx 6]); |
82 |
Q(1:nx,:)=q(:,:,1);Q(nx+(1:nx),:)=q(:,:,2);Q(2*nx+(1:nx),:)=q(:,:,3);Q(3*nx+(1:nx),:)=q(:,:,4);Q(4*nx+(1:nx),:)=q(:,:,5);Q(5*nx+(1:nx),:)=q(:,:,6); |
83 |
fid=fopen('LATC.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
84 |
|
85 |
lat=reshape(Q,[nx ntx nx]); |
86 |
rad=30; |
87 |
h=100*0.5*(1-cos( max(lat-90+rad,0)/rad*pi )); |
88 |
fid=fopen('cos.bin','w','b');fwrite(fid,h,'real*8');fclose(fid); |
89 |
h(:,2,:)=h(:,3,:);h(:,3,:)=0; |
90 |
fid=fopen('cos_equator.bin','w','b');fwrite(fid,h,'real*8');fclose(fid); |
91 |
|
92 |
% LONG |
93 |
fid=fopen('LONG.tile','r','b');q=fread(fid,[nx+1 (nx+1)*6],'real*8');fclose(fid); |
94 |
q=reshape(q,[nx+1 nx+1 6]); |
95 |
q=q(1:nx,1:nx,:); |
96 |
Q(1:nx,:)=q(:,:,1);Q(nx+(1:nx),:)=q(:,:,2);Q(2*nx+(1:nx),:)=q(:,:,3);Q(3*nx+(1:nx),:)=q(:,:,4);Q(4*nx+(1:nx),:)=q(:,:,5);Q(5*nx+(1:nx),:)=q(:,:,6); |
97 |
fid=fopen('LONG.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |
98 |
|
99 |
% LATG |
100 |
fid=fopen('LATG.tile','r','b');q=fread(fid,[nx+1 (nx+1)*6],'real*8');fclose(fid); |
101 |
q=reshape(q,[nx+1 nx+1 6]); |
102 |
q=q(1:nx,1:nx,:); |
103 |
Q(1:nx,:)=q(:,:,1);Q(nx+(1:nx),:)=q(:,:,2);Q(2*nx+(1:nx),:)=q(:,:,3);Q(3*nx+(1:nx),:)=q(:,:,4);Q(4*nx+(1:nx),:)=q(:,:,5);Q(5*nx+(1:nx),:)=q(:,:,6); |
104 |
fid=fopen('LATG.bin','w','b');fwrite(fid,Q,'real*8');fclose(fid); |