##################  Registry for SS Excitation ###############
# column  1: <keyword>
# column  2: ModuleName/ModName or ^ to use the value from the previous line (ModName is nickname for ModuleName)
# column  3: Derived data type (without "ModName_" prefix)
# column  4: Derived data types's Field type
# column  5: Variable name
# column  6: Dimension of variable {:} for allocatable
# column  7: Variable's initial value (if set in the data type)
# column  8: I think this is a switch for mixed-language programming; it's mostly unused
# column  9: Description
# column 10: Units
###################################################################################################################################
# File last committed: $Date$
# (File) Revision #: $Rev$
# URL: $HeadURL$
###################################################################################################################################
usefrom   SeaSt_WaveField.txt

typedef SS_Excitation/SS_Exc   InitInputType       CHARACTER(1024)              InputFile        -  - -   "Name of the input file" -
typedef ^                      ^                   IntKi                        NBody            -  - -   "Number of WAMIT bodies for this State Space model" -
typedef ^                      ^                   IntKi                        ExctnDisp        -  - -   "0: use undisplaced position, 1: use displaced position, 2: use low-pass filtered displaced position) [only used when PotMod=1 and ExctnMod>0]" -
typedef ^                      ^                   R8Ki                         PtfmRefztRot    {:} - -   "The rotation about zt of the body reference frame(s) from xt/yt" radians 
typedef ^                      ^                   SeaSt_WaveFieldType         *WaveField       -  - -    "Pointer to SeaState wave field" -



typedef ^                      InitOutputType      CHARACTER(10)                WriteOutputHdr  {:} - -   "Header of the output" -
typedef ^                      InitOutputType      CHARACTER(10)                WriteOutputUnt  {:} - -   "Units of the output" -

typedef ^                      ContinuousStateType R8Ki                         x               {:} - -   "Continuous States" -

typedef ^                      DiscreteStateType   SiKi                         DummyDiscState   -  - -   "" -

# Define constraint states here:                                                
typedef ^                      ConstraintStateType SiKi                         DummyConstrState -  - -   "" -

# Define any data that are other states, including integer or logical states here:
typedef ^                      OtherStateType      IntKi                        n                -  - -   "Current Time step" -
typedef ^                      ^                   SS_Exc_ContinuousStateType   xdot            {4} - -   "Old Values of dxdt to used by the solver (multistep method)" -


# ..... 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         INTEGER                      LastIndWave      -  1 -   "last used index in the WaveTime array" -
typedef   ^                      ^                 SeaSt_WaveField_MiscVarType  WaveField_m      -  - -   "misc var information from the SeaState Interpolation module"   -


# ..... 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       DbKi                         DT               -     - -   "Time step" s
typedef ^                      ^                   IntKi                        NBody            -     - -   "Number of WAMIT bodies for this State Space model" -
typedef ^                      ^                   IntKi                        ExctnDisp        -     - -   "0: use undisplaced position, 1: use displaced position, 2: use low-pass filtered displaced position) [only used when PotMod=1 and ExctnMod>0]" -
typedef ^                      ^                   IntKi                        spDOF           {:}    - -   "States per DOF" -
typedef ^                      ^                   ReKi                         A               {:}{:} - -   "A matrix" -
typedef ^                      ^                   ReKi                         B               {:}    - -   "B matrix" -
typedef ^                      ^                   ReKi                         C               {:}{:} - -   "C matrix" -
typedef ^                      ^                   INTEGER                      numStates        -     0 -   "Number of states" -
typedef ^                      ^                   DbKi                         Tc               -     - -   "Time shift" s
typedef ^                      ^                   SeaSt_WaveFieldType         *WaveField       -   -   -    "Pointer to SeaState wave field" -

# ..... Inputs .............................
# Define inputs that are contained on the mesh here:
typedef ^                      InputType           ReKi                         PtfmPos  {:}{:}  - -   "Positions of the NBody platforms.  Used when ExctnDisp = 1. For NBodyMod = 2, use actual instantaneous position, otherwise use only displacement" -


# ..... Outputs ............................
typedef ^                      OutputType          ReKi                         y  {:} - -   "Force/Moments" -
typedef ^                      ^                   ReKi                         WriteOutput {:} - -   "output Data" "kN" -




