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

include Registry_NWTC_Library.txt
usefrom IfW_FFWind_Base.txt


#########################

# Init Input
typedef IfW_HAWCWind/IfW_HAWCWind   InitInputType  CHARACTER(1024)              WindFileName      {3}   -     -     "Name of the wind file to use"                              -
typedef  ^                       ^                 IntKi                        SumFileUnit       -     -     -     "Unit number for the summary file (-1 for none).  Provided by IfW." -
typedef  ^                       ^                 IntKi                        nx                -     0     -     "Number of grids in the x direction (in the 3 files above)" -
typedef  ^                       ^                 IntKi                        ny                -     0     -     "Number of grids in the y direction (in the 3 files above)" -
typedef  ^                       ^                 IntKi                        nz                -     0     -     "Number of grids in the z direction (in the 3 files above)" -
typedef  ^                       ^                 ReKi                         dx                -     0     -     "size of grids in the x direction (in the 3 files above)" -
typedef  ^                       ^                 ReKi                         dy                -     0     -     "size of grids in the y direction (in the 3 files above)" -
typedef  ^                       ^                 ReKi                         dz                -     0     -     "size of grids in the z direction (in the 3 files above)" -
typedef  ^                       ^                 IfW_FFWind_InitInputType     FF                -     -     -     "scaling data" -


# Init Output
typedef  ^                       InitOutputType    ProgDesc          Ver               -     -     -     "Version information of HAWCWind submodule"                     -
typedef  ^                       ^                 ReKi              SF                3     0     -     "Turbulence scaling factor for each direction direction"   -


# ..... States not used by this module ...................................................................................................................
typedef  ^                    ContinuousStateType  ReKi           DummyContState    -     -     -     "Remove this variable if you have continuous states"           -
typedef  ^                    DiscreteStateType    ReKi           DummyDiscState    -     -     -     "Remove this variable if you have discrete states"             -
typedef  ^                    ConstraintStateType  ReKi           DummyConstrState  -     -     -     "Remove this variable if you have constraint states"           -
typedef  ^                    OtherStateType       ReKi           DummyOtherState   -     -     -     "Remove this variable if you have other states"           -

# ..... Misc/Optimization variables.................................................................................................
# Define any data that are used only for efficiency purposes (these variables are not associated with time):
#   e.g. indices for searching in an array, large arrays that are local variables in any routine called multiple times, etc.
typedef    ^              MiscVarType          ReKi     DummyMiscVar - - -  "Remove this variable if you have misc variables" -

# ..... 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          IfW_FFWind_ParameterType  FF        -     -     -     "Parameters used in all full-field wind types"                 -

# ..... Inputs ....................................................................................................................
# Define inputs that are not on this mesh here:
typedef  ^                       InputType         ReKi              Position          ::    -     -     "Array holding the input positions at a given timestep"     meters

