public subroutine append_clean_flags_array(flags_array, new_flags_array)
Append new flags to existing flags, removing duplicates and empty flags (array version)
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
type(string_t),
|
intent(inout), |
|
allocatable
|
:: |
flags_array(:) |
|
type(string_t),
|
intent(in) |
|
|
:: |
new_flags_array(:) |
|
Variables
Type |
Visibility | Attributes |
|
Name |
| Initial | |
integer,
|
public |
|
:: |
i |
|
|
|
Source Code
subroutine append_clean_flags_array(flags_array, new_flags_array)
type(string_t), allocatable, intent(inout) :: flags_array(:)
type(string_t), intent(in) :: new_flags_array(:)
integer :: i
do i = 1, size(new_flags_array)
if (string_array_contains(new_flags_array(i)%s, flags_array)) cycle
! Filter out empty flags and arguments
if (new_flags_array(i)%s == "") cycle
if (trim(new_flags_array(i)%s) == "-l") cycle
if (trim(new_flags_array(i)%s) == "-L") cycle
if (trim(new_flags_array(i)%s) == "-I") cycle
if (trim(new_flags_array(i)%s) == "-J") cycle
if (trim(new_flags_array(i)%s) == "-M") cycle
flags_array = [flags_array, new_flags_array(i)]
end do
end subroutine append_clean_flags_array