| alm_TGC(1:p, 0:nlmax, 0:nmmax) | SPC/ DPC | OUT | The  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). | 
| zbounds(1:2), OPTIONAL | DP | IN | section of the map on which to perform the  analysis, expressed in terms of  If zbounds(1)  zbounds(2), it is
performed on the strip zbounds(1)  zbounds(2); if not,
it is performed outside the strip
zbounds(2)  zbounds(1). If absent, the whole map is processed. | 
| w8ring_TQU(1:2*nsmax, 1:p), OPTIONAL | 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  are used instead of recursion. Note that since version 2.20 this feature has become obsolete
because of algorithm optimizations. | 
| plm(0:(nlmax+1)*(nlmax+2)*nsmax-1, 1:3), OPTIONAL | DP | IN | If this optional matrix is passed with this rank, precomputed  AND precomputed tensor harmonics are used instead of recursion. | 
use 
healpix_modules
integer(
i4b) :: nside, lmax 
real(
dp), allocatable, dimension(:,:) :: dw8 
real(dp), dimension(2) :: z 
real(
sp), allocatable, dimension(:,:) :: map 
complex(
spc), allocatable, dimension(:,:,:) :: alm 
nside = 256 
lmax = 512 
allocate(dw8(1:2*nside, 1:3)) 
allocate(map(0:nside2npix(nside)-1,1:3)) 
allocate(alm(1:3, 0:lmax, 0:lmax)
dw8 = 1.0_dp 
z = sin(10.0_dp * 
DEG2RAD) 
call map2alm(nside, lmax, lmax, map, alm, (/ z, -z /) , dw8)