1 |
|
2 |
kwr=1; |
3 |
nx=80; ny=42; nr=3; nt=2; |
4 |
|
5 |
xc=[1:nx]; xc=xc-mean(xc); |
6 |
yc=[1:ny]-.5; |
7 |
|
8 |
%------------------------------------------------------ |
9 |
|
10 |
windx=10.; |
11 |
H0=-100.; |
12 |
|
13 |
namf='channel.bin'; |
14 |
depth=H0*ones(nx,ny); depth(:,1)=0.; |
15 |
%if kwr > 0, |
16 |
% fprintf('write to file: %s\n',namf); |
17 |
% fid=fopen(namf,'w','b'); fwrite(fid,depth,'real*8'); fclose(fid); |
18 |
%end |
19 |
|
20 |
namf='bathy_3c.bin'; |
21 |
msk=abs(xc)'*ones(1,ny)+ones(nx,1)*yc; |
22 |
depth=H0*ones(nx,ny); depth(:,1)=0.; |
23 |
depth(find(msk < 24))=0.; |
24 |
y2d=ones(nx,1)*yc; |
25 |
depth(find(y2d > ny/2))=H0; |
26 |
if kwr > 0, |
27 |
fprintf('write to file: %s\n',namf); |
28 |
fid=fopen(namf,'w','b'); fwrite(fid,depth,'real*8'); fclose(fid); |
29 |
end |
30 |
|
31 |
namf='windx.bin'; |
32 |
wnd=windx*ones(nx,ny,nt); |
33 |
if kwr > 0, |
34 |
fprintf('write to file: %s\n',namf); |
35 |
fid=fopen(namf,'w','b'); fwrite(fid,wnd,'real*8'); fclose(fid); |
36 |
end |
37 |
|
38 |
%- file name convention: "const_{xx}.bin" <-> uniform value = xx (in percent) |
39 |
namf='const_00.bin'; |
40 |
fld=0*ones(nx,ny,nt); |
41 |
if kwr > 0, |
42 |
fprintf('write to file: %s\n',namf); |
43 |
fid=fopen(namf,'w','b'); fwrite(fid,fld,'real*8'); fclose(fid); |
44 |
end |
45 |
|
46 |
namf='const100.bin'; w0=1.; |
47 |
var=w0*ones(nx,ny); |
48 |
if kwr > 0, |
49 |
fprintf('write to file: %s\n',namf); |
50 |
fid=fopen(namf,'w','b'); fwrite(fid,var,'real*8'); fclose(fid); |
51 |
end |
52 |
|
53 |
namf='const+20.bin'; w0=0.2; |
54 |
var=w0*ones(nx,ny); |
55 |
if kwr > 0, |
56 |
fprintf('write to file: %s\n',namf); |
57 |
fid=fopen(namf,'w','b'); fwrite(fid,var,'real*8'); fclose(fid); |
58 |
end |
59 |
|
60 |
%namf='const+40.bin'; |
61 |
%u0=0.4; |
62 |
%var=u0*ones(nx,ny); |
63 |
%if kwr > 0, |
64 |
% fprintf('write to file: %s\n',namf); |
65 |
% fid=fopen(namf,'w','b'); fwrite(fid,var,'real*8'); fclose(fid); |
66 |
%end |
67 |
|
68 |
%namf='const-10.bin'; |
69 |
%v0=-0.1; |
70 |
%var=v0*ones(nx,ny); |
71 |
%if kwr > 0, |
72 |
% fprintf('write to file: %s\n',namf); |
73 |
% fid=fopen(namf,'w','b'); fwrite(fid,var,'real*8'); fclose(fid); |
74 |
%end |
75 |
%------------------------------------------------------ |
76 |
|
77 |
dsw0=100; |
78 |
namf=['dsw_',int2str(dsw0),'.bin']; |
79 |
fld=dsw0*ones(nx,ny,nt); |
80 |
if kwr > 0, |
81 |
fprintf('write to file: %s\n',namf); |
82 |
fid=fopen(namf,'w','b'); fwrite(fid,fld,'real*8'); fclose(fid); |
83 |
end |
84 |
|
85 |
dlw0=250; |
86 |
namf=['dlw_',int2str(dlw0),'.bin']; |
87 |
fld=dlw0*ones(nx,ny,nt); |
88 |
if kwr > 0, |
89 |
fprintf('write to file: %s\n',namf); |
90 |
fid=fopen(namf,'w','b'); fwrite(fid,fld,'real*8'); fclose(fid); |
91 |
end |
92 |
|
93 |
cel2K=273.15; dtx=4; %- dtx = amplitude of air temp variations in X-dir |
94 |
ta_x=cel2K + dtx*sin(pi*(1+2*xc'/nx)); |
95 |
ta=repmat(ta_x,[1 ny nt]); |
96 |
namf=['tair_',int2str(dtx),'x.bin']; |
97 |
if kwr > 0, |
98 |
fprintf('write to file: %s\n',namf); |
99 |
fid=fopen(namf,'w','b'); fwrite(fid,ta,'real*8'); fclose(fid); |
100 |
end; |
101 |
|
102 |
cvapor_fac = 640380.000 ; |
103 |
cvapor_exp = 5107.400 ; |
104 |
atmrho = 1.200 ; |
105 |
rh=70; %- specific humid <--> 70.% relative humid |
106 |
tmpbulk = cvapor_fac*exp(-cvapor_exp./ta_x); |
107 |
qa_x = (rh/100.)*tmpbulk/atmrho ; |
108 |
qa=repmat(qa_x,[1 ny nt]); |
109 |
namf=['qa',int2str(rh),'_',int2str(dtx),'x.bin']; |
110 |
if kwr > 0, |
111 |
fprintf('write to file: %s\n',namf); |
112 |
fid=fopen(namf,'w','b'); fwrite(fid,qa,'real*8'); fclose(fid); |
113 |
end; |
114 |
|
115 |
%- salinity |
116 |
sCst=30; |
117 |
so=sCst*ones(nx,ny,nt); |
118 |
namf='socn.bin'; |
119 |
%if kwr > 0, |
120 |
% fprintf('write to file: %s\n',namf); |
121 |
% fid=fopen(namf,'w','b'); fwrite(fid,so,'real*8'); fclose(fid); |
122 |
%end; |
123 |
|
124 |
muTf = 5.4e-2; |
125 |
tfreeze=-muTf*sCst; |
126 |
fprintf('T-freeze = %10.6f\n',tfreeze); |
127 |
to_y=(yc-2)/ny; |
128 |
to_y=tfreeze+0.5-to_y.*to_y; |
129 |
to=repmat(to_y,[nx 1 nt]); |
130 |
namf='tocn.bin'; |
131 |
if kwr > 0, |
132 |
fprintf('write to file: %s\n',namf); |
133 |
fid=fopen(namf,'w','b'); fwrite(fid,to,'real*8'); fclose(fid); |
134 |
end; |
135 |
|
136 |
%-- make some plots to check: ---------------- |
137 |
|
138 |
hScal=[-1.1 0.1]*abs(H0); |
139 |
figure(1); clf; |
140 |
subplot(211); |
141 |
var=depth; |
142 |
imagesc(xc,yc,var'); set(gca,'YDir','normal'); |
143 |
%caxis(hScal); |
144 |
%change_colmap(-1); |
145 |
colorbar; |
146 |
title('Depth [m]'); |
147 |
|
148 |
subplot(413); |
149 |
var=depth; |
150 |
j1=2; |
151 |
j2=ny/2; |
152 |
j3=j2+1; |
153 |
plot(xc,var(:,j1),'k-') |
154 |
hold on; j=j+1; |
155 |
plot(xc,var(:,j2),'ro-') |
156 |
plot(xc,var(:,j3),'b-') |
157 |
hold off; |
158 |
axis([-nx/2 nx/2 hScal]); |
159 |
grid |
160 |
legend(int2str(j1),int2str(j2),int2str(j3)); |
161 |
title('Depth @ j= cst'); |
162 |
|
163 |
subplot(414); |
164 |
i=nx/2; |
165 |
plot(yc,var(i,:),'k-') |
166 |
axis([0 ny H0*1.1 -H0*.1]); |
167 |
grid |
168 |
title(['Depth @ i=',int2str(i)]); |
169 |
|
170 |
%-- |
171 |
dewPt=(qa_x*atmrho)/cvapor_fac; |
172 |
dewPt=-cvapor_exp./log(dewPt); |
173 |
|
174 |
figure(2);clf; |
175 |
subplot(211) |
176 |
plot(xc,ta_x-cel2K,'r-'); hold on; |
177 |
plot(xc,dewPt-cel2K,'b-'); |
178 |
plot(xc,tfreeze*ones(nx,1),'k-'); |
179 |
hold off; |
180 |
AA=axis; axis([-nx/2 nx/2 AA(3:4)]); |
181 |
legend('ta','dew'); |
182 |
grid |
183 |
title(['del-Temp-X= ',int2str(dtx),' ; RH= ',int2str(rh),' ; Air Temp (^oC)']); |
184 |
subplot(212) |
185 |
plot(yc,to_y,'b-'); hold on; |
186 |
plot(yc,tfreeze*ones(ny,1),'k-'); |
187 |
hold off; |
188 |
AA=axis; axis([0 ny AA(3:4)]); |
189 |
grid |
190 |
title('Ocean Temp ^oC'); |