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