name & dimensionality |
kind |
in/out |
description |
|
|
|
|
nside |
I4B |
IN |
the HEALPix
parameter. |
template |
I4B/ I8B |
IN |
identification number of the
template pixel (the numbering
scheme of the pixel templates is the same for both routines). |
list(0:nrep-1) OPTIONAL |
I4B/ I8B |
OUT |
pointer containing the ordered list of NESTED/RING scheme
identification numbers (in {0,
})
of all pixels having the same shape as the template provided. The routines
will allocate the list array if it is not allocated
upon calling. |
reflexion(0:nrep-1) OPTIONAL |
I4B |
OUT |
pointer containing the transformation(s) (in
{0, 3}) to
apply to each of the returned pixels to match exactly in
shape and position its respective template. 0: rotation around the polar axis only,
1: rotation + East-West swap (ie, reflexion around meridian),
2: rotation + North-South swap (ie, reflexion around
Equator), 3: rotation + East-West and North-South swaps. The routines
will allocate the list array if it is not allocated
upon calling. |
nrep OPTIONAL |
I4B/ I8B |
OUT |
number of pixels having the same template (either 8, 16, 4
or
8
). |
use
healpix_modules
integer, parameter :: IXB = I4B ! for nside <= 8192
!integer, parameter :: IXB = I8B ! for any valid nside
integer(I4B):: nside
integer(IXB):: template, nrep
integer(I4B), dimension(:), pointer :: listref
integer(IXB), dimension(:), pointer :: listpix
allocate(listref(0:0)) ! only the lower bound matters
allocate(listpix(0:0)) ! only the lower bound matters
nside = 256
template = 1234
call same_shape_pixels_ring(nside, template, list=listpix, reflexion=listref, nrep=nrep)
print*,nrep
print*,listpix(0:nrep-1)
print*,listref(0:nrep-1)