**PMD_Exchange_1DD** - Allows to exchange boundary field values at subdomain interfaces.

CALL **PMD_Exchange_1DD**(Comm=Comm, Field=u)

<IN>Comm: PMD handel of typePMD_Comm_1DorPMD_Comm_2D. <INOUT>u: REAL(Kind=R8 or R4) rank 1 or 2 array. If Nx denotes the number of local mesh nodes along the abscisse axis, then the size of the first dimension of u must be equal to Nx+2. Assuming that the first dimension elements of u are indexed from 0 to Nx+1 for the subdomain k, then on output, u(0,.) and u(Nx+1,.) will contain respectively the values of u(Nx-1,.) of the WEST subdomain neighbour k-1 and of u(2,.) of the EAST subdomain neighbour k+1.

The user has not to apply any special treatment on subdomains which have no EAST or no WEST neighbour.

USEPMD... INTEGER, PARAMETER :: Nx=21 TYPE(PMD_Comm_1D) :: Comm REAL(kind=R8), DIMENSION(Nx) :: s REAL(kind=R8), DIMENSION(0:Nx+1) :: u REAL(kind=R8) :: h ... h = 0.001_R8 CALLPMD_Exchange_1DD( Comm, Field=u ) DO i = 1, Nx s(i) = - ( u(i-1) - 2.0_R8 * u(i) + u(i+1) ) / h**2 ENDDO ...

In this example, each process has to know the values of u(0) and u(Nx+1) (which belong to the subdomain neighbours) to be able to compute s(1) and s(Nx). The goal of this routine is then to extract and to submit from/to the subdomain neighbours the u field edge values one step outside the subdomain.

Back to the routines' list...Last modified: Thu Jul 13 11:08:26 MET 2000