###################################################################################################################################
# Registry for IfW_BladedFFWind, creates MODULE IfW_BladedFFWind_Types
# Module IfW_BladedFFWind_Types contains all of the user-defined types needed in IfW_BladedFFWind. It also contains copy, destroy, pack, and
# unpack routines associated with each defined data types.
###################################################################################################################################
# Entries are of the form
# keyword <IfW_BladedFFWind[/ModuleAbvr]> <TypeName>   <FieldType>    <FieldName>  <Dims>  <Ctrl> <DNAME> <DESCRIP> <UNITS>
###################################################################################################################################


typedef IfW_FFWind_Base/IfW_FFWind    InitInputType     IntKi             ScaleMethod       -     0     -     "Turbulence scaling method [0=none, 1=direct scaling, 2= calculate scaling factor based on a desired standard deviation]"  -
typedef  ^                            ^                 ReKi              SF                3     0     -     "Turbulence scaling factor for each direction [ScaleMethod=1]"   -
typedef  ^                            ^                 ReKi              SigmaF            3     0     -     "Turbulence standard deviation to calculate scaling from in each direction [ScaleMethod=2]"   -
#typedef  ^                            ^                 ReKi              TStart            -     0     -     ""                                                          -
#typedef  ^                            ^                 ReKi              TEnd              -     0     -     ""                                                          -
typedef  ^                            ^                 IntKi             WindProfileType   -    -1     -     "Wind profile type (0=constant;1=logarithmic;2=power law)" -
typedef  ^                            ^                 ReKi              RefHt             -     0     -     "Reference (hub) height of the grid"                        meters
typedef  ^                            ^                 ReKi              URef              -     0     -     "Mean u-component wind speed at the reference height"       meters
typedef  ^                            ^                 ReKi              PLExp             -     0     -     "Power law exponent (used for PL wind profile type only)"   -
typedef  ^                            ^                 ReKi              Z0                -     0     -     "Surface roughness length (used for LOG wind profile type only)"  -
typedef  ^                            ^                 ReKi              XOffset           -     0     -     "distance offset for FF wind files"  m


# ..... Parameters ................................................................................................................
# Define parameters here:
# Time step for integration of continuous states (if a fixed-step integrator is used) and update of discrete states:
typedef  ^                            ParameterType     Logical           Periodic          -  .FALSE.  -     "Flag to indicate if the wind file is periodic"                -
typedef  ^                            ParameterType     Logical           InterpTower       -  .FALSE.  -     "Flag to indicate if we should interpolate wind speeds below the tower"                -
typedef  ^                            ^                 SiKi              FFData            ::::  -     -     "Array of FF data"                                             -
typedef  ^                            ^                 SiKi              FFTower           :::   -     -     "Array of data along tower, below FF array"                    -
typedef  ^                            ^                 ReKi              FFDTime           -     0     -     "Delta time"                                                   seconds
typedef  ^                            ^                 ReKi              FFRate            -     0     -     "Data rate (1/FFDTime)"                                         Hertz
typedef  ^                            ^                 ReKi              FFYHWid           -     0     -     "Half the grid width"                                          meters
typedef  ^                            ^                 ReKi              FFZHWid           -     0     -     "Half the grid height"                                         meters
typedef  ^                            ^                 ReKi              RefHt             -     0     -     "Reference (hub) height of the grid"                           meters
typedef  ^                            ^                 ReKi              GridBase          -     0     -     "the height of the bottom of the grid"                         meters
typedef  ^                            ^                 ReKi              InitXPosition     -     0     -     "the initial x position of grid (distance in FF is offset)"    meters
typedef  ^                            ^                 ReKi              InvFFYD           -     0     -     "reciprocal of delta y"                                        1/meters
typedef  ^                            ^                 ReKi              InvFFZD           -     0     -     "reciprocal of delta z"                                        1/meters
typedef  ^                            ^                 ReKi              InvMFFWS          -     0     -     "reciprocal of mean wind speed (MeanFFWS)"                     seconds/meter
typedef  ^                            ^                 ReKi              MeanFFWS          -     0     -     "Mean wind speed (as defined in FF file), not necessarily of the portion used"  meters/second
typedef  ^                            ^                 ReKi              TotalTime         -     0     -     "The total time of the simulation"                             seconds
typedef  ^                            ^                 IntKi             NFFComp           -     3     -     "Number of wind components"                                    -
typedef  ^                            ^                 IntKi             NFFSteps          -     0     -     "Number of time steps in the FF array"                         -
typedef  ^                            ^                 IntKi             NYGrids           -     0     -     "Number of points in the lateral (y) direction of the grids"   -
typedef  ^                            ^                 IntKi             NZGrids           -     0     -     "Number of points in the vertical (z) direction of the grids"  -
typedef  ^                            ^                 IntKi             NTGrids           -     0     -     "Number of points in the vertical (z) direction on the tower (below the grids)"  -
typedef  ^                            ^                 IntKi             WindFileFormat    -     -     -     "Binary file format description number"                        -
typedef  ^                            ^                 Logical           AddMeanAfterInterp -  .FALSE. -     "Add the mean wind speed after interpolating at a given height?" -
typedef  ^                            ^                 IntKi             WindProfileType   -    -1     -     "Wind profile type (0=constant;1=logarithmic;2=power law)" -
typedef  ^                            ^                 ReKi              PLExp             -     0     -     "Power law exponent (used for PL wind profile type only)"   -
typedef  ^                            ^                 ReKi              Z0                -     0     -     "Surface roughness length (used for LOG wind profile type only)"  -

