---
name: "pvm_send"
section: "3"
platform: "linux"
package: "pvm-dev"
version: "3.4.2-8"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/pvm_send"
---

# pvm\_send(3)

Immediately sends the data in the active message buffer.

## 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.**

## DESCRIPTION

**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 processor.  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** *pvm\_send*

- 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)**
