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 type PMD_Comm_1D or PMD_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.


     USE PMD
     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
     CALL PMD_Exchange_1DD( Comm, Field=u )
     DO i = 1, Nx
        s(i) = - ( u(i-1) - 2.0_R8 * u(i) + u(i+1) ) / h**2

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