append a single value to the growing 2d array.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(grw_logical2darray_type) | :: | me |
array to append the value to |
|||
logical, | intent(in) | :: | val |
value to append |
||
integer, | intent(in) | :: | pos1 |
position in first dimension (cannot grow) |
||
integer, | intent(out), | optional | :: | pos2 |
the position in second dimension the element were added to |
|
integer, | intent(in), | optional | :: | length |
optional length to expand the array |
subroutine append_singlega2d_logical(me, val, pos1, pos2, length) ! -------------------------------------------------------------------------- !> array to append the value to type(grw_logical2darray_type) :: me !> value to append logical, intent(in) :: val !> position in first dimension (cannot grow) integer, intent(in) :: pos1 !> optional length to expand the array integer, intent(in), optional :: length !> the position in second dimension the element were added to integer, intent(out), optional :: pos2 ! -------------------------------------------------------------------------- integer :: newpos ! -------------------------------------------------------------------------- newpos = me%nvals + 1 if (newpos > me%containersize) then ! expand the array, if its boundary is reached call expand( me = me, length = length ) end if me%val(pos1, newpos) = val if( present( pos2 ) ) pos2 = newpos end subroutine append_singlega2d_logical