SEND(3PVM)							   SEND(3PVM)

NAME
  pvm_send - Immediately sends the data	in the active message buffer.

SYNOPSIS
  C	  int info = pvm_send( int tid,	int msgtag )

  Fortran call pvmfsend( tid, msgtag, info )

PARAMETERS

  tid	  Integer task identifier of destination process.

  msgtag  Integer message tag supplied by the user.  msgtag should be >= 0.

  info	  Integer status code returned by the routine.

DISCUSSION
  The routine pvm_send sends a message stored in the active send buffer	to
  the PVM process identified by	tid. msgtag is used to label the content of
  the message.	If pvm_send is successful, info	will be	0. If some error
  occurs then info will	be < 0.

  The pvm_send routine is asynchronous.	 Computation on	the sending processor
  resumes as soon as the message is safely on its way to the receiving pro-
  cessor.  This	is in contrast to synchronous communication, during which
  computation on the sending processor halts until the matching	receive	is
  executed by the receiving processor.

  The PVM model	guarantees the following about message order.  If task 1
  sends	message	A to task 2, then task 1 sends message B to task 2, message A
  will arrive at task 2	before message B.  Moreover, if	both messages arrive
  before task 2	does a receive,	then a wildcard	receive	will always return
  message A.

  Terminating a	PVM task immediately after sending a message or	messages from
  it may result	in those messages being	lost.  To be sure, always call
  pvm_exit() before stopping.

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

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

ERRORS
  These	error conditions can be	returned by _p_v_m__s_e_n_d
       PvmBadParam    giving an	invalid	tid or a msgtag.
       PvmSysErr      pvmd not responding.
       PvmNoBuf	      no active	send buffer. Try pvm_initsend()	before send.

SEE ALSO
  pvm_initsend(3PVM), pvm_mcast(3PVM), pvm_pack(3PVM), pvm_psend(3PVM),
  pvm_recv(3PVM)


Back to the alphabetical listing
Back to the listing of routines for sending amd receiving messages