# SYSARY

Utility/Data Access SubroutineObtains various system states, for example, Displacement and Velocity, and makes them available to user-defined subroutines. SYSARY should be called with the appropriate input arguments (listed below) and it returns the corresponding system state.

## Format

- Fortran Calling Syntax
- CALL SYSARY (FNCNAM, IPAR, NSIZE, STATES, NSTATES, ERRFLG)
- C/C++ Calling Syntax
- c_sysary (fncnam, ipar, nsize, states, nstates, errflg)
- Python Calling Syntax
- [states, errflg] = py_sysary (fncnam, ipar)
- MATLAB Calling Syntax
- [states, errflg] = m_sysary (fncnam, ipar)

## Attributes

`FNCNAM`- A variable that specifies the name of the function for the SYSARY call. Valid function names are listed below.
`IPAR`- A vector containing input parameters for the
`FNCNAM`. The size of this array must be`NSIZE`. `NSIZE`- A scalar integer variable that contains the number of parameter for the SYSARY call.
`STATES`- The values returned from the SYSARY call. The dimension of the double precision array STATES depends on the function name used.
`NSTATES`- An integer value that represents the number of values stored in the
`STATES`array. `ERRFLG`-
A logical flag that represents the success of the SYSARY function call.

- False/0 - Success.
- True/nonzero - Error in the function call

## Complete Definition

The function can be called only by a subset of user defined subroutines, for example: ARYSUB, CONSUB, DIFSUB, GFOSUB, REQSUB, SENSUB, SEVSUB, SFOSUB, TUNSUB, VARSUB, VFOSUB, and VTOSUB. In particular, it cannot be called by UCOSUB, COUSUB, COUXX, COUXX2, FIESUB, MOTSUB, GSESUB, GSEXX, GSEXU, GSEYX and GSEYU. For the above mentioned routines, system states must be explicitly passed as input arguments and cannot be extracted via the SYSARAY or SYSFNC call.

Functions | Function Details | NSIZE | NSTATES |
---|---|---|---|

DISP | Returns six components of displacements. | 1-3 | 6 |

TDISP | Returns three translational components of displacements. | 1-3 | 3 |

RDISP | Returns three Euler Body-3 Body-1 Body-3 rotations. | 1-2 | 3 |

Q | Represents modal generalized coordinates for flex body. | 1 | NMODES |

UVX | Returns direction cosines of the X axis of the I marker in the coordinate system of the J marker. | 2 | 3 |

UVY | Returns direction cosines of the Y axis of the I marker in the coordinate system of the J marker | 2 | 3 |

UVZ | Returns direction cosines of the Z axis of the I marker in the coordinate system of the J marker. | 2 | 3 |

DC | Returns direction cosines of the X, Y and Z axis of the I marker in the coordinate system of the J marker. | 2 | 9 |

Functions | Function Details | NSIZE | NSTATES |
---|---|---|---|

VEL | Returns all six components of velocity. | 1-4 | 6 |

TVEL | Returns three translational components of velocity. | 1-4 | 3 |

RVEL | Returns three rotational components of velocity. | 1-3 | 3 |

QDOT | Returns first time derivative of modal generalized coordinates for flex body. | 1 | NMODES |

Functions | Function Details | NSIZE | NSTATES |
---|---|---|---|

ACC | Returns all six components of acceleration. | 1-4 | 6 |

TACC | Returns three translational components of acceleration. | 1-4 | 3 |

RACC | Returns three rotational components of acceleration. | 1-4 | 3 |

QDDOT | Returns second time derivative of modal generalized coordinates for flex body. | 1 | NMODES |

Functions | Function Details | NSIZE | NSTATES |
---|---|---|---|

FORCE | Returns all six components of force. | 1-3 | 6 |

TFORCE | Returns three translational components of force. | 1-3 | 3 |

RFORCE | Returns three rotational components of force. | 1-3 | 3 |

Functions | Function Details | NSIZE | NSTATES |
---|---|---|---|

PINPUT | Returns direct value of PINPUT IPAR(1) - ID |
1 | n- number of elements available in the model |

POUTPUT | Returns direct value of POUTPUT IPAR(1) - ID |
1 | n- number of elements available in the model |

ARRAY | Returns direct value of ARRAY IPAR(1) - ID |
1 | n- number of elements available in the model |