1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 2 3<!--Converted with LaTeX2HTML 2018.3 (Released July 19, 2018) --> 4<HTML lang="EN"> 5<HEAD> 6<TITLE>map2alm_iterative*</TITLE> 7<META NAME="description" CONTENT="map2alm_iterative*"> 8<META NAME="keywords" CONTENT="subroutines"> 9<META NAME="resource-type" CONTENT="document"> 10<META NAME="distribution" CONTENT="global"> 11 12<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> 13<META NAME="viewport" CONTENT="width=device-width, initial-scale=1.0"> 14<META NAME="Generator" CONTENT="LaTeX2HTML v2018.3"> 15 <link rel='apple-touch-icon' sizes='180x180' href='images/favicons/apple-touch-icon.png?v=2017'> 16 <link rel='icon' type='image/png' sizes='32x32' href='images/favicons/favicon-32x32.png?v=2017'> 17 <link rel='icon' type='image/png' sizes='16x16' href='images/favicons/favicon-16x16.png?v=2017'> 18 <link rel='manifest' href='images/favicons/manifest.json?v=2017'> 19 <link rel='mask-icon' href='images/favicons/safari-pinned-tab.svg?v=2017' color='#5bbad5'> 20 <link rel='shortcut icon' href='images/favicons/favicon.ico?v=2017'> 21 <meta name='apple-mobile-web-app-title' content='HEALPix'> 22 <meta name='application-name' content='HEALPix'> 23 <meta name='msapplication-config' content='images/favicons/browserconfig.xml?v=2017'> 24 <meta name='theme-color' content='#ffffff'> 25 26<LINK REL="STYLESHEET" HREF="subroutines.css"> 27 28<LINK REL="next" HREF="sub_map2alm_spin.htm"> 29<LINK REL="previous" HREF="sub_map2alm.htm"> 30<LINK REL="next" HREF="sub_map2alm_spin.htm"> 31</HEAD> 32 33<body text="#000000" bgcolor="#FFFFFA"> 34 35<DIV CLASS="navigation"><!--Navigation Panel--> 36<A 37 HREF="sub_map2alm.htm"> 38<IMG WIDTH="63" HEIGHT="24" ALT="previous" SRC="prev.png"></A> 39<A 40 HREF="sub_HEALPix_F90_subroutines.htm"> 41<IMG WIDTH="26" HEIGHT="24" ALT="up" SRC="up.png"></A> 42<A 43 HREF="sub_map2alm_spin.htm"> 44<IMG WIDTH="37" HEIGHT="24" ALT="next" SRC="next.png"></A> 45<A ID="tex2html390" 46 HREF="sub_TABLE_CONTENTS.htm"> 47<IMG WIDTH="65" HEIGHT="24" ALT="contents" SRC="contents.png"></A> 48<BR> 49<B> Previous:</B> <A 50 HREF="sub_map2alm.htm">map2alm*</A> 51 52<B>Up:</B> <A 53 HREF="sub_HEALPix_F90_subroutines.htm">HEALPix/F90 subroutines</A> 54 55<B> Next:</B> <A 56 HREF="sub_map2alm_spin.htm">map2alm_spin*</A> 57<B> Top:</B> <a href="main.htm">Main Page</a></DIV> 58<!--End of Navigation Panel--> 59 60<H1><A ID="SECTION4900"></A> 61<A ID="sub:map2alm_iterative"></A> 62<BR> 63 64</H1> 65 66<P> 67<b><font size=+6><FONT COLOR="#CC0000">map2alm_iterative</FONT></font></b><hr> 68<H3>This routine covers and extends the functionalities of <A HREF="sub_map2alm.htm#sub:map2alm">map2alm</A>: it 69analyzes a (polarised) <b>HEALPix</b> <EM>RING ordered</EM> map and returns 70its <SPAN CLASS="MATH"><IMG STYLE="height: 1.46ex; vertical-align: -0.45ex; " SRC="sub_img6.png" 71 ALT="$a_{\ell m}$"></SPAN> coefficients for temperature (and polarisation) up to a specified 72multipole, and use precomputed harmonics if those 73are provided, but it also can also perform an iterative (Jacobi) determination of the <SPAN CLASS="MATH"><IMG STYLE="height: 1.46ex; vertical-align: -0.45ex; " SRC="sub_img6.png" 74 ALT="$a_{\ell m}$"></SPAN>, and 75apply a pixel mask if one is provided. 76<BR> 77Denoting <SPAN CLASS="MATH"><B>A</B></SPAN> and <SPAN CLASS="MATH"><B>S</B></SPAN> the 78analysis (<A HREF="sub_map2alm.htm#sub:map2alm">map2alm</A>) and 79synthesis (<A HREF="sub_alm2map.htm#sub:alm2map">alm2map</A>) 80operators and <!-- MATH 81 $\textbf{a}, \textbf{m}$ 82 --> 83<SPAN CLASS="MATH"><B>a</B>, <B>m</B></SPAN> and <SPAN CLASS="MATH"><B>w</B></SPAN>, the <SPAN CLASS="MATH"><IMG STYLE="height: 1.46ex; vertical-align: -0.45ex; " SRC="sub_img6.png" 84 ALT="$a_{\ell m}$"></SPAN>, map and pixel mask vectors, the 85Jacobi iterative process reads 86<BR> 87<DIV ALIGN="CENTER"> 88 89<!-- MATH 90 \begin{eqnarray} 91\textbf{a}^{(n)} = \textbf{a}^{(n-1)} + \textbf{A}. \left( \textbf{w}.\textbf{m}- \textbf{S}.\textbf{a}^{(n-1)} \right), 92\end{eqnarray} 93 --> 94<SPAN CLASS="MATH"> 95<TABLE CELLPADDING="0" ALIGN="CENTER" WIDTH="100%"> 96<TR VALIGN="MIDDLE"><TD NOWRAP WIDTH="50%" ALIGN="RIGHT"><IMG STYLE="height: 3.56ex; vertical-align: -1.26ex; " SRC="sub_img138.png" 97 ALT="$\displaystyle \textbf{a}^{(n)} = \textbf{a}^{(n-1)} + \textbf{A}. \left( \textbf{w}.\textbf{m}- \textbf{S}.\textbf{a}^{(n-1)} \right),$"></TD> 98<TD> </TD> 99<TD> </TD> 100<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT"> 101(<SPAN CLASS="arabic">10</SPAN>)</TD></TR> 102</TABLE> 103</SPAN></DIV> 104<BR CLEAR="ALL"><P></P> 105with 106<BR> 107<DIV ALIGN="CENTER"> 108 109<!-- MATH 110 \begin{eqnarray} 111\textbf{a}^{(0)} = \textbf{A}.\textbf{w}.\textbf{m}. 112\end{eqnarray} 113 --> 114<SPAN CLASS="MATH"> 115<TABLE CELLPADDING="0" ALIGN="CENTER" WIDTH="100%"> 116<TR VALIGN="MIDDLE"><TD NOWRAP WIDTH="50%" ALIGN="RIGHT"><B>a</B><SUP>(0)</SUP> = <B>A</B>.<B>w</B>.<B>m</B>.</TD> 117<TD> </TD> 118<TD> </TD> 119<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT"> 120(<SPAN CLASS="arabic">11</SPAN>)</TD></TR> 121</TABLE> 122</SPAN></DIV> 123<BR CLEAR="ALL"><P></P> 124During the processing, the standard deviation of the input map <!-- MATH 125 $\left(\textbf{w}.\textbf{m}\right)$ 126 --> 127<SPAN CLASS="MATH"><IMG STYLE="height: 2.33ex; vertical-align: -0.68ex; " SRC="sub_img139.png" 128 ALT="$\left(\textbf{w}.\textbf{m}\right)$"></SPAN> 129and the current residual map <!-- MATH 130 $\left(\textbf{w}.\textbf{m}- \textbf{S}.\textbf{a}^{(n-1)}\right)$ 131 --> 132<SPAN CLASS="MATH"><IMG STYLE="height: 3.56ex; vertical-align: -1.26ex; " SRC="sub_img140.png" 133 ALT="$\left(\textbf{w}.\textbf{m}- \textbf{S}.\textbf{a}^{(n-1)}\right)$"></SPAN> is printed out, with the latter expected 134to get smaller and smaller as <SPAN CLASS="MATH"><I>n</I></SPAN> increases. 135<BR> 136The standard deviation of map <SPAN CLASS="MATH"><I>x</I></SPAN> has the usual definition 137<!-- MATH 138 $\sigma \equiv \sqrt{\sum_{p=1}^{N}\frac{(x(p)-\bar{x})^2}{N-1}}$ 139 --> 140<SPAN CLASS="MATH"><IMG STYLE="height: 3.56ex; vertical-align: -1.10ex; " SRC="sub_img141.png" 141 ALT="$\sigma \equiv \sqrt{\sum_{p=1}^{N}\frac{(x(p)-\bar{x})^2}{N-1}}$"></SPAN>, where the mean is 142<!-- MATH 143 $\bar{x} \equiv \sum_{p=1}^{N} \frac{x(p)}{N}$ 144 --> 145<SPAN CLASS="MATH"><IMG STYLE="height: 3.15ex; vertical-align: -0.97ex; " SRC="sub_img142.png" 146 ALT="$\bar{x} \equiv \sum_{p=1}^{N} \frac{x(p)}{N}$"></SPAN>, and the index <SPAN CLASS="MATH"><I>p</I></SPAN> runs over all pixels. 147<BR> 148In <A HREF="sub_Changes_between_releases_3_.htm#sub:new3p50">version 3.50</A> a bug affecting previous versions of <FONT COLOR="#CC0000">map2alm_iterative</FONT> has been fixed. 149(It occured when 150<A HREF="#sub:map2alm_iterative:iter_order"><SPAN CLASS="texttt">iter_order</SPAN></A><SPAN CLASS="MATH">>0</SPAN> 151was used in conjonction with a 152<A HREF="#sub:map2alm_iterative:mask"><SPAN CLASS="texttt">mask</SPAN></A> 153and/or a restrictive 154<A HREF="#sub:map2alm_iterative:zbounds"><SPAN CLASS="texttt">zbounds</SPAN></A>, 155with a magnitude that depended on each of those factors and was larger for non-boolean masks (ie, <!-- MATH 156 $\textbf{w}^2 \ne \textbf{w}$ 157 --> 158<SPAN CLASS="MATH"><IMG STYLE="height: 2.45ex; vertical-align: -0.55ex; " SRC="sub_img143.png" 159 ALT="$\textbf{w}^2 \ne \textbf{w}$"></SPAN>). 160To assess the impact of this bug on previous results, the old implementation remains available in 161<SPAN CLASS="texttt">map2alm_iterative_old</SPAN>). 162The result was correct when the mask (if any) was applied to the map prior to the 163<FONT COLOR="#CC0000">map2alm_iterative</FONT> calling, or when no iteration was requested.</H3> 164Location in HEALPix directory tree: <a href="https://sourceforge.net/p/healpix/code/1005/tree/trunk/src/f90/mod/alm_tools.F90"><b>src/f90/mod/alm_tools.F90</b></a> 165 166<P> 167<hr><h1>FORMAT </h1><blockquote><h3>call <FONT COLOR="#CC0000">map2alm_iterative</FONT>( 168<A HREF="#sub:map2alm_iterative:nsmax">nsmax</A>, <A HREF="#sub:map2alm_iterative:nlmax">nlmax</A>, <A HREF="#sub:map2alm_iterative:nmmax">nmmax</A>, <A HREF="#sub:map2alm_iterative:iter_order">iter_order</A>, <A HREF="#sub:map2alm_iterative:map_TQU">map_TQU</A>, <A HREF="#sub:map2alm_iterative:alm_TGC">alm_TGC</A>[, <A HREF="#sub:map2alm_iterative:zbounds">zbounds</A>, <A HREF="#sub:map2alm_iterative:w8ring_TQU">w8ring_TQU</A>, 169<A HREF="#sub:map2alm_iterative:plm">plm</A>, <A HREF="#sub:map2alm_iterative:mask">mask</A>] 170)</h3></blockquote> 171 172<P> 173<hr><H1>ARGUMENTS</H1> 174 175<TABLE CELLPADDING=3 BORDER="1"> 176<TR><TH ALIGN="LEFT" VALIGN="TOP" WIDTH=190><SPAN CLASS="textbf">name & dimensionality</SPAN></TH> 177<TH ALIGN="LEFT" VALIGN="TOP" WIDTH=25><SPAN CLASS="textbf">kind</SPAN></TH> 178<TH ALIGN="LEFT" VALIGN="TOP" WIDTH=35><SPAN CLASS="textbf">in/out</SPAN></TH> 179<TH ALIGN="LEFT" VALIGN="TOP" WIDTH=200><SPAN CLASS="textbf">description</SPAN></TH> 180</TR> 181<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190> </TD> 182<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25> </TD> 183<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35> </TD> 184<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200> </TD> 185</TR> 186<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190> 187nsmax<A ID="sub:map2alm_iterative:nsmax"></A></TD> 188<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25>I4B</TD> 189<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35>IN</TD> 190<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200>the <!-- MATH 191 $N_{\mathrm{side}}$ 192 --> 193<SPAN CLASS="MATH"><I>N</I><SUB>side</SUB></SPAN> value of the map to analyse.</TD> 194</TR> 195<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190>nlmax<A ID="sub:map2alm_iterative:nlmax"></A></TD> 196<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25>I4B</TD> 197<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35>IN</TD> 198<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200>the maximum <SPAN CLASS="MATH"><IMG STYLE="height: 1.69ex; vertical-align: -0.10ex; " SRC="sub_img21.png" 199 ALT="$\ell$"></SPAN> value (<!-- MATH 200 $\ell_{\mathrm{max}}$ 201 --> 202<SPAN CLASS="MATH"><IMG STYLE="height: 2.04ex; vertical-align: -0.45ex; " SRC="sub_img144.png" 203 ALT="$\ell_{\mathrm{max}}$"></SPAN>) for the analysis.</TD> 204</TR> 205<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190>nmmax<A ID="sub:map2alm_iterative:nmmax"></A></TD> 206<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25>I4B</TD> 207<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35>IN</TD> 208<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200>the maximum <SPAN CLASS="MATH"><I>m</I></SPAN> value for the analysis.</TD> 209</TR> 210<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190>iter_order<A ID="sub:map2alm_iterative:iter_order"></A></TD> 211<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25>I4B</TD> 212<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35>IN</TD> 213<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200>the order of Jacobi iteration. Increasing that order 214improves the accuracy of the final <SPAN CLASS="MATH"><IMG STYLE="height: 1.46ex; vertical-align: -0.45ex; " SRC="sub_img6.png" 215 ALT="$a_{\ell m}$"></SPAN> but increases the computation time <!-- MATH 216 $T_{\mathrm{CPU}} \propto 1 + 2 \times$ 217 --> 218<SPAN CLASS="MATH"><IMG STYLE="height: 1.98ex; vertical-align: -0.45ex; " SRC="sub_img145.png" 219 ALT="$T_{\mathrm{CPU}} \propto 1 + 2 \times $"></SPAN>iter_order. 220iter_order <SPAN CLASS="MATH">=0</SPAN> is a straight analysis, while iter_order <SPAN CLASS="MATH">=3</SPAN> is usually a 221good compromise.</TD> 222</TR> 223<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190>map_TQU<A ID="sub:map2alm_iterative:map_TQU"></A>(0:12*nsmax**2-1, 1:p)</TD> 224<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25>SP/ DP</TD> 225<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35>INOUT</TD> 226<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200>input map. <SPAN CLASS="MATH"><I>p</I></SPAN> is 1 or 3 227depending if temperature (T) only or temperature and polarisation (T, Q, U) are 228to be analysed. It will be altered on output if a <A HREF="#sub:map2alm_iterative:mask">mask</A> is provided and/or if <A HREF="#sub:map2alm_iterative:iter_order">iter_order</A><SPAN CLASS="MATH">>0</SPAN> and <A HREF="#sub:map2alm_iterative:zbounds">zbounds</A> is provided.</TD> 229</TR> 230<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190>alm_TGC<A ID="sub:map2alm_iterative:alm_TGC"></A>(1:p, 0:nlmax, 0:nmmax)</TD> 231<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25>SPC/ DPC</TD> 232<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35>OUT</TD> 233<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200>The <SPAN CLASS="MATH"><IMG STYLE="height: 1.46ex; vertical-align: -0.45ex; " SRC="sub_img6.png" 234 ALT="$a_{\ell m}$"></SPAN> values output 235from the analysis. 236<SPAN CLASS="MATH"><I>p</I></SPAN> is 1 or 3 depending on whether polarisation is included or not. In the former 237case, the first index is (1,2,3) corresponding to (T,E,B).</TD> 238</TR> 239<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190>zbounds<A ID="sub:map2alm_iterative:zbounds"></A>(1:2), OPTIONAL</TD> 240<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25>DP</TD> 241<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35>IN</TD> 242<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200>section of the map on which to perform the <SPAN CLASS="MATH"><IMG STYLE="height: 1.46ex; vertical-align: -0.45ex; " SRC="sub_img6.png" 243 ALT="$a_{\ell m}$"></SPAN> 244 analysis, expressed in terms of <!-- MATH 245 $z=\sin(\mathrm{latitude}) = 246 \cos(\theta).$ 247 --> 248<SPAN CLASS="MATH"><IMG STYLE="height: 2.33ex; vertical-align: -0.68ex; " SRC="sub_img42.png" 249 ALT="$z=\sin(\mathrm{latitude}) = 250\cos(\theta).$"></SPAN> If zbounds(1)<SPAN CLASS="MATH"><</SPAN>zbounds(2), it is 251performed <EM>on</EM> the strip zbounds(1)<SPAN CLASS="MATH"><<I>z</I><</SPAN>zbounds(2); if not, 252it is performed <EM>outside</EM> the strip 253zbounds(2)<SPAN CLASS="MATH"><IMG STYLE="height: 1.87ex; vertical-align: -0.41ex; " SRC="sub_img43.png" 254 ALT="$\le z \le$"></SPAN>zbounds(1). If absent, the whole map is processed. 255</TD> 256</TR> 257<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190></TD> 258<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25> </TD> 259<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35> </TD> 260<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200> </TD> 261</TR> 262</TABLE> 263<TABLE CELLPADDING=3 BORDER="1"> 264<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190>w8ring_TQU<A ID="sub:map2alm_iterative:w8ring_TQU"></A>(1:2*nsmax,1:p), OPTIONAL</TD> 265<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25>DP</TD> 266<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35>IN</TD> 267<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200>ring weights for 268quadrature corrections. p is 1 for a temperature analysis and 3 for (T,Q,U). If absent, the 269ring weights are all set to 1.</TD> 270</TR> 271<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190>plm<A ID="sub:map2alm_iterative:plm"></A>(0:,1:p), OPTIONAL</TD> 272<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25>DP</TD> 273<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35>IN</TD> 274<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200>If this 275optional matrix is passed, precomputed scalar (and tensor) <!-- MATH 276 $P_{\ell m}(\theta)$ 277 --> 278<SPAN CLASS="MATH"><IMG STYLE="height: 2.33ex; vertical-align: -0.68ex; " SRC="sub_img41.png" 279 ALT="$P_{\ell m}(\theta)$"></SPAN> are 280used instead of recursion.</TD> 281</TR> 282<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=190>mask<A ID="sub:map2alm_iterative:mask"></A>(0:12*nsmax**2-1,1:q), OPTIONAL</TD> 283<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=25>SP/ DP</TD> 284<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=35>IN</TD> 285<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=200>pixel mask, 286assumed to have the same resolution (and RING ordering) as the map. The map <TT>map_TQU</TT> is 287multiplied by that mask before being analyzed, and will therefore be altered on 288output. 289<SPAN CLASS="MATH"><I>q</I></SPAN> should be in <SPAN CLASS="MATH">{1,2,3}</SPAN>. If <SPAN CLASS="MATH"><I>p</I>=<I>q</I>=3</SPAN>, then each of 290the 3 masks is applied to the respective map. If <SPAN CLASS="MATH"><I>p</I>=3</SPAN> and <SPAN CLASS="MATH"><I>q</I>=2</SPAN>, the first mask 291is applied to the first map, and the second mask to the second (Q) and third (U) 292map. If <SPAN CLASS="MATH"><I>p</I>=3</SPAN> and <SPAN CLASS="MATH"><I>q</I>=1</SPAN>, the same mask is applied to the 3 maps. Note: the output 293<SPAN CLASS="MATH"><IMG STYLE="height: 1.46ex; vertical-align: -0.45ex; " SRC="sub_img6.png" 294 ALT="$a_{\ell m}$"></SPAN> are computed directly on the masked map, and are <EM>not</EM> corrected for the 295loss of power, correlation or leakage created by the mask.</TD> 296</TR> 297</TABLE> 298 299<P> 300<HR><H1>EXAMPLE:</H1> 301<tt>use healpix_types 302<BR> 303use alm_tools 304<BR> 305use pix_tools 306<BR> 307integer(i4b) :: nside, lmax, npix, iter 308<BR> 309real(sp), allocatable, dimension(:,:) :: map 310<BR> 311real(sp), allocatable, dimension(:) :: mask 312<BR> 313complex(spc), allocatable, dimension(:,:,:) :: alm 314<BR> 315<BR> 316nside = 256 317<BR> 318lmax = 512 319<BR> 320iter = 2 321<BR> 322npix = nside2npix(nside) 323<BR> 324allocate(map(0:npix-1,1:3)) 325<BR> 326allocate(mask(0:npix-1)) 327<BR> 328mask(0:) = 0. ! set unvalid pixels to 0 329<BR> 330mask(0:10000-1) = 1. ! valid pixels 331<BR> 332allocate(alm(1:3, 0:lmax, 0:lmax) 333<BR> 334call map2alm_iterative(nside, lmax, lmax, iter, map, alm, mask=mask) 335<BR></tt> 336<blockquote> 337Analyses temperature and polarisation signals in the first 10000 pixels of <TT>map</TT> (as 338determined by <TT>mask</TT>). The map has 339an <!-- MATH 340 $N_{\mathrm{side}}$ 341 --> 342<SPAN CLASS="MATH"><I>N</I><SUB>side</SUB></SPAN> of 256, and the analysis is supposed to be performed up 343to 512 in <SPAN CLASS="MATH"><IMG STYLE="height: 1.69ex; vertical-align: -0.10ex; " SRC="sub_img21.png" 344 ALT="$\ell$"></SPAN> and <SPAN CLASS="MATH"><I>m</I></SPAN>. The resulting <SPAN CLASS="MATH"><IMG STYLE="height: 1.46ex; vertical-align: -0.45ex; " SRC="sub_img6.png" 345 ALT="$a_{\ell m}$"></SPAN> coefficients for 346temperature and polarisation are returned in <TT>alm</TT>. Uniform weights are 347assumed. In order to improve the <SPAN CLASS="MATH"><IMG STYLE="height: 1.46ex; vertical-align: -0.45ex; " SRC="sub_img6.png" 348 ALT="$a_{\ell m}$"></SPAN> accuracy, 2 Jacobi iterations are performed. 349</blockquote> 350 351<P> 352<hr><H1>MODULES & ROUTINES</H1><H3>This section lists the modules and routines used by <FONT COLOR="#CC0000">map2alm_iterative</FONT>.</h3> 353 <DL COMPACT><DT> 354<B><A HREF="sub_map2alm.htm#sub:map2alm">map2alm</A></B> 355<DD>Performs the alm analysis 356 <DT> 357<B><A HREF="sub_alm2map.htm#sub:alm2map">alm2map</A></B> 358<DD>Performs the map synthesis 359 <DT> 360<B><SPAN CLASS="textbf">misc_util</SPAN></B> 361<DD>module, containing: 362 <DT> 363<B><A HREF="sub_assert_assert_alloc_assert_.htm#sub:assert">assert_alloc</A></B> 364<DD>routine to print error message when an array is not 365 properly allocated 366 </DL> 367 368<P> 369<hr><H1>RELATED ROUTINES</H1><h3>This section lists the routines related to <b><FONT COLOR="#CC0000">map2alm_iterative</FONT></b></h3> 370 371 <DL COMPACT><DT> 372<B><A HREF="./fac_anafast.htm#fac:anafast">anafast</A></B> 373<DD>executable using <FONT COLOR="#CC0000">map2alm_iterative</FONT> to analyse maps. 374 <DT> 375<B><A HREF="sub_alm2map.htm#sub:alm2map">alm2map</A></B> 376<DD>routine performing the inverse transform of <FONT COLOR="#CC0000">map2alm_iterative</FONT>. 377 <DT> 378<B><A HREF="sub_alm2map_spin.htm#sub:alm2map_spin">alm2map_spin</A></B> 379<DD>synthesize spin weighted 380maps. 381 <DT> 382<B><A HREF="sub_dump_alms.htm#sub:dump_alms">dump_alms</A></B> 383<DD>write <SPAN CLASS="MATH"><IMG STYLE="height: 1.46ex; vertical-align: -0.45ex; " SRC="sub_img6.png" 384 ALT="$a_{\ell m}$"></SPAN> coefficients 385computed by <FONT COLOR="#CC0000">map2alm_iterative</FONT>into a FITS file 386 <DT> 387<B><A HREF="sub_map2alm_spin.htm#sub:map2alm_spin">map2alm_spin</A></B> 388<DD>analyze spin weighted maps. 389 </DL> 390 391<P> 392 393<P> 394 395<P> 396 397<DIV CLASS="navigation"><HR> 398<!--Navigation Panel--> 399<A 400 HREF="sub_map2alm.htm"> 401<IMG WIDTH="63" HEIGHT="24" ALT="previous" SRC="prev.png"></A> 402<A 403 HREF="sub_HEALPix_F90_subroutines.htm"> 404<IMG WIDTH="26" HEIGHT="24" ALT="up" SRC="up.png"></A> 405<A 406 HREF="sub_map2alm_spin.htm"> 407<IMG WIDTH="37" HEIGHT="24" ALT="next" SRC="next.png"></A> 408<A ID="tex2html390" 409 HREF="sub_TABLE_CONTENTS.htm"> 410<IMG WIDTH="65" HEIGHT="24" ALT="contents" SRC="contents.png"></A> 411<BR> 412<B> Previous:</B> <A 413 HREF="sub_map2alm.htm">map2alm*</A> 414 415<B>Up:</B> <A 416 HREF="sub_HEALPix_F90_subroutines.htm">HEALPix/F90 subroutines</A> 417 418<B> Next:</B> <A 419 HREF="sub_map2alm_spin.htm">map2alm_spin*</A> 420<B> Top:</B> <a href="main.htm">Main Page</a></DIV> 421<!--End of Navigation Panel--> 422<ADDRESS> 423Version 3.50, 2018-12-10 424</ADDRESS> 425</BODY> 426</HTML> 427