register_segment_to_list Subroutine

public pure subroutine register_segment_to_list(segment_list, segment, k, ierr)

This procedure registers given segment_t value to segment_t type array, increments counter of the actual size of the array, and initializes temporary variable.

Arguments

Type IntentOptional Attributes Name
type(segment_t), intent(inout) :: segment_list(:)
type(segment_t), intent(inout) :: segment
integer, intent(inout) :: k
integer, intent(inout) :: ierr

Source Code

   pure subroutine register_segment_to_list(segment_list, segment, k, ierr)
      use :: forgex_parameters_m, only: SEGMENT_REGISTERED, SEGMENT_REJECTED
      implicit none
      type(segment_t), intent(inout) :: segment_list(:)
      type(segment_t), intent(inout) :: segment
      integer, intent(inout) :: k
      integer, intent(inout) :: ierr

      if (segment%validate() .and. k <= size(segment_list)-1) then
         k = k + 1

         segment_list(k) = segment ! register

         ierr = SEGMENT_REGISTERED
      else
         ierr = SEGMENT_REJECTED
      end if
   end subroutine register_segment_to_list