Previous: Terminator Up: RTL Calling Conventions Next: Fortran Calling Sequence

No Optional Arguments

Another change in the RTL calling sequence is the elimination of ``pure'' optional arguments, which are arguments at the end of the list that formerly could be omitted. Examples of this are xvparm and xvmessage. The only optional arguments allowed in the VICAR system are keyword-value style arguments such as the ones in some of the RTL routines. They can be handled in a portable way, but ``pure'' optional arguments cannot.

In general, all arguments must be given. This will require the addition of arguments to many of the calls to the affected routines. For each argument that now must be included, there is a value to pass in that has the same meaning as the argument not being there, typically 0 or an empty string. See the documentation for the individual routines for details.

The affected routines are listed in Table , with the number of arguments that are required in the Fortran and C calling sequences. The minimum number of arguments in the old RTL are listed as well.

Note that for xvparm and xviparm, the last argument has been removed, while the last two have been removed from xvpcnt and xvipcnt. The function of the ``r8flag'' parameter of xvparm and xviparm has been replaced with the routines x/ zvparmd and x/ zviparmd, which return double-precision floating point values. The function of the ``def'' parameter on xvpcnt and xvipcnt has been replaced with the ``def'' parameter on the new routines x/ zvpstat and x/ zvipstat, while the ``nbytes'' parameter is no longer useful. All of these parameters were rarely if ever used in existing code. Note that the ``default'' parameter semantics should not be used; use the count of the parameter instead (because once set in TAE tutor, a parameter can not be returned to the default state).

Note also that the last argument to xvpout (the maximum string length) has been removed. It was never used in existing code, and is not needed for the Fortran call. The length argument is, however, required for zvpout.