{
{    The purpose of this request is to "call" an application procedure on a
{ remote (server) mainframe.  The procedure must have been defined by execution
{ of the command DEFINE_APPLICATION_RPC on the remote mainframe.
{
{       DFP$CALL_REMOTE_PROCEDURE (SERVER_LOCATION, APPLICATION_NAME,
{             PROCEDURE_NAME, SEND_PARAMETERS, SEND_DATA,
{             RECEIVE_PARAMETERS_SIZE, RECEIVE_PARAMETERS, RECEIVE_DATA_SIZE,
{             RECEIVE_DATA, STATUS)
{
{ SERVER_LOCATION: (input)  This parameter specifies either the family or the
{       mainframe name where the remote procedure will be called.  This
{       parameter is a variant record and must contain the variant identifier
{       of dfc$family_name or dfc$mainframe_id.
{
{ APPLICATION_NAME: (input)  This parameter specifies the name of the
{       application associated with the remote procedure as specified on the
{       DEFINE_APPLICATION_RPC command.
{
{ PROCEDURE_NAME: (input)  This parameter specifies the name of the procedure
{       to be called.
{
{ SEND_PARAMETERS: (input)  This parameter specifies the Cybil sequence
{       containing the input parameters to the remote procedure.  The entire
{       sequence will be transferred to the remote procedure. The size of the
{       specified sequence may not exceed the dfc$maximum_user_buffer_area
{       value (currently 3600 bytes).  This parameter may be NIL.
{
{ SEND_DATA: (input)  This parameter specifies the Cybil sequence containing
{       the input data to the remote procedure.  The entire sequence will be
{       transferred to the remote procedure.  This sequence is set by the user
{       only if the amount of data to be sent to the remote procedure exceeds
{       the maximun allowed of the send_parameters sequence. The size of the
{       specified sequence may not exceed the dfc$maximum_user_data_area value
{       value (currently 524288 bytes).  This parameter may be NIL.
{
{ RECEIVE_PARAMETERS_SIZE: (output)  This parameter specifies the size of the
{       receive parameters sequence returned from the remote procedure.
{
{ RECEIVE_PARAMETERS: (input, output)  This parameter specifies the sequence
{       where the output parameters from the remote procedure are to be stored.
{       If the size of the output parameters sequence returned from the remote
{       procedure is larger than the size of this specified sequence, an error
{       status will be generated and none of the output parameters will be
{       returned to the caller.  In case of such an error status, the value of
{       the RECEIVE_PARAMETERS_SIZE will still specify the size of the receive
{       parameters returned from the remote procedure.
{
{ RECEIVE_DATA_SIZE: (output)  This parameter specifies the size of the receive
{       data sequence returned from the remote procedure.
{
{ RECEIVE_DATA: (input, output)  This parameter specifies the sequence where
{       the output data from the remote procedure are to be stored.  If the
{       size of the output data sequence returned from the remote procedure is
{       larger than the size of this specified sequence, an error status will
{       be generated and none of the output data will be returned to the
{       caller.  In case of such an error status, the value of the
{       RECEIVE_DATA_SIZE will still specify the size of the receive data
{       returned from the remote procedure.
{
{ STATUS: (output) This parameter specifies the request status.
{       CONDITIONS:
{             dfe$callers_variable_too_large
{             dfe$callers_variable_too_small
{             dfe$family_not_served
{             dfe$invalid_parameter_pva
{             dfe$invalid_server_locator
{             dfe$job_needs_recovery
{             dfe$mainframe_not_server
{             dfe$procedure_not_known
{             dfe$server_has_terminated
{             dfe$server_not_active
{             pme$insufficient_privilege
