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

include Registry_NWTC_Library.txt


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

typedef IfW_4Dext/IfW_4Dext   InitInputType       IntKi     n      4     -     -     "number of grid points in the x, y, z, and t directions"                     -
typedef  ^                    InitInputType       ReKi      delta  4     -     -     "size between 2 consecutive grid points in each grid direction"  "m,m,m,s"
typedef  ^                    InitInputType       ReKi      pZero  3     -     -     "fixed position of the XYZ grid (i.e., XYZ coordinates of m%V(:,1,1,1,:))" "m"


# Init Output
typedef  ^                       InitOutputType       ProgDesc    Ver               -     -     -     "Version information of this submodule"         -


# ..... 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          SiKi     V          ::::: - -  "this is the 4-d velocity field for each wind component [{uvw},nx,ny,nz,nt]; it is stored as a miscVar instead of an input so that we don't have 4 copies of a very large field" -
typedef    ^              MiscVarType          ReKi     TgridStart -     - -  "this is the time where the first time grid in m%V starts (i.e, the time associated with m%V(:,:,:,:,1))" s

# ..... 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       IntKi     n      4     -     -     "number of evenly-spaced grid points in the x, y, z, and t directions"      -
typedef  ^                    ParameterType       ReKi      delta  4     -     -     "size between 2 consecutive grid points in each grid direction"            "m,m,m,s"
typedef  ^                    ParameterType       ReKi      pZero  3     -     -     "fixed position of the XYZ grid (i.e., XYZ coordinates of m%V(:,1,1,1,:))" "m"




