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.

CALL NMODES(FBDYID,NQ,ERRFLG)<br />

STRING = 'Cannot get number of modes'<br />

CALL ERRMES(ERRFLG, STRING, ID, 'STOP' )<br />

IF (NQ .GT. MAXQ) THEN<br />

STRING = 'Too many modes, increase MAXQ in varsub'<br />

CALL ERRMES(.TRUE., STRING, ID, 'STOP' )<br />

ENDIF<br />

C<br />

STRING = 'Cannot get frequencies of modes'<br />

CALL MODINF (FBDYID, OMODE, FREQ, ERRFLG)<br />

CALL ERRMES(ERRFLG, STRING, ID, 'STOP' )<br />

C<br />

IPAR(1) = FBDYID<br />

VALUE = 0.0<br />

C<br />

FNCNAM = 'Q'<br />

CALL SYSARY(FNCNAM, IPAR, NARG, Q, NQ, ERRFLG)<br />

STRING = 'Error calling SYSARY for Q.'<br />

CALL ERRMES(ERRFLG, STRING, ID, 'STOP' )<br />

DO 20 I=1,NQ<br />

IF (FREQ(I) .LT. MAXFRQ) VALUE = VALUE + C1*Q(I)<br />

20 CONTINUE<br />

C<br />

FNCNAM = 'QDOT'<br />

CALL SYSARY(FNCNAM, IPAR, NARG, Q, NQ, ERRFLG)<br />

STRING = 'Error calling SYSARY for QDOT.'<br />

CALL ERRMES(ERRFLG, STRING, ID, 'STOP' )<br />

DO 30 I=1,NQ<br />

IF (FREQ(I) .LT. MAXFRQ) VALUE = VALUE + C2*Q(I)<br />

30 CONTINUE<br />

C<br />

FNCNAM = 'QDDOT'<br />

CALL SYSARY(FNCNAM, IPAR, NARG, Q, NQ, ERRFLG)<br />

STRING = 'Error calling SYSARY for QDDOT.'<br />

CALL ERRMES(ERRFLG, STRING, ID, 'STOP' )<br />

DO 40 I=1,NQ<br />

IF (FREQ(I) .LT. MAXFRQ) VALUE = VALUE + C3*Q(I)<br />

40 CONTINUE<br />

C<br />

RETURN<br />

END<br />

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

For other examples that use the SYSARY data access subroutine, see the evaluation subroutines<br />

VFOSUB and VTOSUB.<br />

SYSFNC<br />

105

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

Saved successfully!

Ooh no, something went wrong!