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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

8<br />

<strong>Adams</strong>/<strong>Solver</strong><br />

Unsupported <strong>Subroutines</strong> and Their Alternates<br />

ADAMS_DECLARE_THREADSAFE<br />

A call <strong>to</strong> the ADAMS_DECLARE_THREADSAFE subroutine informs <strong>Adams</strong>/<strong>Solver</strong> (C++) that the<br />

user-written subroutine is threadsafe and that multiple threads can execute this user-written subroutine<br />

simultaneously.<br />

Use<br />

Called By<br />

Any user-written subroutine<br />

Prerequisite<br />

None<br />

Calling Sequence<br />

CALL ADAMS_DECLARE_THREADSAFE ()<br />

Input Arguments<br />

None<br />

Output Arguments<br />

None<br />

Extended Definition<br />

Instead of: Use:<br />

DEQINF SYSFNC<br />

FNCDEP SYSARY; SYSFNC<br />

INFO SYSARY; SYSFNC<br />

SPLINE AKISPL; CUBSPL<br />

ANLMOD GETMOD<br />

<strong>Adams</strong>/<strong>Solver</strong> (C++) includes the option of threaded (parallel) execution. That is, multiple threads are<br />

permitted <strong>to</strong> execute portions of the code simultaneously. On machines with multiple processors, this can<br />

result in a significant reduction in the wall time required for a simulation <strong>to</strong> complete.<br />

This parallel capability places restrictions on the way the code is written <strong>to</strong> ensure that different threads<br />

do not adversely interact with each other. Code that is written in such a way is threadsafe. Care has been<br />

take <strong>to</strong> ensure that relevant portions of <strong>Adams</strong>/<strong>Solver</strong> (C++) are threadsafe, but no such assumption can

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

Saved successfully!

Ooh no, something went wrong!