diff --git a/Aforc_CFSR/make_CFSR.m b/Aforc_CFSR/make_CFSR.m index efc3611ece585d86abdb14be7ba568f10cda1245..a1dc7e17efab127746be99db314a57c6e6ae3e43 100644 --- a/Aforc_CFSR/make_CFSR.m +++ b/Aforc_CFSR/make_CFSR.m @@ -174,32 +174,26 @@ if makefrc==1 | makeblk==1 disp(['=====================']) % Create the CROCO forcing files blkname=[blk_prefix,'Y',num2str(Y),... - 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; + 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; frcname=[frc_prefix,'Y',num2str(Y),... - 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; + 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; if makeblk==1 disp(['Create a new bulk file: ' blkname]) create_bulk(blkname,grdname,CROCO_title,time,0); + nc_add_globatt(blkname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,'CFSR'); disp([' ']) end if makefrc==1 disp(['Create a new forcing file: ' frcname]) disp([' ']) - create_forcing(frcname,grdname,CROCO_title,... - time,0,0,... - 0,0,0,... - 0,0,0,0,0,0) - end - % - % Add the tides (needs to be tested for this version of make_NCEP) - % - if add_tides==1 - disp(['Add tidal data']) - disp(['==============']) - %add_tidal_data(tidename,grdname,frcname,Ntides,tidalrank,... - % Y,M,Dmin,Hmin,Min_min,Smin,coastfileplot) - add_tides(tidename,grdname,frcname,Ntides,tidalrank,... - Yorig,Y,M,coastfileplot) + create_forcing(frcname,grdname,CROCO_title,time,0,0,0,0,0,0,0,0,0,0,0) + nc_add_globatt(frcname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,'CFSR'); + if add_tides==1 + disp(['Add tidal data']) + disp(['==============']) + add_tidal_data(tidename,grdname,frcname,Ntides,tidalrank,... + Yorig,year,month,coastfileplot,0,1,1,salname) + end end % % Open the CROCO forcing files diff --git a/Aforc_ECMWF/make_ECMWF.m b/Aforc_ECMWF/make_ECMWF.m index b9301c9e1e2a66417d886610941917000fa1d380..71d09bb05d0602294ccc1967cb22556f850879d6 100644 --- a/Aforc_ECMWF/make_ECMWF.m +++ b/Aforc_ECMWF/make_ECMWF.m @@ -183,22 +183,21 @@ if makefrc==1 | makeblk==1 if makeblk==1 disp(['Create a new bulk file: ' blkname]) create_bulk(blkname,grdname,CROCO_title,time,0); - disp([' ']) + nc_add_globatt(blkname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,'ERAI'); + disp([' ']) end if makefrc==1 disp(['Create a new forcing file: ' frcname]) - disp([' ']) + disp([' ']) create_forcing(frcname,grdname,CROCO_title,... - time,0,0,... - 0,0,0,... - 0,0,0,0,0,0) - end - % - % Add the tides (needs to be tested for this version of make_ECMWF) - % - if add_tides==1 - add_tidal_data(tidename,grdname,frcname,Ntides,tidalrank,... - Yorig,Y,M,coastfileplot) + time,0,0,.0,0,0,0,0,0,0,0,0) + nc_add_globatt(frcname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,'ERAI'); + if add_tides==1 + disp(['Add tidal data']) + disp(['==============']) + add_tidal_data(tidename,grdname,frcname,Ntides,tidalrank,... + Yorig,Y,M,coastfileplot,0,1,1,salname) + end end % % Open the CROCO forcing files diff --git a/Aforc_ECMWF/make_ECMWF_daily.m b/Aforc_ECMWF/make_ECMWF_daily.m index 5c67d15396d7d15503c0fc4137cdda63fc944ccc..aec75c2020bcd111e9700f50e3c8c81cb7119eee 100644 --- a/Aforc_ECMWF/make_ECMWF_daily.m +++ b/Aforc_ECMWF/make_ECMWF_daily.m @@ -181,22 +181,19 @@ if makefrc==1 | makeblk==1 if makeblk==1 disp(['Create a new bulk file: ' blkname]) create_bulk(blkname,grdname,CROCO_title,time,0); - disp([' ']) + nc_add_globatt(blkname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,'ERAI'); + disp([' ']) end if makefrc==1 disp(['Create a new forcing file: ' frcname]) - disp([' ']) + disp([' ']) create_forcing(frcname,grdname,CROCO_title,... - time,0,0,... - 0,0,0,... - 0,0,0,0,0,0) - end - % - % Add the tides (needs to be tested for this version of make_ECMWF) - % - if add_tides==1 - add_tidal_data(tidename,grdname,frcname,Ntides,tidalrank,... - Yorig,Y,M,coastfileplot) + time,0,0,0,0,0,0,0,0,0,0,0) + nc_add_globatt(frcname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,'ERAI'); + if add_tides==1 + add_tidal_data(tidename,grdname,frcname,Ntides,tidalrank,... + Yorig,Y,M,coastfileplot,0,1,1,salname) + end end % % Open the CROCO forcing files diff --git a/Aforc_ERA5/make_ERA5.m b/Aforc_ERA5/make_ERA5.m index be850f0a7e7c60362c85395e78b9d2cf44790833..186d6aaaad3e2411f311ae3f52a80f7c25aff9a2 100644 --- a/Aforc_ERA5/make_ERA5.m +++ b/Aforc_ERA5/make_ERA5.m @@ -149,15 +149,8 @@ for Y=Ymin:Ymax 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; disp(['Create a new bulk file: ' blkname]) create_bulk(blkname,grdname,CROCO_title,time,0); + nc_add_globatt(blkname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,'ERA5'); disp([' ']) - % % - % % Add the tides (needs to be tested for this version of make_ERA5) - % % - % if add_tides==1 - % add_tidal_data(tidename,grdname,frcname,Ntides,tidalrank,... - % Yorig,Y,M,coastfileplot) - % end - % % Open the CROCO forcing files nc_blk=netcdf(blkname,'write'); % diff --git a/Aforc_QuikSCAT/make_QSCAT_daily.m b/Aforc_QuikSCAT/make_QSCAT_daily.m index ff7b6549c1a3dfd0d7eb60670c12edf35da73f9f..edd73c85e5e3f7b9d7dbb6fdea502f7969e4390d 100644 --- a/Aforc_QuikSCAT/make_QSCAT_daily.m +++ b/Aforc_QuikSCAT/make_QSCAT_daily.m @@ -193,6 +193,7 @@ for Y=Ymin:Ymax coads_time,coads_time,coads_time,... 0,coads_cycle,coads_cycle,... coads_cycle,coads_cycle,coads_cycle) + nc_add_globatt(frcname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,'QSCAT'); nc_frc=netcdf(frcname,'write'); % Add the wind diff --git a/Oforc_OGCM/make_OGCM.m b/Oforc_OGCM/make_OGCM.m index 7bb172b5e131f861bc2767518048e55b05afe3b6..13b070e9821bd97de7051930c4bda69620b791f4 100644 --- a/Oforc_OGCM/make_OGCM.m +++ b/Oforc_OGCM/make_OGCM.m @@ -160,6 +160,7 @@ if makeini==1 create_inifile(ininame,grdname,CROCO_title,... theta_s,theta_b,hc,N,... tini,'clobber', vtransform); + nc_add_globatt(ininame,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,OGCM); nc_ini=netcdf(ininame,'write'); interp_OGCM(OGCM_dir,OGCM_prefix,Ymin,Mmin,Roa,interp_method,... lonU,latU,lonV,latV,lonT,latT,Z,1,... @@ -231,20 +232,20 @@ if makeclim==1 | makebry==1 % disp(['===================================']) for aa= 1:itolap_a - disp(['Compute beginning overlap, time index:',num2str(aa)]) - disp(['Add ',num2str(-(itolap_a + 1 - aa)), ' timestep dt']) - disp(['--------']) - croco_time(aa) = croco_time(itolap_a+1) - ((itolap_a + 1 - aa).* dt); + disp(['Compute beginning overlap, time index:',num2str(aa)]) + disp(['Add ',num2str(-(itolap_a + 1 - aa)), ' timestep dt']) + disp(['--------']) + croco_time(aa) = croco_time(itolap_a+1) - ((itolap_a + 1 - aa).* dt); end % %Next month % disp(['===================================']) for aa= 1:itolap_p - disp(['Compute end overlap, time index:',num2str(ntimes+itolap_tot - itolap_p + aa)]) - disp(['Add ',num2str(aa), ' timestep dt']) - disp(['--------']) - croco_time(end - itolap_p + aa ) = croco_time(end - itolap_p) + aa.* dt; + disp(['Compute end overlap, time index:',num2str(ntimes+itolap_tot - itolap_p + aa)]) + disp(['Add ',num2str(aa), ' timestep dt']) + disp(['--------']) + croco_time(end - itolap_p + aa ) = croco_time(end - itolap_p) + aa.* dt; end disp(['===================================']) close(nc) @@ -253,38 +254,39 @@ if makeclim==1 | makebry==1 % Create and open the CROCO files % if makebry==1 - bryname=[bry_prefix,'Y',num2str(Y),... - 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; - create_bryfile(bryname,grdname,CROCO_title,[1 1 1 1],... + bryname=[bry_prefix,'Y',num2str(Y),... + 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; + create_bryfile(bryname,grdname,CROCO_title,[1 1 1 1],... theta_s,theta_b,hc,N,... croco_time,0,'clobber',vtransform); - nc_bry=netcdf(bryname,'write'); + nc_add_globatt(bryname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,OGCM); + nc_bry=netcdf(bryname,'write'); else - nc_bry=[]; + nc_bry=[]; end if makeclim==1 - clmname=[clm_prefix,'Y',num2str(Y),... - 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; - create_climfile(clmname,grdname,CROCO_title,... - theta_s,theta_b,hc,N,... - croco_time,0,'clobber',vtransform); - nc_clm=netcdf(clmname,'write'); + clmname=[clm_prefix,'Y',num2str(Y),... + 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; + create_climfile(clmname,grdname,CROCO_title,... + theta_s,theta_b,hc,N,croco_time,0,'clobber',vtransform); + nc_add_globatt(clmname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,OGCM); + nc_clm=netcdf(clmname,'write'); else - nc_clm=[]; + nc_clm=[]; end % % Check if there are OGCM files for the previous Month % fname=[OGCM_dir,OGCM_prefix,'Y',num2str(Ym),'M',num2str(Mm),'.cdf']; if exist(fname)==0 - disp([' No data for the previous month: using current month']) - Mm=M; - Ym=Y; - tndx_OGCM=ones(itolap_a,1); + disp([' No data for the previous month: using current month']) + Mm=M; + Ym=Y; + tndx_OGCM=ones(itolap_a,1); else - nc=netcdf(fname,'r'); - tndx_OGCM=[(length(nc('time'))- (itolap_a -1) ):1: (length(nc('time')))]; - close(nc) + nc=netcdf(fname,'r'); + tndx_OGCM=[(length(nc('time'))- (itolap_a -1) ):1: (length(nc('time')))]; + close(nc) end % % Perform the interpolations for the previous month @@ -292,10 +294,10 @@ if makeclim==1 | makebry==1 disp(' Previous month :') disp('=================') for aa=1:itolap_a - disp(['Beg overlap # ', num2str(aa),' -> tindex ',num2str(aa)]) - disp(['It. of prev month used for it= ',num2str(tndx_OGCM(aa))]) - interp_OGCM(OGCM_dir,OGCM_prefix,Ym,Mm,Roa,interp_method,... - lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM(aa),... + disp(['Beg overlap # ', num2str(aa),' -> tindex ',num2str(aa)]) + disp(['It. of prev month used for it= ',num2str(tndx_OGCM(aa))]) + interp_OGCM(OGCM_dir,OGCM_prefix,Ym,Mm,Roa,interp_method,... + lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM(aa),... nc_clm,nc_bry,lon,lat,angle,h,aa,obc,vtransform) end % @@ -305,9 +307,9 @@ if makeclim==1 | makebry==1 disp(' Current month :') disp('================') for tndx_OGCM=1:ntimes - disp([' Time step : ',num2str(tndx_OGCM),' of ',num2str(ntimes),' :']) - interp_OGCM(OGCM_dir,OGCM_prefix,Y,M,Roa,interp_method,... - lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM,... + disp([' Time step : ',num2str(tndx_OGCM),' of ',num2str(ntimes),' :']) + interp_OGCM(OGCM_dir,OGCM_prefix,Y,M,Roa,interp_method,... + lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM,... nc_clm,nc_bry,lon,lat,angle,h,tndx_OGCM+itolap_a,obc,vtransform) end % @@ -315,16 +317,16 @@ if makeclim==1 | makebry==1 % fname=[OGCM_dir,OGCM_prefix,'Y',num2str(Yp),'M',num2str(Mp),'.cdf']; if exist(fname)==0 - disp([' No data for the next month: using current month']) - Mp=M; - Yp=Y; - for aa=1:itolap_p - tndx_OGCM(aa)=ntimes; - end + disp([' No data for the next month: using current month']) + Mp=M; + Yp=Y; + for aa=1:itolap_p + tndx_OGCM(aa)=ntimes; + end else - for aa=1:itolap_p - tndx_OGCM(aa)=aa; - end; + for aa=1:itolap_p + tndx_OGCM(aa)=aa; + end; end % % Perform the interpolations for the next month @@ -332,9 +334,9 @@ if makeclim==1 | makebry==1 disp(' Next month :') disp('=============') for aa=1:itolap_p - disp(['End Overlap #',num2str(aa),' -> tindex ',num2str(ntimes+itolap_a+aa)]) - disp(['It. of next month used for it= ',num2str(tndx_OGCM(aa))]) - interp_OGCM(OGCM_dir,OGCM_prefix,Yp,Mp,Roa,interp_method,... + disp(['End Overlap #',num2str(aa),' -> tindex ',num2str(ntimes+itolap_a+aa)]) + disp(['It. of next month used for it= ',num2str(tndx_OGCM(aa))]) + interp_OGCM(OGCM_dir,OGCM_prefix,Yp,Mp,Roa,interp_method,... lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM(aa),... nc_clm,nc_bry,lon,lat,angle,h,ntimes+itolap_a+aa,obc,vtransform) end @@ -342,10 +344,10 @@ if makeclim==1 | makebry==1 % Close the CROCO files % if ~isempty(nc_clm) - close(nc_clm); + close(nc_clm); end if ~isempty(nc_bry) - close(nc_bry); + close(nc_bry); end % end diff --git a/Oforc_OGCM/make_OGCM_mercator.m b/Oforc_OGCM/make_OGCM_mercator.m index efdcbe6105f36180c3b4310ce2ddea535a051962..1619d15f8212497dd5b874344065d7cfd2e9b291 100644 --- a/Oforc_OGCM/make_OGCM_mercator.m +++ b/Oforc_OGCM/make_OGCM_mercator.m @@ -45,6 +45,10 @@ close all % crocotools_param % +disp('=============================================') +disp('Take care of OGCM defined in crocotools_param') +disp('=============================================') +% % MERCATOR : see get_file_python_mercator.m for python-motu, url, and others options % itolap_tot=itolap_a + itolap_p; @@ -156,8 +160,9 @@ if makeini==1 tini,'clobber', vtransform); nc_ini=netcdf(ininame,'write'); interp_OGCM(OGCM_dir,OGCM_prefix,Ymin,Mmin,Roa,interp_method,... - lonU,latU,lonV,latV,lonT,latT,Z,1,... - nc_ini,[],lon,lat,angle,h,1,obc,vtransform) + lonU,latU,lonV,latV,lonT,latT,Z,1,... + nc_ini,[],lon,lat,angle,h,1,obc,vtransform) + nc_add_globatt(ininame,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,OGCM); close(nc_ini) end % @@ -191,13 +196,13 @@ if makeclim==1 | makebry==1 % Mm=M-1;Ym=Y; if Mm==0 - Mm=12; - Ym=Y-1; + Mm=12; + Ym=Y-1; end Mp=M+1;Yp=Y; if Mp==13 - Mp=1; - Yp=Y+1; + Mp=1; + Yp=Y+1; end % % Add 2 times step in the CROCO files: 1 at the beginning and 1 at the end @@ -206,13 +211,13 @@ if makeclim==1 | makebry==1 OGCM_time=nc{'time'}(:); ntimes=length(OGCM_time); if ntimes==1 - dt=30; % monthly files (SODA..) + dt=30; % monthly files (SODA..) itolap_a=1; itolap_p=1; itolap_tot=itolap_a + itolap_p; disp(['Reduced overlap for monthly SODA files']) disp(['...']) else - dt=max(gradient(OGCM_time)); + dt=max(gradient(OGCM_time)); end % %% Fill the time axis @@ -225,20 +230,20 @@ if makeclim==1 | makebry==1 % disp(['===================================']) for aa= 1:itolap_a - disp(['Compute beginning overlap, time index:',num2str(aa)]) - disp(['Add ',num2str(-(itolap_a + 1 - aa)), ' timestep dt']) - disp(['--------']) - croco_time(aa) = croco_time(itolap_a+1) - ((itolap_a + 1 - aa).* dt); + disp(['Compute beginning overlap, time index:',num2str(aa)]) + disp(['Add ',num2str(-(itolap_a + 1 - aa)), ' timestep dt']) + disp(['--------']) + croco_time(aa) = croco_time(itolap_a+1) - ((itolap_a + 1 - aa).* dt); end % %Next month % disp(['===================================']) for aa= 1:itolap_p - disp(['Compute end overlap, time index:',num2str(ntimes+itolap_tot - itolap_p + aa)]) - disp(['Add ',num2str(aa), ' timestep dt']) - disp(['--------']) - croco_time(end - itolap_p + aa ) = croco_time(end - itolap_p) + aa.* dt; + disp(['Compute end overlap, time index:',num2str(ntimes+itolap_tot - itolap_p + aa)]) + disp(['Add ',num2str(aa), ' timestep dt']) + disp(['--------']) + croco_time(end - itolap_p + aa ) = croco_time(end - itolap_p) + aa.* dt; end disp(['===================================']) close(nc) @@ -247,38 +252,40 @@ if makeclim==1 | makebry==1 % Create and open the CROCO files % if makebry==1 - bryname=[bry_prefix,'Y',num2str(Y),... - 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; - create_bryfile(bryname,grdname,CROCO_title,[1 1 1 1],... + bryname=[bry_prefix,'Y',num2str(Y),... + 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; + create_bryfile(bryname,grdname,CROCO_title,[1 1 1 1],... theta_s,theta_b,hc,N,... croco_time,0,'clobber',vtransform); - nc_bry=netcdf(bryname,'write'); + nc_add_globatt(bryname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,OGCM); + nc_bry=netcdf(bryname,'write'); else - nc_bry=[]; + nc_bry=[]; end if makeclim==1 - clmname=[clm_prefix,'Y',num2str(Y),... - 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; - create_climfile(clmname,grdname,CROCO_title,... - theta_s,theta_b,hc,N,... + clmname=[clm_prefix,'Y',num2str(Y),... + 'M',num2str(sprintf(Mth_format,M)),nc_suffix]; + create_climfile(clmname,grdname,CROCO_title,... + theta_s,theta_b,hc,N,... croco_time,0,'clobber',vtransform); - nc_clm=netcdf(clmname,'write'); + nc_add_globatt(clmname,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,OGCM); + nc_clm=netcdf(clmname,'write'); else - nc_clm=[]; + nc_clm=[]; end % % Check if there are OGCM files for the previous Month % fname=[OGCM_dir,OGCM_prefix,'Y',num2str(Ym),'M',num2str(Mm),'.cdf']; if exist(fname)==0 - disp([' No data for the previous month: using current month']) - Mm=M; - Ym=Y; - tndx_OGCM=ones(itolap_a,1); + disp([' No data for the previous month: using current month']) + Mm=M; + Ym=Y; + tndx_OGCM=ones(itolap_a,1); else - nc=netcdf(fname); - tndx_OGCM=[(length(nc('time'))- (itolap_a -1) ):1: (length(nc('time')))]; - close(nc) + nc=netcdf(fname); + tndx_OGCM=[(length(nc('time'))- (itolap_a -1) ):1: (length(nc('time')))]; + close(nc) end % % Perform the interpolations for the previous month @@ -286,10 +293,10 @@ if makeclim==1 | makebry==1 disp(' Previous month :') disp('=================') for aa=1:itolap_a - disp(['Beg overlap # ', num2str(aa),' -> tindex ',num2str(aa)]) - disp(['It. of prev month used for it= ',num2str(tndx_OGCM(aa))]) - interp_OGCM(OGCM_dir,OGCM_prefix,Ym,Mm,Roa,interp_method,... - lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM(aa),... + disp(['Beg overlap # ', num2str(aa),' -> tindex ',num2str(aa)]) + disp(['It. of prev month used for it= ',num2str(tndx_OGCM(aa))]) + interp_OGCM(OGCM_dir,OGCM_prefix,Ym,Mm,Roa,interp_method,... + lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM(aa),... nc_clm,nc_bry,lon,lat,angle,h,aa,obc,vtransform) end % @@ -299,9 +306,9 @@ if makeclim==1 | makebry==1 disp(' Current month :') disp('================') for tndx_OGCM=1:ntimes - disp([' Time step : ',num2str(tndx_OGCM),' of ',num2str(ntimes),' :']) - interp_OGCM(OGCM_dir,OGCM_prefix,Y,M,Roa,interp_method,... - lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM,... + disp([' Time step : ',num2str(tndx_OGCM),' of ',num2str(ntimes),' :']) + interp_OGCM(OGCM_dir,OGCM_prefix,Y,M,Roa,interp_method,... + lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM,... nc_clm,nc_bry,lon,lat,angle,h,tndx_OGCM+itolap_a,obc,vtransform) end % @@ -309,37 +316,37 @@ if makeclim==1 | makebry==1 % fname=[OGCM_dir,OGCM_prefix,'Y',num2str(Yp),'M',num2str(Mp),'.cdf']; if exist(fname)==0 - disp([' No data for the next month: using current month']) - Mp=M; - Yp=Y; - for aa=1:itolap_p - tndx_OGCM(aa)=ntimes; - end + disp([' No data for the next month: using current month']) + Mp=M; + Yp=Y; + for aa=1:itolap_p + tndx_OGCM(aa)=ntimes; + end else - for aa=1:itolap_p - tndx_OGCM(aa)=aa; - end; - end + for aa=1:itolap_p + tndx_OGCM(aa)=aa; + end; + end % % Perform the interpolations for the next month % disp(' Next month :') disp('=============') for aa=1:itolap_p - disp(['End Overlap #',num2str(aa),' -> tindex ',num2str(ntimes+itolap_a+aa)]) - disp(['It. of next month used for it= ',num2str(tndx_OGCM(aa))]) - interp_OGCM(OGCM_dir,OGCM_prefix,Yp,Mp,Roa,interp_method,... - lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM(aa),... + disp(['End Overlap #',num2str(aa),' -> tindex ',num2str(ntimes+itolap_a+aa)]) + disp(['It. of next month used for it= ',num2str(tndx_OGCM(aa))]) + interp_OGCM(OGCM_dir,OGCM_prefix,Yp,Mp,Roa,interp_method,... + lonU,latU,lonV,latV,lonT,latT,Z,tndx_OGCM(aa),... nc_clm,nc_bry,lon,lat,angle,h,ntimes+itolap_a+aa,obc,vtransform) end % % Close the CROCO files % if ~isempty(nc_clm) - close(nc_clm); + close(nc_clm); end if ~isempty(nc_bry) - close(nc_bry); + close(nc_bry); end % end diff --git a/Preprocessing_tools/ext_tracers_ini.m b/Preprocessing_tools/ext_tracers_ini.m index 23c9b5879b090838c188f86f165ca30b090736e9..d698700f6a77d9144afee7fc2bdd9227e3f45a44 100644 --- a/Preprocessing_tools/ext_tracers_ini.m +++ b/Preprocessing_tools/ext_tracers_ini.m @@ -82,7 +82,7 @@ disp([' ext_tracers_ini: time index: ',num2str(l),' of total: ',num2str(tlen)] % % get a subgrid % -dl=1; +dl=2; lonmin=min(min(lon))-dl; lonmax=max(max(lon))+dl; latmin=min(min(lat))-dl; diff --git a/Preprocessing_tools/nc_add_globatt.m b/Preprocessing_tools/nc_add_globatt.m new file mode 100644 index 0000000000000000000000000000000000000000..2b2907e3b71aed62c9ad128cfb17f8ec73178e53 --- /dev/null +++ b/Preprocessing_tools/nc_add_globatt.m @@ -0,0 +1,38 @@ +function nc_add_globatt(filename,Yorig,Mmin,Dmin,Hmin,Min_min,Smin,product) +% +% Further Information: +% http://www.croco-ocean.org +% +% This file is part of CROCOTOOLS +% +% CROCOTOOLS is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published +% by the Free Software Foundation; either version 2 of the License, +% or (at your option) any later version. +% +% CROCOTOOLS is distributed in the hope that it will be useful, but +% WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 59 Temple Place, Suite 330, Boston, +% MA 02111-1307 USA +% +% Add global attribute with : +% - origin_date +% - product name +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +if nargin < 8 + product = 'unknow' +end +% +origin_date = datestr(datenum(Yorig,Mmin,Dmin,Hmin,Min_min,Smin),0); +% +nc=netcdf(filename,'write'); +nc.origin_date = origin_date; +nc.product = product; +close(nc) diff --git a/Tides/make_tides_interannual.m b/Tides/make_tides_interannual.m index 1199cd39b93540386885730a72bbdc232cda6157..a408607edca9b474b8f6354b079f829bfda0c952 100644 --- a/Tides/make_tides_interannual.m +++ b/Tides/make_tides_interannual.m @@ -1,6 +1,38 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% make_tides_interannual.m +% +% Create and fill interannual frc files with tides only +% (TPXO tide atlas) +% +% Further Information: +% http://www.croco-ocean.org +% +% This file is part of CROCOTOOLS +% +% CROCOTOOLS is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published +% by the Free Software Foundation; either version 2 of the License, +% or (at your option) any later version. +% +% CROCOTOOLS is distributed in the hope that it will be useful, but +% WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 59 Temple Place, Suite 330, Boston, +% MA 02111-1307 USA +% +% Copyright (c) 2005-2006 by Pierrick Penven +% e-mail:Pierrick.Penven@ird.fr +% +% +% Updated October 2022 (G. Cambon) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all close all - %%%%%%%%%%%%%%%%%%%%% USERS DEFINED VARIABLES %%%%%%%%%%%%%%%%%%%%%%%% % % Common parameters