partcoord_to_cartesian Subroutine

public subroutine partcoord_to_cartesian(xp, xpcart)

Uses

  • proc~~partcoord_to_cartesian~~UsesGraph proc~partcoord_to_cartesian partcoord_to_cartesian module~mod_geometry mod_geometry proc~partcoord_to_cartesian->module~mod_geometry module~mod_global_parameters mod_global_parameters proc~partcoord_to_cartesian->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

Convert position to Cartesian coordinates

Arguments

Type IntentOptional Attributes Name
double precision, intent(in) :: xp(1:3)
double precision, intent(out) :: xpcart(1:3)

Called by

proc~~partcoord_to_cartesian~~CalledByGraph proc~partcoord_to_cartesian partcoord_to_cartesian proc~lorentz_integrate_particles Lorentz_integrate_particles proc~lorentz_integrate_particles->proc~partcoord_to_cartesian proc~output_particle output_particle proc~output_particle->proc~partcoord_to_cartesian 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 partcoord_to_cartesian(xp,xpcart)
    ! conversion of particle coordinate from cylindrical/spherical to cartesian coordinates done here
    use mod_global_parameters
    use mod_geometry

    double precision, intent(in)  :: xp(1:3)
    double precision, intent(out) :: xpcart(1:3)

    select case (coordinate)
       case (Cartesian,Cartesian_stretched,Cartesian_expansion)
         xpcart(1:3) = xp(1:3)
       case (cylindrical)
         xpcart(1) = xp(r_)*cos(xp(phi_))
         xpcart(2) = xp(r_)*sin(xp(phi_))
         xpcart(3) = xp(z_)
       case (spherical)
         xpcart(1) = xp(1)*sin(xp(2))*cos(xp(3))


         xpcart(2) = xp(1)*sin(xp(2))*sin(xp(3))
         xpcart(3) = xp(1)*cos(xp(2))
       case default
          write(*,*) "No converter for coordinate=",coordinate
       end select

  end subroutine partcoord_to_cartesian