subroutine get_local_data_sizes( precompute_plms, pixelization, scan, nmmax, myid, numprocs, nmvals, first_ring, last_ring, map_size, nplm, root, comm)
 
 Purpose:
  
Given the pixelization, pixelization, and the scan, scan, the routine estimates the sizes of all the local data objects 
for a work-load balanced data distribution.
It is just a wrapper performing all the calls explained in this section. Its output suffices to perform all the allocations
needed for the transforms.
 
To be called by each proc.
 
 Parameters:
 
 
input:
- precompute_plms- [integer(i4b)], if non-zero estimates the
    number of l,m coeffs to be stored on a proc, in fact it may somewhat overestimate on a proc root;    
 
 
- pixelization-  [pixeltype], a S2HAT structure storing the info about the pixelization;    
 
 
- scan- [scandef], a S2HAT structure storing the info about the sky coverage;
 
 
- nlmax- [integer(i4b)], maximum value of l considered (included); 
 
 
- nmmax- [integer(i4b)], maximum
value of m considered (included);     
 
 
- numprocs-  [integer(i4b)], total number of procs used;    
 
 
- myid- [integer(i4b)], proc id (0,...,numprocs-1);
 
 
- root(*)-- [integer(i4b)], defines root processor on which the
alm coefficients are stored in a non-distributed form;
 
 
- comm(*)-- [MPI_Comm], an mpi communicator for the numprocs procs.
 
 
output:
- nmvals- [integer(i4b)], a number of
m values to be stored on a given proc;    
 (see also nummvals.) 
 
 
- first_ring, last_ring- [integer(i4b)], numbers of a first and last ring of the Northern hemisphere which define a sub map (both included) to be stored on a given proc;    
 (see also find_ring_range.)
 
 
- map_size- [integer(i4b)[, a number of pixels in a submap stored on a given proc and corresponding to a set of rings defined by first_ring and last_ring above. Both Northern
and corresponding Southern hemisphere rings are included and all the pixels of rings even only partially
observed are counted.
(see also local_map_size.
 
 
- nplm-  [integer(i8b)], a total number of 
Plm
of a single type to be stored on a proc, irrelevant if precompute_plms == 0.
(see also  nummmodes.)
 
 
 |