map2alm*


This routine is a wrapper to 5 other routines:map2alm_sc, map2alm_sc_pre, map2alm_pol, map2alm_pol_pre1, map2alm_pol_pre2. These routines analyse a HEALPix map and return almT (and if specified almE and almB) values up to the desired order in l (maximum 3*Nside). The different routines are called dependent on what parameters are passed. Some routines analyse with or without precomputed harmonics and some with or without polarisation.


Location in HEALPix directory tree: src/f90/mod/alm_tools.f90


FORMAT

call map2alm*( nsmax, nlmax, nmmax, map_TQU, alm_TGC, cos_theta_cut, w8ring_TQU, plm )


ARGUMENTS

name&dimensionality kind in/out description
       
nsmax I4B IN the Nside value of the map to analyse.
nlmax I4B IN the maximum l value for the analysis.
nmmax I4B IN the maximum m value for the analysis.
map_TQU(0:12*nsmax**2-1) SP IN if only the temperature map is to be analyse, the map-array should be passed with this rank.
map_TQU(0:12*nsmax**2-1, 1:3) SP IN if both temperature an polarisation maps are to be analysed, the map array should have this rank, where the second index is (1,2,3) corresponding to (T,Q,U).
alm_TGC(1:p, 0:nlmax, 0:nmmax) SPC OUT The alm values output from the analysis. p is 1 or 3 dependent on wether polarisation is included or not. In the former case, the first index is (1,2,3) corresponding to (T,E,B).
cos_theta_cut DP IN the cosine of the cutting angle for a cut sky analysis. Note: in order to have no cut at all cos_theta_cut needs to be set to a negative value, as cos_theta_cut= cos(90o) = 0 still removes the equatorial ring.
w8ring_TQU(1:2*nsmax, 1:p) DP IN ring weights for quadrature corrections. If ring weights are not used, this array should be 1 everywhere. p is 1 for a temperature analysis and 3 for (T,Q,U).
plm(0:(nlmax+1)*(nlmax+2)*nsmax-1), OPTIONAL DP IN If this optional matrix is passed with this rank, precomputed Plm($ \theta$) are used instead of recursion.
plm(0:(nlmax+1)*(nlmax+2)*nsmax-1, 1:3), OPTIONAL DP IN If this optional matrix is passed with this rank, precomputed Plm($ \theta$) AND precomputed tensor harmonics are used instead of recursion.


EXAMPLE:

call map2alm(256, 512, 512, map(0:12*256**2-1,1:3), alm(1:3,0:512,0:512), COS(80.d0*pi/180.d0), 1.d0, plm(0:513*514*256-1)

Analyses temperature and polarisation maps passed in map. The map has an Nside of 256, an the analyses is supposed to be performed up to 512 in l and m. The resulting alm coeffecients for temperature and polarisation are returned in alm. A 10o cut on each side of the equator is applied. No ring weights are used. Since the optional plm array is passed, precomputed Plm($ \theta$) are used, but only scalar ones because of the rank of the array. The tensor harmonics are still computed with a recursion.


MODULES & ROUTINES

This section lists the modules and routines used by map2alm*.

ring_analysis
Performs FFT for the ring analysis.
utilities
module, containing:
die_alloc
routine to print error message, when an array is too big.


RELATED ROUTINES

This section lists the routines related to map2alm*


anafast
executable using map2alm to analyse maps.
alm2map
routine performing the inverse transform of map2alm.

Eric Hivon 2003-02-07