


Dump tidal turbine parameters to FVCOM forcing file.
function write_FVCOM_TT(turbine,filename,mytitle)
DESCRIPTION:
Generate a NetCDF file containing tidal turbine parameters for FVCOM.
netCDF variable names:
turbine_sigma_layer, turbine_number, swept_area
INPUT:
turbine.numbers = user defined array of integers specify the number of turbines in each element
defined on the elements
turbine.sigma_layer = user defined array specifying the fractional
split across sigma layers that the turbine rotor swept area occupies
turbine.area = rotor swept area (m^2)
filename = filename to dump to
mytitle = title of the case (set as global attribute)
EXAMPLE USAGE:
write_FVCOM_TT(turbine, 'tst_file.nc', 'tst tidal turbine parameters')
Author(s):
Rory O'Hara Murray (MSS)
Revision history
==============================================================================
warning off

0001 function write_FVCOM_TT3(turbine,filename,mytitle) 0002 0003 % Dump tidal turbine parameters to FVCOM forcing file. 0004 % 0005 % function write_FVCOM_TT(turbine,filename,mytitle) 0006 % 0007 % DESCRIPTION: 0008 % Generate a NetCDF file containing tidal turbine parameters for FVCOM. 0009 % netCDF variable names: 0010 % turbine_sigma_layer, turbine_number, swept_area 0011 % 0012 % INPUT: 0013 % turbine.numbers = user defined array of integers specify the number of turbines in each element 0014 % defined on the elements 0015 % turbine.sigma_layer = user defined array specifying the fractional 0016 % split across sigma layers that the turbine rotor swept area occupies 0017 % turbine.area = rotor swept area (m^2) 0018 % filename = filename to dump to 0019 % mytitle = title of the case (set as global attribute) 0020 % 0021 % EXAMPLE USAGE: 0022 % write_FVCOM_TT(turbine, 'tst_file.nc', 'tst tidal turbine parameters') 0023 % 0024 % Author(s): 0025 % Rory O'Hara Murray (MSS) 0026 % 0027 % Revision history 0028 % 0029 %============================================================================== 0030 %warning off 0031 subname = 'write_FVCOM_TT'; 0032 global ftbverbose; 0033 if(ftbverbose); 0034 fprintf('\n'); fprintf(['begin : ' subname '\n']); 0035 end; 0036 0037 % check dimensions 0038 nElems = numel(turbine.numbers); 0039 nSiglay = size(turbine.sigma_layer,2); 0040 if(nElems == 0) 0041 error('dimension of turbine_numbers is 0, something is wrong ') 0042 end; 0043 0044 if isfield(turbine, 'thrust') 0045 write_thrust = true; 0046 else 0047 write_thrust = false; 0048 end 0049 0050 %------------------------------------------------------------------------------ 0051 % Dump to turbine NetCDF file 0052 %------------------------------------------------------------------------------ 0053 if(ftbverbose); 0054 fprintf('Dumping to turbine parameters NetCDF file: %s\n',filename); 0055 fprintf('Size of turbine_numbers array: %i\n',nElems); 0056 end; 0057 nc = netcdf.create(filename,'clobber'); 0058 0059 netcdf.putAtt(nc,netcdf.getConstant('NC_GLOBAL'),'title',mytitle) 0060 netcdf.putAtt(nc,netcdf.getConstant('NC_GLOBAL'),'history', sprintf('File created with %s from the MATLAB fvcom-toolbox', subname)) 0061 0062 % dimensions 0063 nele_dimid=netcdf.defDim(nc,'nele',nElems); 0064 nsiglay_dimid=netcdf.defDim(nc,'siglay', nSiglay); 0065 0066 % variables and attributes 0067 num_tt_varid=netcdf.defVar(nc,'turbine_number','NC_FLOAT',nele_dimid); 0068 netcdf.putAtt(nc,num_tt_varid,'long_name','Number of turbines in each element'); 0069 0070 sigma_layer_varid=netcdf.defVar(nc,'turbine_sigma_layer','NC_FLOAT',[nele_dimid nsiglay_dimid]); 0071 netcdf.putAtt(nc,sigma_layer_varid,'long_name','the fraction of each sigma layer that the turbines are located in'); 0072 0073 swept_area_varid=netcdf.defVar(nc,'swept_area','NC_FLOAT',nele_dimid); 0074 netcdf.putAtt(nc,swept_area_varid,'long_name','Area swept by turbine rotor blades'); 0075 0076 if write_thrust 0077 thrust_coeff_varid=netcdf.defVar(nc,'thrust_coeff','NC_FLOAT',nele_dimid); 0078 netcdf.putAtt(nc,thrust_coeff_varid,'long_name','Turbine thrust ceofficient'); 0079 end 0080 0081 % variables that could be added in the future 0082 % blade_coeff_varid=netcdf.defVar(nc,'blade_coeff','NC_FLOAT',nele_dimid); 0083 % netcdf.putAtt(nc,blade_coeff_varid,'long_name','Drag coefficient for the turbine blades'); 0084 0085 % end definitions 0086 netcdf.endDef(nc); 0087 0088 % write data 0089 % netCDF variable names: 0090 % turbine_sigma_layer, turbine_number, swept_area 0091 netcdf.putVar(nc,num_tt_varid,turbine.numbers); 0092 netcdf.putVar(nc,sigma_layer_varid,turbine.sigma_layer); 0093 netcdf.putVar(nc,swept_area_varid,turbine.area); 0094 if write_thrust 0095 netcdf.putVar(nc,thrust_coeff_varid,turbine.thrust); 0096 end 0097 0098 % variables that could be added in the future 0099 % netcdf.putVar(nc,blade_coeff_varid,turbine.drag); 0100 0101 % close file 0102 netcdf.close(nc); 0103 0104 if(ftbverbose); 0105 fprintf(['end : ' subname '\n']) 0106 end; 0107 0108