1 |
function [field_cur]=gpcp_load_fields(list_years); |
2 |
%loads the fields and does the interpolation to the 1x1 ECCO grid |
3 |
domaine_global_def; |
4 |
|
5 |
mask=squeeze(tmask3D(:,:,1)); |
6 |
|
7 |
rep_in='/net/ross/raid0/gforget/DATAbin/forcing/GPCP/'; |
8 |
|
9 |
jpig=144; jpjg=72; |
10 |
lon2D_g=[1.25:2.5:358.75]'*ones(1,jpjg); lat2D_g=ones(jpig,1)*[-88.75:2.5:88.75]; |
11 |
mask_g=ones(jpig,jpjg); recl=jpig*jpjg*4; |
12 |
|
13 |
[x1,y1] = meshgrid([lon2D_g(end,1)-360 lon2D_g(:,1)' lon2D_g(1:2,1)'+360],lat2D_g(1,:)); |
14 |
[x2,y2] = meshgrid(lon2D_t(:,1),lat2D_t(1,:)); |
15 |
|
16 |
|
17 |
nb_cur=zeros(1,12); field_cur=zeros(jpi,jpj,12); |
18 |
for ycur=list_years |
19 |
fid=fopen([rep_in 'gpcp_v2_psg.' num2str(ycur)],'r','b'); |
20 |
status=fseek(fid,576,'bof'); %skip header |
21 |
for mcur=1:12; |
22 |
field_in=flipdim(fread(fid,[jpig jpjg],'float32'),2); |
23 |
%interpolate: |
24 |
tmp1=[field_in(end,:);field_in;field_in(1,:);field_in(2,:)]'; |
25 |
field_out=interp2(x1,y1,tmp1,x2,y2)'; |
26 |
%units: |
27 |
field_out=field_out.*mask/86400; |
28 |
%sum: |
29 |
field_cur(:,:,mcur)=field_cur(:,:,mcur)+field_out; nb_cur(mcur)=nb_cur(mcur)+1; |
30 |
end; |
31 |
fclose(fid); |
32 |
end%for ycur=list_years |
33 |
|
34 |
%sum2average: |
35 |
for tcur=1:12; field_cur(:,:,tcur)=field_cur(:,:,tcur)/nb_cur(tcur); end; |
36 |
|
37 |
|
38 |
|