This code is an extension of CMBFAST4.5.1 by U. Seljak & M. Zaldarriaga to compute the ISW-correlation power spectrum and the 2-point angular ISW-correlation function for a given galaxy window function. It includes dark energy models specified by a constant equation of state (w) or a linear parameterization in the scale factor (w0,wa) and a constant sound speed (c2de). For reference see astro-ph/0504115, while for a detailed description of the ISW-correlation equations implemented see astro-ph/0506396. The ISW computation is limited to flat geometry. Differently from the original CMBFAST4.5 version dark energy perturbations are implemented for a general dark energy fluid specified by w(z) and c2de in synchronous gauge (see for instance Eq.7-9 in Bean and Dore astro-ph/0307100). For time varying dark energy models it is suggested not to cross the w=-1 line, as Dr. Wenkman says: “never cross the streams”, bad things can happen.

Galaxy Selection Function

The code allows to specify the galaxy window function. Two possibilities are implemented: 1) a standard window function ( A z^m exp[-(z/z0)^beta] ) normalized to unity with input parameters median redshift zmed (=1.41 z0) and the slopes m and beta. A bit of care is necessary for the normalization (see remarks); 2) Luminous Red Galaxies window function from SDSS.


The output consists of two files, the angular ISW-correlation function in microK (theta,C_Tg(theta)) and the power spectra in multipole space, the second column is the ISW-correlation power spectrum l(l+1)/2pi C_l(Tg) and the last column is the matter-matter angular power spectrum l(l+1)/2pi C_l(gg), in order to get the galaxy-galaxy power spectrum you need to multiply by your preferred constant bias value or you need to implement the model bias in the ISW-correlation computation (see remarks). Other columns are standard CMB spectra as in CMBFAST. Output data are normalized as WMAP3 at k=0.002 Mpc^-1 (A_s is an input parameter).


The code can be easily modified for studying ISW-correlation in more complicate models (modified gravity, time varying neutrino mass, coupled quintessence, etc..). In order to implement a scale and time dependent bias you need to modify the ISW-correlation computation in cmbcrossflat.F. If you want to use a non-standard selection function you can modify it in subcross.F. and change the normalization accordingly, you can use a numerical integration which I left for such a case. On the other hand if you want to use a very broad standard selection function be careful with the value of beta you plug in, if beta ~ 0 remember that the Gamma function blows up, while you are just using a power low selection function whose integral depends on the maximmum redshift of the survey.

In case of bugs, problems, questions or tips for modifying the code just drop me an email and I will get back to you asap.

Download: CROSS_CMBfast1.2.tar.gz

How to run Cross-CMBfast:

gunzip CROSS_CMBFAST.tar.gz
tar xvf CROSS_CMBFAST.tar
mkdir output

modify the Makefile for your compiler and optimization flags (default is ifort -O3) and run


before running the executable remember to create the Bessel function file and call it jl.dat

jlgen (./jlgen if you use bash)

output files are stored in the directory output, in the package I left two test input files: wconst.ini and wvar.ini. Try

cmb < wvar.ini


 October 2007, Version 1.2: file subcross.F of the old version has been now removed and substituted with the correct one (thanks to Kazuhide Ichikawa for noticing the problem).

 August 2007, Version 1.2: minor bug affecting pressure perturbation for time evolving DE models removed (thanks to Alessandro Melchiorri for spotting the problem).

 November 2006, Version 1.1: for the Galaxy Selection function the normalization is semi-analytical having implemented the Gamma function, this solve problems with the numerical integration which arise for broad profiles (thanks to Anais Rassat for pointing the problem) as long as beta is not too close to zero. Time integration after recombination has now been increased to remove artificial wiggles induced by the Bessel functions when reionization is switched off (thanks to Pablo Fosalba for pointing the problem). Minor bugs removed.

 September 2006, Version 1.0: not available anymore.