Provided by: pvm-dev_3.4.6-3.2_amd64 bug

NAME

       pvm_initsend - Clear default send buffer and specify message encoding.

SYNOPSIS

       C    int bufid = pvm_initsend( int encoding )

       Fortran   call pvmfinitsend( encoding, bufid )

PARAMETERS

       encoding
               Integer specifying the next message's encoding scheme.
               Options in C are:
                    Encoding value           MEANING
                    PvmDataDefault      0    XDR
                    PvmDataRaw          1    no encoding
                    PvmDataInPlace      2    data left in place

               Option names are in Fortran are:
                    Encoding value           MEANING
                    PVMDEFAULT          0    XDR
                    PVMRAW              1    no encoding
                    PVMINPLACE          2    data left in place

       bufid   Integer  returned  containing  the  message buffer identifier.  Values less than zero indicate an
               error.

DESCRIPTION

       The routine pvm_initsend clears the send buffer and prepares it for packing a new message.  The  encoding
       scheme used for the packing is set by encoding.  XDR encoding is used by default because PVM can not know
       if  the user is going to add a heterogeneous machine before this message is sent.  If the user knows that
       the next message will only be sent to a machine that understands the  native  format,  then  he  can  use
       PvmDataRaw encoding and save on encoding costs.

       PvmDataInPlace  encoding  specifies  that  data be left in place during packing.  The message buffer only
       contains the sizes and pointers to the items to be sent. When pvm_send is called  the  items  are  copied
       directly  out  of the user's memory. This option decreases the number of times a message is copied at the
       expense of requiring the user to not modify the items between the time they are packed and the time  they
       are sent.

       If  pvm_initsend  is  successful,  then  bufid will contain the message buffer identifier.  If some error
       occurs then bufid will be < 0.

RESTRICTIONS

       PvmDataInPlace allows only dense (stride = 1) data in version 3.3.  It cannot be used  on  shared  memory
       (*MP) architectures; a PvmNotImpl error will occur at send time.

EXAMPLES

       C:
            bufid = pvm_initsend( PvmDataDefault );
            info = pvm_pkint( array, 10, 1 );
            msgtag = 3 ;
            info = pvm_send( tid, msgtag );

       Fortran:
            CALL PVMFINITSEND(PVMRAW, BUFID)
            CALL PVMFPACK( REAL4, DATA, 100, 1, INFO )
            CALL PVMFSEND( TID, 3, INFO )

ERRORS

       These error conditions can be returned by pvm_initsend

       PvmBadParam
              giving an invalid encoding value

       PvmNoMem
              Malloc has failed. There is not enough memory to create the buffer

SEE ALSO

       pvm_mkbuf(3PVM)

                                                 30 August, 1993                                  INITSEND(3PVM)