subroutine get_local_data_sizes( int precompute_plms, pixeltype pixelization, scandef scan, int nmmax, int myid, int numprocs, int *nmvals, int *first_ring, int *last_ring, int *map_size, long int *nplm, int root, MPI_Comm 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 (with an exception of find_mvals, which still need to follow
once the appropriate vector is allocated). Its output suffices to perform all the allocations
needed for the transforms.
To be called by each proc.
Parameters:
input:
- precompute_plms- [int], 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- [type(pixeltype)], a S2HAT structure storing the info about the pixelization;
- scan- [type(scandef)], a S2HAT structure storing the info about the sky coverage;
- nlmax- [int], maximum value of l considered (included);
- nmmax- [int], maximum value of m considered (included);
- numprocs- [int], total number of procs used;
- myid- [int], proc id (0,...,numprocs-1);
- root(*)-- [int], 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- [int], a number of m values to be stored on a given proc. (see also nummvals.)
- first_ring, last_ring- [int], 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_scan_ring_range.)
- map_size- [int[, 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- [long int], a total number of
Plm
of a single type to be stored on a proc, irrelevant if precompute_plms == 0.
(see also nummmodes.)
|