Home > fvcom_prepro > write_FVCOM_TT.m

write_FVCOM_TT

PURPOSE ^

Dump tidal turbine parameters to FVCOM forcing file.

SYNOPSIS ^

function write_FVCOM_TT3(turbine,filename,mytitle)

DESCRIPTION ^

 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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

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

Generated on Wed 20-Feb-2019 16:06:01 by m2html © 2005