/[MITgcm]/MITgcm_contrib/king/prof_prep_taopirata/combine_taopirataindian.m
ViewVC logotype

Contents of /MITgcm_contrib/king/prof_prep_taopirata/combine_taopirataindian.m

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


Revision 1.1 - (show annotations) (download)
Tue Dec 16 19:46:48 2008 UTC (16 years, 7 months ago) by king
Branch: MAIN
CVS Tags: HEAD
first version

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

  ViewVC Help
Powered by ViewVC 1.1.22