User Library

In order to support and encourage development and sharing of PV‑WAVE programs in scientific and technical disciplines, Rogue Wave has established the User Library.

The purpose of the library is to help users solve common problems and avoid duplicating the efforts of others. Users are encouraged to submit PV‑WAVE procedures and functions they believe are particularly valuable or are of general interest to Rogue Wave for incorporation into the library.

Coordinate submissions through the Rogue Wave Customer Support Group or through your local Technical Support Engineer. The library is updated periodically and distributed free of charge to all PV‑WAVE sites.

The User Library is located in:

<wavedir>/lib/user
<wavedir>\lib\user

Where <wavedir> is the main PV‑WAVE directory.

Procedures and functions in this subdirectory are automatically compiled when they are referenced from within PV‑WAVE.

Note:

PV‑WAVE searches for User Library procedures and functions along the path specified by the !Path system variable. In most cases this means the first directory searched is the current directory. If a procedure or function with the same name as a User Library routine is found in the current directory (or in any directory searched before the User Library directory), it is compiled and used in place of the User Library routine. This is different from the way system routines are called and used.

Note:

If you are sharing your PV-WAVE application with runtime license users, do not forget to include the *.cpr files for the User Library routines that you are taking advantage of.

Submitting Programs to the User Library

The major requirement for a procedure or function to be submitted is that a standardized template be included in the program source. The purpose of the template is to describe the program in enough detail that others may use the program with little difficulty. An empty template is stored in the file template, located in the lib subdirectory of the main PV‑WAVE directory.

Try to write routines your in as general a manner as possible. For example, dedicated logical units should never be used. Instead, the GET_LUN and FREE_LUN procedures should be used to allocate and deallocate logical units. Routines should be able to handle as many different types and structures of data as possible—this includes performing parameter checking to ensure the parameters are the correct type. It is a good idea to use the ON_ERROR procedure to return to the caller in the event of an error. The code itself should also be liberally commented.

Procedures and functions conforming to the above requirements will be included in periodic PV‑WAVE releases.

Support for User Library Routines

Rogue Wave provides minimal testing and no documentation of the procedures and functions submitted to the User Library. The library is provided as a service, and users are advised to use caution when incorporating these routines into their own programs. The User Library routines do not enjoy the same level of support or confidence Rogue Wave reserves for system procedures and functions in the Standard Library (std).