set_sphere_scale Subroutine

private subroutine set_sphere_scale(self, scale)

Scale the sphere along its x, y and z axes (all > 0), making an ellipsoid with semi-axes radius * scale.

Type Bound

Sphere

Arguments

Type IntentOptional Attributes Name
class(Sphere), intent(inout) :: self
real(kind=wp), intent(in) :: scale(3)

along x, y and z (all > 0, else ignored)


Calls

proc~~set_sphere_scale~~CallsGraph proc~set_sphere_scale Sphere%set_sphere_scale proc~update_sphere_transform update_sphere_transform proc~set_sphere_scale->proc~update_sphere_transform interface~vkf_transform_set_matrix vkf_transform_set_matrix proc~update_sphere_transform->interface~vkf_transform_set_matrix proc~frame_matrix frame_matrix proc~update_sphere_transform->proc~frame_matrix proc~name ReferenceFrame%name proc~update_sphere_transform->proc~name proc~radii Sphere%radii proc~update_sphere_transform->proc~radii proc~quat_to_matrix quat_to_matrix proc~frame_matrix->proc~quat_to_matrix

Source Code

    subroutine set_sphere_scale(self, scale)
        class(Sphere), intent(inout) :: self
        real(wp), intent(in) :: scale(3)                    !! along x, y and z (all > 0, else ignored)
        if (any(scale <= 0.0_wp)) return
        self%scale_ = scale
        call update_sphere_transform(self)
    end subroutine set_sphere_scale