02.04.2013 Views

Welcome to Adams/Solver Subroutines - Kxcad.net

Welcome to Adams/Solver Subroutines - Kxcad.net

Welcome to Adams/Solver Subroutines - Kxcad.net

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Welcome</strong> <strong>to</strong> <strong>Adams</strong>/<strong>Solver</strong> <strong>Subroutines</strong><br />

C<br />

C - External variable definitions ---------<br />

C<br />

INTEGER ID<br />

DOUBLE PRECISION TIME<br />

DOUBLE PRECISION PAR( * )<br />

INTEGER NPAR<br />

LOGICAL IFLAG<br />

DOUBLE PRECISION VALUE<br />

C<br />

C ID Identifier of calling SENSOR statement<br />

C TIME Current time<br />

C PAR Array of passed statement parameters<br />

C NPAR Number of passed parameters<br />

C IFLAG Initialization pass flag<br />

C VALUE The returned value of the sensor<br />

C<br />

C - Local variable definitions -----------<br />

C<br />

...<br />

C<br />

C === Executable code =================================<br />

C<br />

C Assign parameter values <strong>to</strong> readable variables<br />

C<br />

...<br />

C<br />

IF( IFLAG ) THEN<br />

C<br />

C - Subroutine initialization -----------<br />

C<br />

...<br />

C<br />

ENDIFCC - Evaluate sensor ----------------<br />

C<br />

C Your algorithm<br />

C<br />

...<br />

C<br />

C Assign the returned value<br />

C<br />

VALUE = ...<br />

C<br />

RETURN<br />

END<br />

C Style - pro<strong>to</strong>type<br />

typedef void adams_c_SENSUB(const struct s<strong>Adams</strong>Sensor* sensor, double<br />

TIME, int IFLAG, double* OUTPUT);<br />

/*<br />

* SENSOR -------------------------------------------------<br />

----------------<br />

197

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!