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); |