1 |
dimitri |
1.1 |
% Generate NCEP Gaussian input fields for cube-sphere, |
2 |
|
|
% bulk-formulae, sea-ice integration: a monthly mean |
3 |
|
|
% climatology based on Charmaine's ncep_rgau. |
4 |
|
|
|
5 |
|
|
clear all, close all |
6 |
|
|
nx=192; ny=94; nt=1464; |
7 |
|
|
pn='/host/nemo/data2/odap/ncep_rgau/'; |
8 |
|
|
|
9 |
|
|
% Surface (10-m) zonal wind velocity in m/s |
10 |
|
|
fn='/RG_u10m'; fout='uwind_192_94_12.bin'; disp(fout) |
11 |
|
|
fld=zeros(nx,ny,12); n=0; |
12 |
|
|
for year=1978:2002, n=n+1; |
13 |
|
|
yr=year-100*floor(year/100); |
14 |
|
|
dc=10*floor(yr/10); |
15 |
|
|
fin=[pn myint2str(dc) fn myint2str(yr)]; |
16 |
|
|
disp(fin) |
17 |
|
|
tmp=readbin(fin,[nx ny nt]); |
18 |
|
|
for mo=1:12 |
19 |
|
|
it=(1:122)+(mo-1)*122; |
20 |
|
|
fld(:,:,mo)=fld(:,:,mo)+mean(tmp(:,:,it),3); |
21 |
|
|
end |
22 |
|
|
end |
23 |
|
|
fld=fld/n; writebin(fout,fld); |
24 |
|
|
|
25 |
|
|
% Surface (10-m) meridional wind velocity in m/s |
26 |
|
|
fn='/RG_v10m'; fout='vwind_192_94_12.bin'; disp(fout) |
27 |
|
|
fld=zeros(nx,ny,12); n=0; |
28 |
|
|
for year=1978:2002, n=n+1; |
29 |
|
|
yr=year-100*floor(year/100); |
30 |
|
|
dc=10*floor(yr/10); |
31 |
|
|
fin=[pn myint2str(dc) fn myint2str(yr)]; |
32 |
|
|
disp(fin) |
33 |
|
|
tmp=readbin(fin,[nx ny nt]); |
34 |
|
|
for mo=1:12 |
35 |
|
|
it=(1:122)+(mo-1)*122; |
36 |
|
|
fld(:,:,mo)=fld(:,:,mo)+mean(tmp(:,:,it),3); |
37 |
|
|
end |
38 |
|
|
end |
39 |
|
|
fld=fld/n; writebin(fout,fld); |
40 |
|
|
|
41 |
|
|
% Surface (2-m) air temperature in deg K |
42 |
|
|
fn='/RG_tmp2m'; fout='atemp_192_94_12.bin'; disp(fout) |
43 |
|
|
fld=zeros(nx,ny,12); n=0; |
44 |
|
|
for year=1978:2002, n=n+1; |
45 |
|
|
yr=year-100*floor(year/100); |
46 |
|
|
dc=10*floor(yr/10); |
47 |
|
|
fin=[pn myint2str(dc) fn myint2str(yr)]; |
48 |
|
|
disp(fin) |
49 |
|
|
tmp=readbin(fin,[nx ny nt]); |
50 |
|
|
for mo=1:12 |
51 |
|
|
it=(1:122)+(mo-1)*122; |
52 |
|
|
fld(:,:,mo)=fld(:,:,mo)+mean(tmp(:,:,it),3); |
53 |
|
|
end |
54 |
|
|
end |
55 |
|
|
fld=fld/n; writebin(fout,fld); |
56 |
|
|
|
57 |
|
|
% Surface (2m) specific humidity in kg/kg |
58 |
|
|
fn='/RG_spfh2m'; fout='aqh_192_94_12.bin'; disp(fout) |
59 |
|
|
fld=zeros(nx,ny,12); n=0; |
60 |
|
|
for year=1978:2002, n=n+1; |
61 |
|
|
yr=year-100*floor(year/100); |
62 |
|
|
dc=10*floor(yr/10); |
63 |
|
|
fin=[pn myint2str(dc) fn myint2str(yr)]; |
64 |
|
|
disp(fin) |
65 |
|
|
tmp=readbin(fin,[nx ny nt]); |
66 |
|
|
for mo=1:12 |
67 |
|
|
it=(1:122)+(mo-1)*122; |
68 |
|
|
fld(:,:,mo)=fld(:,:,mo)+mean(tmp(:,:,it),3); |
69 |
|
|
end |
70 |
|
|
end |
71 |
|
|
fld=fld/n; writebin(fout,fld); |
72 |
|
|
|
73 |
|
|
% Precipitation in m/s |
74 |
|
|
fn='/RG_rain'; fout='precip_192_94_12.bin'; disp(fout) |
75 |
|
|
fld=zeros(nx,ny,12); n=0; |
76 |
|
|
for year=1978:2002, n=n+1; |
77 |
|
|
yr=year-100*floor(year/100); |
78 |
|
|
dc=10*floor(yr/10); |
79 |
|
|
fin=[pn myint2str(dc) fn myint2str(yr)]; |
80 |
|
|
disp(fin) |
81 |
|
|
tmp=readbin(fin,[nx ny nt]); |
82 |
|
|
for mo=1:12 |
83 |
|
|
it=(1:122)+(mo-1)*122; |
84 |
|
|
fld(:,:,mo)=fld(:,:,mo)+mean(tmp(:,:,it),3); |
85 |
|
|
end |
86 |
|
|
end |
87 |
|
|
fld=fld/n; writebin(fout,fld); |
88 |
|
|
|
89 |
|
|
% Downward shortwave radiation in W/m^2 |
90 |
|
|
fn='/RG_dsw'; fout='swdown_192_94_12.bin'; disp(fout) |
91 |
|
|
fld=zeros(nx,ny,12); n=0; |
92 |
|
|
for year=1978:2002, n=n+1; |
93 |
|
|
yr=year-100*floor(year/100); |
94 |
|
|
dc=10*floor(yr/10); |
95 |
|
|
fin=[pn myint2str(dc) fn myint2str(yr)]; |
96 |
|
|
disp(fin) |
97 |
|
|
tmp=readbin(fin,[nx ny nt]); |
98 |
|
|
for mo=1:12 |
99 |
|
|
it=(1:122)+(mo-1)*122; |
100 |
|
|
fld(:,:,mo)=fld(:,:,mo)+mean(tmp(:,:,it),3); |
101 |
|
|
end |
102 |
|
|
end |
103 |
|
|
fld=fld/n; writebin(fout,fld); |
104 |
|
|
|
105 |
|
|
% Downward longwave radiation in W/m^2 |
106 |
|
|
fn='/RG_dlw'; fout='lwdown_192_94_12.bin'; disp(fout) |
107 |
|
|
fld=zeros(nx,ny,12); n=0; |
108 |
|
|
for year=1978:2002, n=n+1; |
109 |
|
|
yr=year-100*floor(year/100); |
110 |
|
|
dc=10*floor(yr/10); |
111 |
|
|
fin=[pn myint2str(dc) fn myint2str(yr)]; |
112 |
|
|
disp(fin) |
113 |
|
|
tmp=readbin(fin,[nx ny nt]); |
114 |
|
|
for mo=1:12 |
115 |
|
|
it=(1:122)+(mo-1)*122; |
116 |
|
|
fld(:,:,mo)=fld(:,:,mo)+mean(tmp(:,:,it),3); |
117 |
|
|
end |
118 |
|
|
end |
119 |
|
|
fld=fld/n; writebin(fout,fld); |