0001 function write_FVCOM_obs_TS(time,zsl,nverts,tsl,ssl,filename,mytitle)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 global ftbverbose
0038
0039 subname = 'write_FVCOM_obc_TS'
0040 if ftbverbose
0041 fprintf('\nbegin : %s \n', subname);
0042 end
0043
0044
0045 ksl = numel(zsl);
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057 fprintf(['Dumping to NetCDF file: ',filename,'\n']);
0058 fprintf('Size of T/S array: %d\n',ksl);
0059
0060 nc = netcdf.create(filename,'clobber');
0061
0062 netcdf.putAtt(nc,netcdf.getConstant('NC_GLOBAL'),'title',mytitle)
0063 netcdf.putAtt(nc,netcdf.getConstant('NC_GLOBAL'),'history', sprintf('File created with %s from the MATLAB fvcom-toolbox', subname))
0064
0065
0066 ksl_dimid=netcdf.defDim(nc,'ksl',ksl);
0067 node_dimid=netcdf.defDim(nc,'node',nverts);
0068 time_dimid=netcdf.defDim(nc,'time',netcdf.getConstant('NC_UNLIMITED'));
0069
0070
0071 time_varid=netcdf.defVar(nc,'time','NC_FLOAT',time_dimid);
0072 netcdf.putAtt(nc,time_varid,'long_name','time');
0073 netcdf.putAtt(nc,time_varid,'units','days since 0.0');
0074 netcdf.putAtt(nc,time_varid,'time_zone','none');
0075
0076 itime_varid=netcdf.defVar(nc,'Itime','NC_INT',time_dimid);
0077 netcdf.putAtt(nc,itime_varid,'units','days since 0.0');
0078 netcdf.putAtt(nc,itime_varid,'time_zone','none');
0079
0080 itime2_varid=netcdf.defVar(nc,'Itime2','NC_INT',time_dimid);
0081 netcdf.putAtt(nc,itime2_varid,'units','msec since 00:00:00');
0082 netcdf.putAtt(nc,itime2_varid,'time_zone','none');
0083
0084 zsl_varid=netcdf.defVar(nc,'zsl','NC_FLOAT',ksl_dimid);
0085 netcdf.putAtt(nc,zsl_varid,'long_name','standard z levels positive up');
0086 netcdf.putAtt(nc,zsl_varid,'units','m');
0087
0088 ssl_varid=netcdf.defVar(nc,'ssl','NC_FLOAT',[node_dimid,ksl_dimid,time_dimid]);
0089 netcdf.putAtt(nc,ssl_varid,'long_name','observed_salinity_profile');
0090 netcdf.putAtt(nc,ssl_varid,'units','PSU');
0091
0092 tsl_varid=netcdf.defVar(nc,'tsl','NC_FLOAT',[node_dimid,ksl_dimid,time_dimid]);
0093 netcdf.putAtt(nc,tsl_varid,'long_name','observed_temperature_profile');
0094 netcdf.putAtt(nc,tsl_varid,'units','C');
0095
0096
0097 netcdf.endDef(nc);
0098
0099
0100
0101 netcdf.putVar(nc,time_varid,0,numel(time),time);
0102 netcdf.putVar(nc,itime_varid,floor(time));
0103 netcdf.putVar(nc,itime2_varid,0,numel(time),(mod(time,1)*24*3600*1000));
0104 netcdf.putVar(nc,zsl_varid,zsl);
0105 netcdf.putVar(nc,tsl_varid,tsl);
0106 netcdf.putVar(nc,ssl_varid,ssl);
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122 netcdf.close(nc);
0123
0124 if ftbverbose
0125 fprintf('end : %s \n', subname)
0126 end
0127
0128
0129