!> Module containing all the particle routines module mod_particles use mod_particle_base use mod_particle_advect use mod_particle_lorentz use mod_particle_gca use mod_particle_sample implicit none contains !> Initialize particle data and parameters subroutine particles_init() use mod_global_parameters call particle_base_init() call init_particles_com() select case(physics_type_particles) case('advect') call advect_init() case('Lorentz') call Lorentz_init() case('GCA') call gca_init() case('sample') call sample_init() case default if (mype == 0) then print *, "Unknown physics_type_particles", & trim(physics_type_particles) print *, "Options are: advect, Lorentz, GCA, sample" call mpistop("Unknown physics_type_particles") end if end select end subroutine particles_init !> Create initial particles subroutine particles_create() use mod_global_parameters select case(physics_type_particles) case('advect') call advect_create_particles() case('Lorentz') ! The Vay mover can use the same routine call Lorentz_create_particles() case('GCA') call gca_create_particles() case('sample') call sample_create_particles() case default if (mype == 0) then print *, "Unknown physics_type_particles", & trim(physics_type_particles) print *, "Options are: advect, Lorentz, GCA, sample" call mpistop("Unknown physics_type_particles") end if end select end subroutine particles_create end module mod_particles