title: MPI send derived data type with pointer in Fortran 90
body: <p>I would like to send a user defined data type as:</p>
  
  <pre><code>TYPE CELL
      INTEGER :: NUM
      TYPE(CELL), POINTER :: NEXT =&gt; NULL()
  END TYPE CELL
  
  TYPE CELLLIST
      INTEGER :: NBCELL
      TYPE(CELL), POINTER :: BEGIN =&gt; NULL()
  END TYPE CELLLIST
  </code></pre>
  
  <p>and the variable to be sent by MPI is defined as:</p>
  
  <pre><code>TYPE(CELLLIST) :: _CELLLIST
  </code></pre>
  
  <p>In this variable, _CELLIST%NBCELL denotes the length of the list, and a pointer of type CELL points to the head of the list.</p>
  
  <p>I'd like to use MPI_send and MPI_recv to transfer the cell list via MPI. How to do that?</p>