Next: local_map_size    Up: Size/memory estimation routines    Previous: find_mvals


find_ring_range

subroutine find_scan_ring_range( pixelization, scan, nmmax, myid, numprocs, first_ring, last_ring, outerror)

Purpose:

Distributes observed (iso-latitude) rings (as defined in scan) over all processors assigning to each proc an interval of rings defined by first_ring and last_ring (both in a global numbering scheme). The rings assigned to each proc are consecutive with an exception of unobserved rings which are excised. The numbers first_ring and last_ring always refer to the rings of the Northern hemisphere (plus an equatorial ring). The distribution is designed to load balance the transform computation.
Each proc should call the routine.

N.B. Any other division of all rings is also permitted. The ranges can not overlap, need to cover all rings (including unobserved) of the Northerh hemisphere and have to be assigned to procs in an ascending manner (the first range to proc 0, etc).

Parameters:

Input:
pixelization-- [pixeltype], an S2HAT structure defining pixelization;
scan-- [scandef], an S2HAT structure defining observed sky;
nmmax-- [integer(4b)], maximum m mode to be included;
myid-- [integer(4b)], a proc id number;
numprocs-- [integer(4b)], total number of procs;
Output:
first_ring- [integer(4b)], lower ring range limit;
last_ring- [integer(4b)], upper ring range limit (included).

outerror- [integer(4b)], errorcode (0- ok; 1- error).



Next: local_map_size    Up: Size/memory estimation routines    Previous: find_mvals

radek stompor 2007-09-15