diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 00000000..9b73f581
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,7 @@
+*.txt text
+*.f90 text
+*.F90 text
+Makefile* text
+*.m text
+*.dat text
+*.ini text
diff --git a/VisualStudio/CAMB.sln b/VisualStudio/CAMB.sln
index c439134a..8e7c0382 100644
--- a/VisualStudio/CAMB.sln
+++ b/VisualStudio/CAMB.sln
@@ -9,11 +9,17 @@ Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "CAMB_devel", "CAMB_devel.vf
EndProject
Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "CAMBLib", "CAMBLib.vfproj", "{DBB2F5F1-BF96-4AAD-9CE7-15EB2E22E3E7}"
ProjectSection(ProjectDependencies) = postProject
+ {9A850B68-FC7B-42F7-BB78-C4C38EF90B25} = {9A850B68-FC7B-42F7-BB78-C4C38EF90B25}
{C7D790F6-3574-43A1-A5E1-1E6FC5478F95} = {C7D790F6-3574-43A1-A5E1-1E6FC5478F95}
EndProjectSection
EndProject
Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "SharedObj", "SharedObj.vfproj", "{C7D790F6-3574-43A1-A5E1-1E6FC5478F95}"
EndProject
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "MatrixDouble", "MatrixDouble.vfproj", "{9A850B68-FC7B-42F7-BB78-C4C38EF90B25}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C7D790F6-3574-43A1-A5E1-1E6FC5478F95} = {C7D790F6-3574-43A1-A5E1-1E6FC5478F95}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -46,6 +52,14 @@ Global
{C7D790F6-3574-43A1-A5E1-1E6FC5478F95}.Release|Win32.Build.0 = Release|Win32
{C7D790F6-3574-43A1-A5E1-1E6FC5478F95}.Release|x64.ActiveCfg = Release|x64
{C7D790F6-3574-43A1-A5E1-1E6FC5478F95}.Release|x64.Build.0 = Release|x64
+ {9A850B68-FC7B-42F7-BB78-C4C38EF90B25}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9A850B68-FC7B-42F7-BB78-C4C38EF90B25}.Debug|Win32.Build.0 = Debug|Win32
+ {9A850B68-FC7B-42F7-BB78-C4C38EF90B25}.Debug|x64.ActiveCfg = Debug|x64
+ {9A850B68-FC7B-42F7-BB78-C4C38EF90B25}.Debug|x64.Build.0 = Debug|x64
+ {9A850B68-FC7B-42F7-BB78-C4C38EF90B25}.Release|Win32.ActiveCfg = Release|Win32
+ {9A850B68-FC7B-42F7-BB78-C4C38EF90B25}.Release|Win32.Build.0 = Release|Win32
+ {9A850B68-FC7B-42F7-BB78-C4C38EF90B25}.Release|x64.ActiveCfg = Release|x64
+ {9A850B68-FC7B-42F7-BB78-C4C38EF90B25}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/VisualStudio/CAMB.suo b/VisualStudio/CAMB.suo
new file mode 100644
index 00000000..b0b4689c
Binary files /dev/null and b/VisualStudio/CAMB.suo differ
diff --git a/VisualStudio/CAMBLib_ppf.vfproj b/VisualStudio/CAMBLib_ppf.vfproj
new file mode 100644
index 00000000..581a25ce
--- /dev/null
+++ b/VisualStudio/CAMBLib_ppf.vfproj
@@ -0,0 +1,60 @@
+
+CAMB ReadMe
Compiling and running
- To install yourself: +To install and compile yourself you will need a Fortran 90 (or higher) compiler - you can get the free G95 or GFortran compilers, or the optimized Intel compiler ifort is installed on many academic clusters and also supports integrated development and debugging in Visual Studio under Windows. + Alternatively you can use CAMB in the pre-configured CosmoBox virtual machine, using the eclipse integrated development environment.
+ To install yourself from the command line:
-The Makefile comes set up for Intel machines using ifc. Just comment the relevant parts to compile on different systems. If you have Compaq Visual Fortran you can open the supplied .dsp project file, no need to use the Makefile (currently Intel Visual Fortran is not recommended). To run on multi-processor machines add the -openmp (or equivalent) option to the Makefile's FFLAGS parameter to compile a parallelized (OPENMP) version. +The Makefile comes set up for Intel machines using Intel's ifort compiler. Just comment the relevant parts to compile on different systems. If you have Intel's Visual Fortran you can use the projects in the VisualStudio folder, no need to use the Makefile. To run on multi-processor machines add the -openmp (or equivalent) option to the Makefile's FFLAGS parameter to compile a parallelized (OPENMP) version.
-You can also edit the Makefile's EQUATIONS and POWERSPECTRUM - variables. The POWERSPECTRUM.f90 file contains a module giving the initial +You can also edit the Makefile's EQUATIONS, POWERSPECTRUM, RECOMBINATION and REIONIZATION + variables, which determine which module is used to implement and model various parts of the calculation. The POWERSPECTRUM.f90 file contains a module giving the initial power spectrum, the EQUATIONS.f90 file contains the background evolution equations and sets of gauge-dependent perturbation - equations. To avoid problems run make clean after changing the - Makefile before recompiling. + equations (the alternative equations_ppf.f90 is provided to implement the common w, wa varying dark energy parameterization). RECOMBINATION.f90 gives the background recombination history: recfast by default, but you can also compile to use CosmoRec and HyRec. REIONIZATION is by default a simple relatively fast single-step reionization model (following arXiv:0804.3865). + Various other modules can also be changed at compile time if desired. + To avoid problems run make clean after changing the + Makefile before recompiling. You can also use e.g. make RECOMBINATION=cosmorec to override the default and compile with a different module.
You can produce files in CAMB ReadMe simple non-standard models are in the equations.f90 file. It should be possible to produce other files for extended models (see the sample quintessence module). (Note that varying -constant - e.g. alpha - models are not quite so simple to plug in). +constant - e.g. alpha - models are not quite so simple to plug in; a sample equations_ppf.f90 file provided to implement a varying w dark energy equation of state in the PPF model).
After modifying any of the source code run make clean before running make to recompile (Visual Fortran will re-compile dependent code automatically). Run make all to build a library libcamb.a that you can use when @@ -114,7 +116,7 @@
equations_ppf.f90 is an alternative module that allows evolving dark energy crossing w=-1.
power_tilt.f90
@@ -566,7 +568,7 @@
SeparableBispectrum.f90
@@ -627,7 +629,7 @@
Covariant theory @@ -670,6 +672,10 @@
Stable clustering, the halo model and nonlinear cosmological power spectra
Smith, R. E. and others, astro-ph/0207664.
+
+
+Revising the Halofit Model for the Nonlinear Matter Power Spectrum
+Ryuichi Takahashi and others, arXiv:1208.2701.
RECOMBINATION