rotate_alm*

This routine transform the scalar (and tensor) $a_{\ell m}$ coefficients to emulate the effect of an arbitrary rotation of the underlying map. The rotation is done directly on the $a_{\ell m}$ using the Wigner rotation matrices, computed by recursion. To rotate the $a_{\ell m}$ for $\ell \leq \ell_{\mathrm{max}}$ the number of operations scales like $\ell_{\mathrm{max}}^3$.

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


FORMAT

call rotate_alm*( nlmax, alm_TGC, psi, theta, phi )


ARGUMENTS

name & dimensionality kind in/out description
       
nlmax I4B IN maximum $\ell$ value for the $a_{\ell m}$.
alm_TGC(1:p,0:nlmax,0:nlmax) SPC/ DPC INOUT complex $a_{\ell m}$ values before and after rotation of the coordinate system. The first index here runs from 1:1 for temperature only, and 1:3 for polarisation. In the latter case, 1=T, 2=E, 3=B.
psi DP IN first rotation: angle $\psi$ about the z-axis. All angles are in radians and should lie in [-2$\pi$,2$\pi$], the rotations are active and the referential system is assumed to be right handed, the routine coordsys2euler_zyz can be used to generate the Euler angles $\psi, \theta, \varphi
$ for rotation between standard astronomical coordinate systems;
theta DP IN second rotation: angle $\theta$ about the original (unrotated) y-axis;
phi DP IN third rotation: angle $\varphi$ about the original (unrotated) z-axis;


EXAMPLE:

use alm_tools, only: rotate_alm
...
call rotate_alm(64, alm_TGC, PI/3., 0.5_dp, 0.0_dp)
Transforms scalar and tensor $a_{\ell m}$ for $\ell_{\mathrm{max}}= m_{\mathrm{max}}= 64$ to emulate a rotation of the underlying map by ( $\psi=\pi/3, \theta=0.5, \varphi=0 $).


EXAMPLE:

use coord_v_convert, only: coordsys2euler_zyz
use alm_tools, only: rotate_alm
...
call coordsys2euler_zyz(2000.0_dp, 2000.0_dp, 'E', 'G', psi, theta, phi)
call rotate_alm(64, alm_TGC, psi, theta, phi)
Rotate the $a_{\ell m}$ from Ecliptic to Galactic coordinates.


RELATED ROUTINES

This section lists the routines related to rotate_alm*

coordsys2euler_zyz
can be used to generate the Euler angles $\psi, \theta, \varphi
$ for rotation between standard astronomical coordinate systems
create_alm
Routine to create $a_{\ell m}$ coefficients.
alter_alm
Routine to modify $a_{\ell m}$ coefficients to apply or remove the effect of an instrumental beam.
map2alm
Routines to analyze a HEALPix sky map into its $a_{\ell m}$ coefficients.
alm2map
Routines to synthetize a HEALPix sky map from its $a_{\ell m}$ coefficients.
alms2fits, dump_alms
Routines to save a set of $a_{\ell m}$ in a FITS file.
xcc_v_convert
rotates a 3D coordinate vector from one astronomical coordinate system to another.

Version 3.82, 2022-07-28