/[MITgcm]/MITgcm_contrib/gael/profilesMatlabProcessing/profiles_process_taopirata_v1/combine_taopirataindian.m
ViewVC logotype

Annotation of /MITgcm_contrib/gael/profilesMatlabProcessing/profiles_process_taopirata_v1/combine_taopirataindian.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download)
Wed Jan 5 22:09:50 2011 UTC (15 years, 10 months ago) by gforget
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
FILE REMOVED
- remove old codes.

1 gforget 1.1
2     rep_out='/raid0/gforget/DATA_TAO/V3/';
3     filename_out='taopirataindian0308';
4     for num_var=1:3;
5     if num_var==1;
6     nom_var='T';list_files=strvcat('TAO/taoT.nc','PIRATA/pirataT.nc','INDIAN/indianT.nc');
7     elseif num_var==2;
8     nom_var='S';list_files=strvcat('TAO/taoS.nc','PIRATA/pirataS.nc','INDIAN/indianS.nc');
9     else;
10     nom_var='UV';list_files=strvcat('TAO/taoUV.nc','PIRATA/pirataUV.nc','INDIAN/indianUV.nc');
11     end;
12    
13     %compile lists and handle different depths
14     nb_prof=0; list_alldepth=[];
15     for num_file=1:size(list_files,1)
16     eval(['ncload ' rep_out deblank(list_files(num_file,:)) ' prof_lon depth;']);
17     nb_prof=nb_prof+length(prof_lon);
18     if ~isempty(strfind(nom_var,'U'));
19     eval(['ncload ' rep_out deblank(list_files(num_file,:)) ' prof_Uweight;']);
20     prof_w=prof_Uweight;
21     else
22     eval(['ncload ' rep_out deblank(list_files(num_file,:)) ' prof_' nom_var 'weight;
23     prof_w=prof_' nom_var 'weight;']);
24     end
25     tmp1=sum(prof_w,1); tmp1=find(tmp1>0);
26     for kcur=1:length(tmp1);
27     if isempty(find(list_alldepth==depth(tmp1(kcur))));
28     list_alldepth=[list_alldepth depth(tmp1(kcur))];
29     end;
30     end;%for kcur=1:length(tmp1);
31     end;%for num_file=1:size(list_files,1)
32    
33     dmod=sort(list_alldepth);
34     nb_lev=length(dmod); nb_char=30;
35    
36    
37     %create the combined file:
38     %------------------------
39     fcdf=netcdf([rep_out filename_out nom_var '.nc'], 'clobber');
40    
41     %define netcdf dimensions :
42     fcdf('iPROF') = nb_prof;
43     fcdf('iDEPTH') = nb_lev;
44     fcdf('lTXT') = nb_char;
45    
46     %define netcdf variables :
47     fcdf{'depth'} = ncdouble('iDEPTH');
48     fcdf{'depth'}.units='meters';
49     fcdf{'prof_YYYYMMDD'} = ncdouble('iPROF');
50     fcdf{'prof_YYYYMMDD'}.missing_value=-9999;
51     fcdf{'prof_YYYYMMDD'}.long_name='year (4 digits), month (2 digits), day (2 digits)';
52     fcdf{'prof_HHMMSS'} = ncdouble('iPROF');
53     fcdf{'prof_HHMMSS'}.missing_value=-9999;
54     fcdf{'prof_HHMMSS'}.long_name='hour (2 digits), minute (2 digits), seconde (2 digits)';
55     fcdf{'prof_lon'} = ncdouble('iPROF');
56     fcdf{'prof_lon'}.units='(degree E)';
57     fcdf{'prof_lon'}.missing_value=-9999;
58     fcdf{'prof_lat'} = ncdouble('iPROF');
59     fcdf{'prof_lat'}.units='(degree N)';
60     fcdf{'prof_lat'}.missing_value=-9999;
61     if ~isempty(strfind(nom_var,'T'));
62     fcdf{'prof_T'} = ncdouble('iPROF','iDEPTH');
63     fcdf{'prof_T'}.long_name='potential temperature';
64     fcdf{'prof_T'}.units='degree Celsius';
65     fcdf{'prof_T'}.missing_value=-9999;
66     fcdf{'prof_Tweight'} = ncdouble('iPROF','iDEPTH');
67     fcdf{'prof_Tweight'}.long_name='weights';
68     fcdf{'prof_Tweight'}.units='(degree Celsius)^-2';
69     fcdf{'prof_Tweight'}.missing_value=0;
70     elseif ~isempty(strfind(nom_var,'S'));
71     fcdf{'prof_S'} = ncdouble('iPROF','iDEPTH');
72     fcdf{'prof_S'}.long_name='salinity';
73     fcdf{'prof_S'}.units='(no units)';
74     fcdf{'prof_S'}.missing_value=-9999;
75     fcdf{'prof_Sweight'} = ncdouble('iPROF','iDEPTH');
76     fcdf{'prof_Sweight'}.long_name='weights';
77     fcdf{'prof_Sweight'}.units='(no units)^-2';
78     fcdf{'prof_Sweight'}.missing_value=0;
79     else
80     fcdf{'prof_U'} = ncdouble('iPROF','iDEPTH');
81     fcdf{'prof_U'}.long_name='zonal velocity';
82     fcdf{'prof_U'}.units='m/s';
83     fcdf{'prof_U'}.missing_value=-9999;
84     fcdf{'prof_Uweight'} = ncdouble('iPROF','iDEPTH');
85     fcdf{'prof_Uweight'}.long_name='weights';
86     fcdf{'prof_Uweight'}.units='(m/s)^-2';
87     fcdf{'prof_Uweight'}.missing_value=0;
88     fcdf{'prof_V'} = ncdouble('iPROF','iDEPTH');
89     fcdf{'prof_V'}.long_name='meridional velocity';
90     fcdf{'prof_V'}.units='m/s';
91     fcdf{'prof_V'}.missing_value=-9999;
92     fcdf{'prof_Vweight'} = ncdouble('iPROF','iDEPTH');
93     fcdf{'prof_Vweight'}.long_name='weights';
94     fcdf{'prof_Vweight'}.units='(m/s)^-2';
95     fcdf{'prof_Vweight'}.missing_value=0;
96     end
97     fcdf{'prof_descr'} = ncchar('iPROF','lTXT');
98     fcdf{'prof_descr'}.long_name='profile description';
99    
100    
101     %fill the vector of the standard depths :
102     fcdf{'depth'}(1:nb_lev)=dmod;
103    
104     %fill the rest of the variables:
105     prev_ind=0;
106     for num_file=1:size(list_files,1)
107     eval(['ncload ' rep_out deblank(list_files(num_file,:)) ';']);
108     prof_lon(find(prof_lon>360))=prof_lon(find(prof_lon>360))-360;
109     list_prof=[1:length(prof_lon)];
110     fprintf(num2str(num_file));
111    
112     if ~isempty(strfind(nom_var,'U')); prof_w=prof_Uweight;
113     else; eval(['prof_w=prof_' nom_var 'weight;']);
114     end;
115     tmp1=sum(prof_w,1); tmp1=find(tmp1>0);
116    
117     kcur_glob=zeros(length(tmp1),1);
118     for kcur=1:length(tmp1); kcur_glob(kcur)=find(dmod==depth(tmp1(kcur))); end;
119     kcur_loc=tmp1;
120    
121     %fill the date and position vectors :
122     fcdf{'prof_YYYYMMDD'}(prev_ind+list_prof)=prof_YYYYMMDD(list_prof);
123     fcdf{'prof_HHMMSS'}(prev_ind+list_prof)=prof_HHMMSS(list_prof);
124     fcdf{'prof_lon'}(prev_ind+list_prof)=prof_lon(list_prof);
125     fcdf{'prof_lat'}(prev_ind+list_prof)=prof_lat(list_prof);
126    
127     %fill the data matrices :
128     for kcur=1:length(kcur_glob)
129     if ~isempty(strfind(nom_var,'T'));
130     fcdf{'prof_T'}(prev_ind+list_prof,kcur_glob(kcur))=prof_T(list_prof,kcur_loc(kcur));
131     fcdf{'prof_Tweight'}(prev_ind+list_prof,kcur_glob(kcur))=prof_Tweight(list_prof,kcur_loc(kcur));
132     elseif ~isempty(strfind(nom_var,'S'));
133     fcdf{'prof_S'}(prev_ind+list_prof,kcur_glob(kcur))=prof_S(list_prof,kcur_loc(kcur));
134     fcdf{'prof_Sweight'}(prev_ind+list_prof,kcur_glob(kcur))=prof_Sweight(list_prof,kcur_loc(kcur));
135     else
136     fcdf{'prof_U'}(prev_ind+list_prof,kcur_glob(kcur))=prof_U(list_prof,kcur_loc(kcur));
137     fcdf{'prof_Uweight'}(prev_ind+list_prof,kcur_glob(kcur))=prof_Uweight(list_prof,kcur_loc(kcur));
138     fcdf{'prof_V'}(prev_ind+list_prof,kcur_glob(kcur))=prof_V(list_prof,kcur_loc(kcur));
139     fcdf{'prof_Vweight'}(prev_ind+list_prof,kcur_glob(kcur))=prof_Vweight(list_prof,kcur_loc(kcur));
140     end
141     end
142     for kcur=1:length(dmod)
143     if isempty(find(kcur_glob==kcur))
144     if ~isempty(strfind(nom_var,'T'));
145     fcdf{'prof_T'}(prev_ind+list_prof,kcur)=-9999*ones(length(list_prof),1);
146     fcdf{'prof_Tweight'}(prev_ind+list_prof,kcur)=0*ones(length(list_prof),1);
147     elseif ~isempty(strfind(nom_var,'S'));
148     fcdf{'prof_S'}(prev_ind+list_prof,kcur)=-9999*ones(length(list_prof),1);
149     fcdf{'prof_Sweight'}(prev_ind+list_prof,kcur)=0*ones(length(list_prof),1);
150     else
151     fcdf{'prof_U'}(prev_ind+list_prof,kcur)=-9999*ones(length(list_prof),1);
152     fcdf{'prof_Uweight'}(prev_ind+list_prof,kcur)=0*ones(length(list_prof),1);
153     fcdf{'prof_V'}(prev_ind+list_prof,kcur)=-9999*ones(length(list_prof),1);
154     fcdf{'prof_Vweight'}(prev_ind+list_prof,kcur)=0*ones(length(list_prof),1);
155     end
156     end
157     end
158     %fill the field describing the instruments :
159     fcdf{'prof_descr'}(prev_ind+list_prof,:)=prof_descr(list_prof,:);
160    
161     prev_ind=prev_ind+length(list_prof);
162     end
163     %close the file :
164     fcdf=close(fcdf);
165    
166     end;%for num_var=1:2;
167    

  ViewVC Help
Powered by ViewVC 1.1.22