Commit 7f8c50ba authored by Roy Fabrice's avatar Roy Fabrice
Browse files

Merge branch 'fhi-and-syntax' into 'master'

Fhi and syntax

See merge request roy/pFoF_dev!5
parents 5776b260 75d906e3
......@@ -23,3 +23,4 @@ clean:
cd tools/conepartcreator/src ; make clean
cd tools/conegravcreator/src ; make clean
cd tools/conemapper/src ; make clean
rm -f mod/* obj/*
......@@ -48,7 +48,7 @@ $(OBJDIR)%.o:%.f90
FC=$(FC), FCFLAGS=$(FCFLAGS)
$(FC) -c $(FCFLAGS) $< -o $@
%.mod:%.f90
$(MODDIR)%.mod:%.f90
@echo "--------------------------------"
@echo building $*.mod with parameters \
FC=$(FC), FCFLAGS=$(FCFLAGS)
......
......@@ -42,7 +42,8 @@ contains
position_halo, velocity_halo, rmax_halo, identity_halo, npart_halo)
use iso_fortran_env, only : ERROR_UNIT, OUTPUT_UNIT
use modconstant, only : IDKIND, type_common_metadata, type_parameter_pfof, type_info_ramses, type_info_cone_part
use modconstant, only : IDKIND, type_common_metadata, type_parameter_pfof
use type_info_ramses_mod, only : type_info_ramses, type_info_cone_part
use fortran_hdf5_constants_m, only : H5_FILENAME_LEN, H5_STR_LEN
use fortran_hdf5_manage_files_m, only : hdf5_close_file, hdf5_open_file
use fortran_hdf5_manage_groups_m, only : hdf5_close_group, hdf5_open_group
......@@ -167,13 +168,14 @@ contains
use fortran_hdf5_read_data_m
use iso_fortran_env, only : ERROR_UNIT, OUTPUT_UNIT
use modconstant, only : ERR_MSG_LEN, IDKIND, &
type_common_metadata, type_parameter_pfof, type_info_ramses, type_info_cone_part
type_common_metadata, type_parameter_pfof
use type_info_ramses_mod, only : type_info_ramses, type_info_cone_part
use modmpicommons, only : type_info_process
use modreadmeta, only : Read_meta_common, &
Read_meta_halofinder_parameter, &
Read_meta_info_cone, &
Read_meta_info_ramses
use hdf5, only : HID_T
type(type_info_process), intent(in) :: info_proc
character(len=H5_FILENAME_LEN), intent(in) :: filename
......
......@@ -15,8 +15,10 @@ SRC = modconstant.f90 \
modtiming.f90 \
modvariables.f90 \
modreadparameters.f90 \
modreadmeta.f90 \
modmpicom.f90 \
modsort.f90 \
modwritemeta.f90 \
modwritehalo.f90 \
modio.f90 \
modhalo.f90 \
......@@ -40,7 +42,7 @@ $(OBJDIR)%.o:%.f90
@echo "--------------------------------"
@echo building $*.o with parameters \
FC=$(FC), FCFLAGS=$(FCFLAGS)
$(FC) -c $(FCFLAGS) $<
$(FC) -c $(FCFLAGS) $< -o $@
%.mod:%.f90
@echo "--------------------------------"
......
!==============================================================================
! Project: pFoF
! File: pfof_cone/src/modfofpara.f90
! Copyright Edouard Audit, Fabrice Roy and Vincent Bouillot (2011)
! Fabrice.Roy@obspm.fr
!
! This software is a computer program whose purpose is to detect dark matter
! haloes in cosmological simulation with a parallel Friend of Friend algorithm.
!------------------------------------------------------------------------------------------------------------------------------------
! Copyright 2011 Edouard Audit, Fabrice Roy and Vincent Bouillot
!
! This software is governed by the CeCILL license under French law and
! abiding by the rules of distribution of free software. You can use,
! modify and/ or redistribute the software under the terms of the CeCILL
! license as circulated by CEA, CNRS and INRIA at the following URL
! "http://www.cecill.info".
! Contact: fabrice.roy@obspm.fr
!
! As a counterpart to the access to the source code and rights to copy,
! modify and redistribute granted by the license, users are provided only
! with a limited warranty and the software's author, the holder of the
! economic rights, and the successive licensors have only limited
! liability.
! This file is part of pFoF.
!
! In this respect, the user's attention is drawn to the risks associated
! with loading, using, modifying and/or developing or reproducing the
! software by the user in light of its specific status of free software,
! that may mean that it is complicated to manipulate, and that also
! therefore means that it is reserved for developers and experienced
! professionals having in-depth computer knowledge. Users are therefore
! encouraged to load and test the software's suitability as regards their
! requirements in conditions enabling the security of their systems and/or
! data to be ensured and, more generally, to use and operate it in the
! same conditions as regards security.
! pFoF is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! The fact that you are presently reading this means that you have had
! knowledge of the CeCILL license and that you accept its terms.
!==============================================================================
! pFoF is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with pFoF. If not, see <http://www.gnu.org/licenses/>.
!> @file
!!This file contains the serial FOF algorithm.
!!
!! @author Edouard Audit
!! @author Fabrice Roy
!! @author Vincent Bouillot
!> This module contains the serial FOF algorithm.
!>
!> Authors: E. Audit, F. Roy, V. Bouillot
Module modfofpara
implicit none
Contains
......@@ -68,7 +54,6 @@ Contains
Use modtiming
Use modfofmpi
Implicit none
! Local variables
Integer(kind=4), dimension(:),allocatable :: adfirst,npcase
......@@ -85,7 +70,7 @@ Contains
Integer(kind=4) :: signx(3), signy(3), signz(3)
Integer(kind=4) :: nsign
Integer(kind=PRI) :: namas ! tmp structure ID
Integer(kind=IDKIND) :: namas ! tmp structure ID
Real(kind=4) :: r, d, size, size_fof, xx, yy, zz
Real(kind=4) :: dx, dy, dz
......@@ -453,45 +438,45 @@ Contains
If(param%do_read_ramses_part_id) Then
If(param%do_read_potential .and. param%do_read_gravitational_field) Then
Call h5writehalopart(info_proc, param, haloNB, halopartNB, haloMass, haloID, &
Call h5writehalopart(info_proc, param, global_npart, haloNB, halopartNB, haloMass, haloID, &
halopartPos, halopartVel, halopartID, halopartFor=halopartFor, &
halopartPot=halopartPot, halopartRamsesID=halopartRamsesID, &
inforamses=inforamses, infocone=infocone)
Else If(param%do_read_potential .and. .not. param%do_read_gravitational_field ) Then
Call h5writehalopart(info_proc, param, haloNB, halopartNB, haloMass, haloID, &
Call h5writehalopart(info_proc, param, global_npart, haloNB, halopartNB, haloMass, haloID, &
halopartPos, halopartVel, halopartID, halopartPot=halopartPot, &
halopartRamsesID=halopartRamsesID, inforamses=inforamses, infocone=infocone)
Else If(param%do_read_gravitational_field .and. .not. param%do_read_potential) Then
Call h5writehalopart(info_proc, param, haloNB, halopartNB, haloMass, haloID, &
Call h5writehalopart(info_proc, param, global_npart, haloNB, halopartNB, haloMass, haloID, &
halopartPos, halopartVel, halopartID, halopartFor=halopartFor, &
halopartRamsesID=halopartRamsesID, inforamses=inforamses, infocone=infocone)
Else
Call h5writehalopart(info_proc, param, haloNB, halopartNB, haloMass, haloID, &
Call h5writehalopart(info_proc, param, global_npart, haloNB, halopartNB, haloMass, haloID, &
halopartPos, halopartVel, halopartID, halopartRamsesID=halopartRamsesID,&
inforamses=inforamses, infocone=infocone)
End If
Else
If(param%do_read_potential .and. param%do_read_gravitational_field) Then
Call h5writehalopart(info_proc, param, haloNB, halopartNB, haloMass, haloID, &
Call h5writehalopart(info_proc, param, global_npart, haloNB, halopartNB, haloMass, haloID, &
halopartPos, halopartVel, halopartID, halopartFor=halopartFor, &
halopartPot=halopartPot, inforamses=inforamses, infocone=infocone)
Else If(param%do_read_potential .and. .not. param%do_read_gravitational_field ) Then
Call h5writehalopart(info_proc, param, haloNB, halopartNB, haloMass, haloID, &
Call h5writehalopart(info_proc, param, global_npart, haloNB, halopartNB, haloMass, haloID, &
halopartPos, halopartVel, halopartID, halopartPot=halopartPot, &
inforamses=inforamses, infocone=infocone)
Else If(param%do_read_gravitational_field .and. .not. param%do_read_potential) Then
Call h5writehalopart(info_proc, param, haloNB, halopartNB, haloMass, haloID, &
Call h5writehalopart(info_proc, param, global_npart, haloNB, halopartNB, haloMass, haloID, &
halopartPos, halopartVel, halopartID, halopartFor=halopartFor, &
inforamses=inforamses, infocone=infocone)
Else
Call h5writehalopart(info_proc, param, haloNB, halopartNB, haloMass, haloID, &
Call h5writehalopart(info_proc, param, global_npart, haloNB, halopartNB, haloMass, haloID, &
halopartPos, halopartVel, halopartID, inforamses=inforamses, infocone=infocone)
End If
End If
......@@ -522,7 +507,7 @@ Contains
End If
nh = ubound(haloMass,1)
Call mpih5writehalomass(Mpi_Comm_World,param, haloNB_all, haloNB, nh, haloMass, halocomPos, &
Call mpih5writehalomass(Mpi_Comm_World,param, global_npart, haloNB_all, haloNB, nh, haloMass, halocomPos, &
halocomVel, haloID, haloRadius, haloSubHaloNB, inforamses=inforamses, infocone=infocone)
Deallocate(haloMass, halocomPos, halocomVel, haloID)
......
!==============================================================================
! Project: pFoF
! File: pfof_cone/src/modio.f90
! Copyright Fabrice Roy and Vincent Bouillot (2011)
! Fabrice.Roy@obspm.fr
!
! This software is a computer program whose purpose is to detect dark matter
! haloes in cosmological simulation with a parallel Friend of Friend algorithm.
!
! This software is governed by the CeCILL license under French law and
! abiding by the rules of distribution of free software. You can use,
! modify and/ or redistribute the software under the terms of the CeCILL
! license as circulated by CEA, CNRS and INRIA at the following URL
! "http://www.cecill.info".
!------------------------------------------------------------------------------------------------------------------------------------
! Copyright 2011 Fabrice Roy and Vincent Bouillot
! Contact: fabrice.roy@obspm.fr
!
! As a counterpart to the access to the source code and rights to copy,
! modify and redistribute granted by the license, users are provided only
! with a limited warranty and the software's author, the holder of the
! economic rights, and the successive licensors have only limited
! liability.
! This file is part of pFoF.
!
! In this respect, the user's attention is drawn to the risks associated
! with loading, using, modifying and/or developing or reproducing the
! software by the user in light of its specific status of free software,
! that may mean that it is complicated to manipulate, and that also
! therefore means that it is reserved for developers and experienced
! professionals having in-depth computer knowledge. Users are therefore
! encouraged to load and test the software's suitability as regards their
! requirements in conditions enabling the security of their systems and/or
! data to be ensured and, more generally, to use and operate it in the
! same conditions as regards security.
! pFoF is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! The fact that you are presently reading this means that you have had
! knowledge of the CeCILL license and that you accept its terms.
!==============================================================================
! pFoF is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with pFoF. If not, see <http://www.gnu.org/licenses/>.
!> @file
!!This file contains the subroutines and common variables used for I/O in pFoF_cone.
!> This module contains the subroutines and common variables used for I/O in pFoF_cone.
!>
!> Authors: F. Roy, V. Bouillot
!! Subroutines and common variables used for I/O in pFoF_cone.
!! @brief
!!
!! @author Fabrice Roy
!! @author Vincent Bouillot
!> Subroutines and common variables used for I/O in pFoF_cone.
Module modio
module modio
Use modmpicommons
Use modvarcommons
Use modconstant
use modmpicommons
use modvarcommons
use modconstant
use hdf5, only : HID_T
Use modvariables
Use mpi
use modvariables
use mpi
implicit none
Integer(kind=4) :: ioerr
......@@ -112,7 +98,7 @@ Contains
Implicit none
Character(len=400) :: filename
Character(len=FILENAME_LEN) :: filename
Integer :: ioerr
Character(len=84) :: filelog
Integer(kind=4) :: mpierr
......@@ -134,9 +120,9 @@ Contains
! Open log file
filelog = 'pfof_log_'//trim(param%simulation_name)//'.log'
Open(Unit=Ulog,file=filelog)
Write(Ulog,*) 'Parallel FoF'
Write(Ulog,*) procNB,' processes:'
Open(Unit=LOG_UNIT,file=filelog)
Write(LOG_UNIT,*) 'Parallel FoF'
Write(LOG_UNIT,*) procNB,' processes:'
End If
......@@ -156,11 +142,16 @@ Contains
!> in each shell file
Subroutine h5readshellinfo()
Use modiocommons
use fortran_hdf5_constants_m, only : H5_STR_LEN
use fortran_hdf5_manage_files_m
use fortran_hdf5_manage_groups_m
use fortran_hdf5_read_attribute_m
use fortran_hdf5_read_data_m
use modreadmeta
Implicit None
Character(len=H5STRLEN) :: dataname
Character(len=H5STRLEN) :: groupname
Character(len=H5_STR_LEN) :: dataname
Character(len=H5_STR_LEN) :: groupname
Character(len=5) :: charish
Character(len=400) :: shellname
Integer(kind=4) :: ic
......@@ -171,8 +162,8 @@ Contains
Integer(kind=4) :: my_shell_fid, my_shell_lid, my_shell_nb
Integer(kind=4), dimension(:,:), allocatable :: indexfile
Integer(kind=4) :: icube
Integer(kind=hid_t) :: file_id
Integer(kind=hid_t) :: gr_meta_id
Integer(kind=HID_T) :: file_id
Integer(kind=HID_T) :: gr_meta_id
Integer(kind=4) :: rootlast, roottmp
Logical(kind=4) :: islast
Integer(kind=4) :: mpierr
......@@ -228,9 +219,9 @@ Contains
!Call hdf5_read_info_ramses
! Subroutine h5read_meta_info_ramses(file_id, inforamses)
Call h5read_meta_common(file_id, common_meta)
Call h5read_meta_info_cone(file_id, infocone, islast)
Call h5read_meta_info_ramses(file_id, inforamses, islast)
call Read_meta_common(file_id, common_meta)
call Read_meta_info_cone(file_id, infocone, islast)
call Read_meta_info_ramses(file_id, inforamses, islast)
nres = 2**inforamses%levelmin
! this is the last shell: the metadata read from this shell will be written in the output files
......@@ -317,13 +308,16 @@ Contains
!> This subroutine reads the map file
Subroutine h5readmap()
use fortran_hdf5_constants_m, only : H5_FILENAME_LEN, H5_STR_LEN
use fortran_hdf5_manage_files_m
use fortran_hdf5_manage_groups_m
use fortran_hdf5_read_attribute_m
use fortran_hdf5_read_data_m
Use modmpicom
Implicit None
Character(len=400) :: filename
Character(len=H5STRLEN) :: dataname
Character(len=H5STRLEN) :: groupname
Character(len=H5_FILENAME_LEN) :: filename
Character(len=H5_STR_LEN) :: dataname
Character(len=H5_STR_LEN) :: groupname
Character(len=8) :: charpid
Integer(kind=hid_t) :: file_id
Integer(kind=hid_t) :: gr_id
......@@ -386,13 +380,16 @@ Contains
!> This subroutine reads the particles from the shell files
Subroutine h5readparticles()
Implicit None
use fortran_hdf5_constants_m, only : H5_FILENAME_LEN, H5_STR_LEN
use fortran_hdf5_manage_files_m
use fortran_hdf5_manage_groups_m
use fortran_hdf5_read_data_m
Character(len=8) :: charic
Character(len=5) :: charish
Character(len=400) :: shellname
Character(len=H5STRLEN) :: dataname
Character(len=H5STRLEN) :: groupname
Character(len=H5_FILENAME_LEN) :: shellname
Character(len=H5_STR_LEN) :: dataname
Character(len=H5_STR_LEN) :: groupname
Integer(kind=hid_t) :: file_id
Integer(kind=hid_t) :: gr_id
......@@ -401,7 +398,7 @@ Contains
Integer(kind=4) :: ic, ish
Integer(kind=4) :: deb, fin, n
Integer(kind=4) :: ip
Integer(kind=PRI) :: fid
Integer(kind=IDKIND) :: fid
Integer(kind=4), dimension(:), allocatable :: npartloc
......
!==============================================================================
! Project: pFoF
! File: pfof_cone/src/modio.f90
! Copyright Fabrice Roy and Vincent Bouillot (2011)
! Fabrice.Roy@obspm.fr
!
! This software is a computer program whose purpose is to detect dark matter
! haloes in cosmological simulation with a parallel Friend of Friend algorithm.
!------------------------------------------------------------------------------------------------------------------------------------
! Copyright 2011 Fabrice Roy and Vincent Bouillot
!
! This software is governed by the CeCILL license under French law and
! abiding by the rules of distribution of free software. You can use,
! modify and/ or redistribute the software under the terms of the CeCILL
! license as circulated by CEA, CNRS and INRIA at the following URL
! "http://www.cecill.info".
! Contact: fabrice.roy@obspm.fr
!
! As a counterpart to the access to the source code and rights to copy,
! modify and redistribute granted by the license, users are provided only
! with a limited warranty and the software's author, the holder of the
! economic rights, and the successive licensors have only limited
! liability.
! This file is part of pFoF.
!
! In this respect, the user's attention is drawn to the risks associated
! with loading, using, modifying and/or developing or reproducing the
! software by the user in light of its specific status of free software,
! that may mean that it is complicated to manipulate, and that also
! therefore means that it is reserved for developers and experienced
! professionals having in-depth computer knowledge. Users are therefore
! encouraged to load and test the software's suitability as regards their
! requirements in conditions enabling the security of their systems and/or
! data to be ensured and, more generally, to use and operate it in the
! same conditions as regards security.
! pFoF is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! The fact that you are presently reading this means that you have had
! knowledge of the CeCILL license and that you accept its terms.
!==============================================================================
! pFoF is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with pFoF. If not, see <http://www.gnu.org/licenses/>.
!> @file
!!This file contains the parameters read from pfof_cone.nml and the version number read from pfof.version.
!! This file contains the parameters read from pfof_cone.nml and the version number read from pfof.version.
!!
!! @author Fabrice Roy
!! @author Vincent Bouillot
!> This module contains the parameters read from pfof_cone.nml and the version number read from pfof.version.
!>
!> Authors: F. Roy, V. Bouillot
Module modparameters
......
!==============================================================================
! Project: pFoF
! File: pfof_cone/src/modvariables.f90
! Copyright Fabrice Roy and Vincent Bouillot (2011)
! Fabrice.Roy@obspm.fr
!
! This software is a computer program whose purpose is to detect dark matter
! haloes in cosmological simulation with a parallel Friend of Friend algorithm.
!------------------------------------------------------------------------------------------------------------------------------------
! Copyright 2011 Fabrice Roy and Vincent Bouillot
!
! This software is governed by the CeCILL license under French law and
! abiding by the rules of distribution of free software. You can use,
! modify and/ or redistribute the software under the terms of the CeCILL
! license as circulated by CEA, CNRS and INRIA at the following URL
! "http://www.cecill.info".
! Contact: fabrice.roy@obspm.fr
!
! As a counterpart to the access to the source code and rights to copy,
! modify and redistribute granted by the license, users are provided only
! with a limited warranty and the software's author, the holder of the
! economic rights, and the successive licensors have only limited
! liability.
! This file is part of pFoF.
!
! In this respect, the user's attention is drawn to the risks associated
! with loading, using, modifying and/or developing or reproducing the
! software by the user in light of its specific status of free software,
! that may mean that it is complicated to manipulate, and that also
! therefore means that it is reserved for developers and experienced
! professionals having in-depth computer knowledge. Users are therefore
! encouraged to load and test the software's suitability as regards their
! requirements in conditions enabling the security of their systems and/or
! data to be ensured and, more generally, to use and operate it in the
! same conditions as regards security.
! pFoF is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! The fact that you are presently reading this means that you have had
! knowledge of the CeCILL license and that you accept its terms.
!==============================================================================
! pFoF is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with pFoF. If not, see <http://www.gnu.org/licenses/>.
!> @file
!!This file contains the common variables used in pFoF_cone and a subroutine used to deallocate all allocatable arrays.
!!
!! @author Fabrice Roy
!! @author Vincent Bouillot
!> This module contains the common variables used in pFoF_cone and a subroutine used to deallocate all allocatable arrays.
!>
!> Authors: F. Roy, V. Bouillot
module modvariables
......
!==============================================================================
! Project: pFoF
! File: pfof_cone/src/pfof_cone.f90
! Copyright Fabrice Roy and Vincent Bouillot (2011)
! Fabrice.Roy@obspm.fr
!
! This software is a computer program whose purpose is to detect dark matter
! haloes in cosmological simulation with a parallel Friend of Friend algorithm.
!------------------------------------------------------------------------------------------------------------------------------------
! Copyright 2011 Fabrice Roy and Vincent Bouillot
!
! This software is governed by the CeCILL license under French law and
! abiding by the rules of distribution of free software. You can use,
! modify and/ or redistribute the software under the terms of the CeCILL
! license as circulated by CEA, CNRS and INRIA at the following URL
! "http://www.cecill.info".
! Contact: fabrice.roy@obspm.fr
!
! As a counterpart to the access to the source code and rights to copy,
! modify and redistribute granted by the license, users are provided only
! with a limited warranty and the software's author, the holder of the
! economic rights, and the successive licensors have only limited
! liability.
! This file is part of pFoF.
!
! In this respect, the user's attention is drawn to the risks associated
! with loading, using, modifying and/or developing or reproducing the
! software by the user in light of its specific status of free software,
! that may mean that it is complicated to manipulate, and that also
! therefore means that it is reserved for developers and experienced
! professionals having in-depth computer knowledge. Users are therefore
! encouraged to load and test the software's suitability as regards their
! requirements in conditions enabling the security of their systems and/or
! data to be ensured and, more generally, to use and operate it in the
! same conditions as regards security.
! pFoF is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! The fact that you are presently reading this means that you have had
! knowledge of the CeCILL license and that you accept its terms.
!==============================================================================
! pFoF is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with pFoF. If not, see <http://www.gnu.org/licenses/>.
!> @file
!! This file contains the main program of the light cone implementation of pFoF.
!!
!! @author Fabrice Roy
!! @author Vincent Bouillot
!> pFOF_cone is a distributed implementation of the Friends-of-Friends halo finder algorithm designed for lightcones simulated with RAMSES. <br>
!! This parallel Friend of Friend implementation is based on a sequential
!! implementation written by Edouard Audit (CEA). <br>
!! It has been written by Fabrice Roy -- CNRS / LUTH (Observatoire de Paris) and Vincent Bouillot. <br>
!! mail: fabrice.roy@obspm.fr <br>
!! mail: vincent.bouillot@obspm.fr <br>
Program pfof_cone