subroutine distribute_w8ring(ncomp, first_ring, last_ring, local_w8ring, nringsall, w8ring, myid, numprocs, root, comm)
 
 
Purpose:
  
Distributes the weights used for the inverse harmonic transform from a proc root over all processors as defined
by first_ring and last_ring. 
 
To be called by all procs of the communicator comm. Blocking.
 
 Parameter description:
 
 
input:
- ncomp(*)-- [integer(4b)], a number of map components for which the weights are being distributed (=1,2 or 3);   
 
 
- first_ring, last_ring-- [integer(4b)], numbers of a first and last ring which define a sub map (both included) to be computed by a given proc;
 
 
- nringsall(*)-- [integer(4b)], a total number of the iso-latitude rings in the Northern hemisphere (plus the equator)
of the map. This value is normally stored as the field of the pixelization structure, if that is defined beforehand. (nringsall =
pixelization%nringsall.)
 
 
- w8ring-- [real(dp)], an allocated pointer to a 2-dim array
    of a size (1:nringsall,1:ncomp) storing on a proc root all the ring weights; 
 
 
- myid-- [integer(4b)], proc id (0,...,numprocs-1);    
 
 
- numprocs(*)--  [integer(4b)], total number of procs used;
 
 
- root(*)-- [integer(4b)], defines a proc root on which the full map
    map is stored;
 
 
- comm(*)-- [integer(4b)], an mpi communicator for the numprocs procs.
 
 
(*)The value must be the same on all procs of the communicator comm.
output:
 
- local_w8ring-- [real(dp)], an allocated pointer to a 2-dim array
    of a size (1:last_ring-fitst_ring+1,1:ncomp) storing a subset of the map weights and distributed over procs in the same way as the map (see Healpix).
 
 
 
 |