set_a_option Subroutine

private pure subroutine set_a_option(self, val, delimiter)

Set option data value (array).

Arguments

TypeIntentOptionalAttributesName
class(option), intent(inout) :: self

Option data.

class(*), intent(in) :: val(1:)

Value.

character, intent(in), optional :: delimiter

Delimiter used for separating values.


Calls

proc~~set_a_option~~CallsGraph proc~set_a_option set_a_option str str proc~set_a_option->str

Contents

Source Code


Source Code

  pure subroutine set_a_option(self, val, delimiter)
  !< Set option data value (array).
  class(option), intent(inout)        :: self      !< Option data.
  class(*),      intent(in)           :: val(1:)   !< Value.
  character(*),  intent(in), optional :: delimiter !< Delimiter used for separating values.
  character(len=:), allocatable       :: dlm       !< Dummy string for delimiter handling.
  integer(I4P)                        :: v         !< Counter.

  dlm = ' ' ; if (present(delimiter)) dlm = delimiter
  self%ovals = ''
  select type(val)
#ifdef _R16P
  type is(real(R16P))
    do v=1, size(val, dim=1)
      self%ovals = self%ovals//dlm//trim(str(n=val(v)))
    enddo
    self%ovals = self%ovals%strip()
#endif
  type is(real(R8P))
    do v=1, size(val, dim=1)
      self%ovals = self%ovals//dlm//trim(str(n=val(v)))
    enddo
    self%ovals = self%ovals%strip()
  type is(real(R4P))
    do v=1, size(val, dim=1)
      self%ovals = self%ovals//dlm//trim(str(n=val(v)))
    enddo
    self%ovals = self%ovals%strip()
  type is(integer(I8P))
    do v=1, size(val, dim=1)
      self%ovals = self%ovals//dlm//trim(str(n=val(v)))
    enddo
    self%ovals = self%ovals%strip()
  type is(integer(I4P))
    do v=1, size(val, dim=1)
      self%ovals = self%ovals//dlm//trim(str(n=val(v)))
    enddo
    self%ovals = self%ovals%strip()
  type is(integer(I2P))
    do v=1, size(val, dim=1)
      self%ovals = self%ovals//dlm//trim(str(n=val(v)))
    enddo
    self%ovals = self%ovals%strip()
  type is(integer(I1P))
    do v=1, size(val, dim=1)
      self%ovals = self%ovals//dlm//trim(str(n=val(v)))
    enddo
    self%ovals = self%ovals%strip()
  type is(logical)
    do v=1, size(val, dim=1)
      self%ovals = self%ovals//dlm//trim(str(n=val(v)))
    enddo
    self%ovals = self%ovals%strip()
  type is(character(*))
    do v=1, size(val, dim=1)
      self%ovals = self%ovals//dlm//trim(val(v))
    enddo
    self%ovals = self%ovals%strip()
  endselect
  endsubroutine set_a_option