mod_particles.f90 Source File


This file depends on

sourcefile~~mod_particles.f90~~EfferentGraph sourcefile~mod_particles.f90 mod_particles.f90 sourcefile~mod_global_parameters.f90 mod_global_parameters.f90 sourcefile~mod_particles.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_particle_advect.f90 mod_particle_advect.f90 sourcefile~mod_particles.f90->sourcefile~mod_particle_advect.f90 sourcefile~mod_particle_base.f90 mod_particle_base.f90 sourcefile~mod_particles.f90->sourcefile~mod_particle_base.f90 sourcefile~mod_particle_gca.f90 mod_particle_gca.f90 sourcefile~mod_particles.f90->sourcefile~mod_particle_gca.f90 sourcefile~mod_particle_lorentz.f90 mod_particle_lorentz.f90 sourcefile~mod_particles.f90->sourcefile~mod_particle_lorentz.f90 sourcefile~mod_particle_sample.f90 mod_particle_sample.f90 sourcefile~mod_particles.f90->sourcefile~mod_particle_sample.f90 sourcefile~mod_basic_types.f90 mod_basic_types.f90 sourcefile~mod_global_parameters.f90->sourcefile~mod_basic_types.f90 sourcefile~mod_connectivity.f90 mod_connectivity.f90 sourcefile~mod_global_parameters.f90->sourcefile~mod_connectivity.f90 sourcefile~mod_constants.f90 mod_constants.f90 sourcefile~mod_global_parameters.f90->sourcefile~mod_constants.f90 sourcefile~mod_physicaldata.f90 mod_physicaldata.f90 sourcefile~mod_global_parameters.f90->sourcefile~mod_physicaldata.f90 sourcefile~mod_variables.f90 mod_variables.f90 sourcefile~mod_global_parameters.f90->sourcefile~mod_variables.f90 sourcefile~mod_particle_advect.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_particle_advect.f90->sourcefile~mod_particle_base.f90 sourcefile~mod_geometry.f90 mod_geometry.f90 sourcefile~mod_particle_advect.f90->sourcefile~mod_geometry.f90 sourcefile~mod_odeint.f90 mod_odeint.f90 sourcefile~mod_particle_advect.f90->sourcefile~mod_odeint.f90 sourcefile~mod_usr_methods.f90 mod_usr_methods.f90 sourcefile~mod_particle_advect.f90->sourcefile~mod_usr_methods.f90 sourcefile~mod_particle_base.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_comm_lib.f90 mod_comm_lib.f90 sourcefile~mod_particle_base.f90->sourcefile~mod_comm_lib.f90 sourcefile~mod_particle_base.f90->sourcefile~mod_constants.f90 sourcefile~mod_forest.f90 mod_forest.f90 sourcefile~mod_particle_base.f90->sourcefile~mod_forest.f90 sourcefile~mod_particle_base.f90->sourcefile~mod_geometry.f90 sourcefile~mod_mpi_wrapper.f90 mod_mpi_wrapper.f90 sourcefile~mod_particle_base.f90->sourcefile~mod_mpi_wrapper.f90 sourcefile~mod_random.f90 mod_random.f90 sourcefile~mod_particle_base.f90->sourcefile~mod_random.f90 sourcefile~mod_slice.f90 mod_slice.f90 sourcefile~mod_particle_base.f90->sourcefile~mod_slice.f90 sourcefile~mod_timing.f90 mod_timing.f90 sourcefile~mod_particle_base.f90->sourcefile~mod_timing.f90 sourcefile~mod_particle_base.f90->sourcefile~mod_usr_methods.f90 sourcefile~mod_particle_gca.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_particle_gca.f90->sourcefile~mod_particle_base.f90 sourcefile~mod_particle_gca.f90->sourcefile~mod_geometry.f90 sourcefile~mod_particle_gca.f90->sourcefile~mod_odeint.f90 sourcefile~mod_particle_gca.f90->sourcefile~mod_usr_methods.f90 sourcefile~mod_particle_lorentz.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_particle_lorentz.f90->sourcefile~mod_particle_base.f90 sourcefile~mod_particle_lorentz.f90->sourcefile~mod_geometry.f90 sourcefile~mod_particle_lorentz.f90->sourcefile~mod_usr_methods.f90 sourcefile~mod_particle_sample.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_particle_sample.f90->sourcefile~mod_particle_base.f90 sourcefile~mod_particle_sample.f90->sourcefile~mod_geometry.f90 sourcefile~mod_particle_sample.f90->sourcefile~mod_usr_methods.f90 sourcefile~mod_comm_lib.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_geometry.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_geometry.f90->sourcefile~mod_comm_lib.f90 sourcefile~mod_limiter.f90 mod_limiter.f90 sourcefile~mod_geometry.f90->sourcefile~mod_limiter.f90 sourcefile~mod_odeint.f90->sourcefile~mod_comm_lib.f90 sourcefile~mod_slice.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_slice.f90->sourcefile~mod_basic_types.f90 sourcefile~mod_slice.f90->sourcefile~mod_comm_lib.f90 sourcefile~mod_slice.f90->sourcefile~mod_forest.f90 sourcefile~mod_slice.f90->sourcefile~mod_geometry.f90 sourcefile~mod_slice.f90->sourcefile~mod_mpi_wrapper.f90 sourcefile~mod_calculate_xw.f90 mod_calculate_xw.f90 sourcefile~mod_slice.f90->sourcefile~mod_calculate_xw.f90 sourcefile~mod_input_output_helper.f90 mod_input_output_helper.f90 sourcefile~mod_slice.f90->sourcefile~mod_input_output_helper.f90 sourcefile~mod_usr_methods.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_variables.f90->sourcefile~mod_basic_types.f90 sourcefile~mod_calculate_xw.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_calculate_xw.f90->sourcefile~mod_comm_lib.f90 sourcefile~mod_calculate_xw.f90->sourcefile~mod_geometry.f90 sourcefile~mod_calculate_xw.f90->sourcefile~mod_usr_methods.f90 sourcefile~mod_calculate_xw.f90->sourcefile~mod_limiter.f90 sourcefile~mod_input_output_helper.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_input_output_helper.f90->sourcefile~mod_comm_lib.f90 sourcefile~mod_input_output_helper.f90->sourcefile~mod_forest.f90 sourcefile~mod_limiter.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_limiter.f90->sourcefile~mod_comm_lib.f90

Files dependent on this one

sourcefile~~mod_particles.f90~~AfferentGraph sourcefile~mod_particles.f90 mod_particles.f90 sourcefile~agile.f90 agile.f90 sourcefile~agile.f90->sourcefile~mod_particles.f90 sourcefile~mod_advance.f90 mod_advance.f90 sourcefile~agile.f90->sourcefile~mod_advance.f90 sourcefile~mod_amr_grid.f90 mod_amr_grid.f90 sourcefile~agile.f90->sourcefile~mod_amr_grid.f90 sourcefile~mod_input_output.f90 mod_input_output.f90 sourcefile~agile.f90->sourcefile~mod_input_output.f90 sourcefile~mod_initialize.f90 mod_initialize.f90 sourcefile~agile.f90->sourcefile~mod_initialize.f90 sourcefile~mod_advance.f90->sourcefile~mod_particles.f90 sourcefile~mod_amr_grid.f90->sourcefile~mod_particles.f90 sourcefile~mod_input_output.f90->sourcefile~mod_particles.f90 sourcefile~mod_initialize.f90->sourcefile~mod_input_output.f90

Source Code

!> 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