Add a point to a trajectory variable.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(trajectory), | intent(inout) | :: | me |
the trajectory |
||
real(kind=wp), | intent(in) | :: | et | |||
real(kind=wp), | intent(in), | dimension(6) | :: | x |
subroutine add_point_to_trajectory(me,et,x) implicit none class(trajectory),intent(inout) :: me !! the trajectory real(wp),intent(in) :: et real(wp),dimension(6),intent(in) :: x if (.not. allocated(me%et)) then allocate(me%et(1)); me%et(1) = et allocate(me%x(1)); me%x(1) = x(1) allocate(me%y(1)); me%y(1) = x(2) allocate(me%z(1)); me%z(1) = x(3) allocate(me%vx(1)); me%vx(1) = x(4) allocate(me%vy(1)); me%vy(1) = x(5) allocate(me%vz(1)); me%vz(1) = x(6) else me%et = [me%et, et ] ! auto lhs allocation me%x = [me%x, x(1) ] me%y = [me%y, x(2) ] me%z = [me%z, x(3) ] me%vx = [me%vx, x(4) ] me%vy = [me%vy, x(5) ] me%vz = [me%vz, x(6) ] end if end subroutine add_point_to_trajectory