iau_rotation_matrix Function

public pure function iau_rotation_matrix(w, dec, ra) result(rotmat)

Uses

  • proc~~iau_rotation_matrix~~UsesGraph proc~iau_rotation_matrix iau_orientation_module::iau_rotation_matrix module~vector_module vector_module proc~iau_rotation_matrix->module~vector_module module~kind_module kind_module module~vector_module->module~kind_module module~numbers_module numbers_module module~vector_module->module~numbers_module iso_fortran_env iso_fortran_env module~kind_module->iso_fortran_env module~numbers_module->module~kind_module

Returns the rotation matrix for a coordinate transformation from the International Celestial Reference Frame (ICRF) frame to the IAU rotating frame associated with a body. The IAU orientation models use three Euler angles to describe the pole and prime meridian location (ra, dec, and w).

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: w

right ascension of the pole [rad]

real(kind=wp), intent(in) :: dec

declination of the pole [rad]

real(kind=wp), intent(in) :: ra

prime meridian location [rad]

Return Value real(kind=wp), dimension(3,3)

the rotation matrix


Calls

proc~~iau_rotation_matrix~~CallsGraph proc~iau_rotation_matrix iau_orientation_module::iau_rotation_matrix proc~rotation_matrix vector_module::rotation_matrix proc~iau_rotation_matrix->proc~rotation_matrix

Called by

proc~~iau_rotation_matrix~~CalledByGraph proc~iau_rotation_matrix iau_orientation_module::iau_rotation_matrix proc~icrf_to_iau_earth iau_orientation_module::icrf_to_iau_earth proc~icrf_to_iau_earth->proc~iau_rotation_matrix proc~icrf_to_iau_moon iau_orientation_module::icrf_to_iau_moon proc~icrf_to_iau_moon->proc~iau_rotation_matrix proc~get_c_cdot_iau_earth transformation_module::iau_earth_rotating_frame%get_c_cdot_iau_earth proc~get_c_cdot_iau_earth->proc~icrf_to_iau_earth proc~get_c_cdot_iau_moon transformation_module::iau_moon_rotating_frame%get_c_cdot_iau_moon proc~get_c_cdot_iau_moon->proc~icrf_to_iau_moon proc~iau_test iau_orientation_module::iau_test proc~iau_test->proc~icrf_to_iau_earth proc~iau_test->proc~icrf_to_iau_moon

Source Code

    pure function iau_rotation_matrix(w,dec,ra) result(rotmat)

    use vector_module, only: rotation_matrix,x_axis,y_axis,z_axis

    implicit none

    real(wp),intent(in)     :: w         !! right ascension of the pole [rad]
    real(wp),intent(in)     :: dec       !! declination of the pole [rad]
    real(wp),intent(in)     :: ra        !! prime meridian location [rad]
    real(wp),dimension(3,3) :: rotmat    !! the rotation matrix

    real(wp),parameter :: pi2 = pi / two

    real(wp),dimension(3,3) :: tmp

    !it is a 3-1-3 rotation:
    tmp    = matmul( rotation_matrix(x_axis,pi2-dec), rotation_matrix(z_axis,pi2+ra) )
    rotmat = matmul( rotation_matrix(z_axis,w), tmp )

    end function iau_rotation_matrix