output_particle Subroutine

public subroutine output_particle(myparticle, payload, ipe, file_unit)

Uses

  • proc~~output_particle~~UsesGraph proc~output_particle output_particle module~mod_geometry mod_geometry proc~output_particle->module~mod_geometry module~mod_global_parameters mod_global_parameters proc~output_particle->module~mod_global_parameters module~mod_comm_lib mod_comm_lib module~mod_geometry->module~mod_comm_lib module~mod_basic_types mod_basic_types module~mod_global_parameters->module~mod_basic_types module~mod_connectivity mod_connectivity module~mod_global_parameters->module~mod_connectivity module~mod_constants mod_constants module~mod_global_parameters->module~mod_constants module~mod_physicaldata mod_physicaldata module~mod_global_parameters->module~mod_physicaldata module~mod_variables mod_variables module~mod_global_parameters->module~mod_variables mpi mpi module~mod_global_parameters->mpi module~mod_variables->module~mod_basic_types

Arguments

Type IntentOptional Attributes Name
type(particle_t), intent(in) :: myparticle
double precision, intent(in) :: payload(npayload)
integer, intent(in) :: ipe
integer, intent(in) :: file_unit

Calls

proc~~output_particle~~CallsGraph proc~output_particle output_particle proc~partcoord_to_cartesian partcoord_to_cartesian proc~output_particle->proc~partcoord_to_cartesian

Called by

proc~~output_particle~~CalledByGraph proc~output_particle output_particle proc~output_ensemble output_ensemble proc~output_ensemble->proc~output_particle proc~output_individual output_individual proc~output_individual->proc~output_particle proc~destroy_particles destroy_particles proc~destroy_particles->proc~output_ensemble proc~write_particle_output write_particle_output proc~write_particle_output->proc~output_ensemble proc~write_particle_output->proc~output_individual proc~comm_particles comm_particles proc~comm_particles->proc~destroy_particles proc~handle_particles handle_particles proc~handle_particles->proc~write_particle_output proc~advance_particles advance_particles proc~handle_particles->proc~advance_particles proc~particles_finish particles_finish proc~particles_finish->proc~destroy_particles proc~advance advance proc~advance->proc~handle_particles proc~advance_particles->proc~comm_particles proc~main main proc~main->proc~handle_particles proc~timeintegration timeintegration proc~main->proc~timeintegration proc~timeintegration->proc~advance program~agile agile program~agile->proc~main

Source Code

  subroutine output_particle(myparticle,payload,ipe,file_unit)
    use mod_global_parameters
    use mod_geometry

    type(particle_t),intent(in)  :: myparticle
    double precision, intent(in) :: payload(npayload)
    integer, intent(in)          :: ipe
    integer, intent(in)          :: file_unit
    double precision             :: x(3), u(3)
    integer                      :: icomp

    ! convert and normalize the position
    if (nocartesian) then
      select case(coordinate)
        case(Cartesian,Cartesian_stretched)
          x = myparticle%x*length_convert_factor
        case(cylindrical)
          x(r_)   = myparticle%x(r_)*length_convert_factor
          x(z_)   = myparticle%x(z_)*length_convert_factor
          x(phi_) = myparticle%x(phi_)
        case(spherical)
          x(:) = myparticle%x(:)
          x(1) = x(1)*length_convert_factor
      end select
    else
      call partcoord_to_cartesian(myparticle%x,x)
      x(:) = x(:)*length_convert_factor
    end if

    u = myparticle%u(1:3) * integrator_velocity_factor

    write(file_unit, csv_format) myparticle%time, myparticle%dt, x(1:3), u,&
        payload(1:npayload), ipe, it_particles, myparticle%index

  end subroutine output_particle