Returns true if the two keys are equal.
Allowing a key to be an integer or a character string (can be case sensitive or not), or alternately, a user-defined key_class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(list), | intent(in) | :: | me | |||
| class(*), | intent(in) | :: | k1 | |||
| class(*), | intent(in) | :: | k2 |
pure function keys_equal(me,k1,k2) implicit none class(list),intent(in) :: me class(*),intent(in) :: k1 class(*),intent(in) :: k2 logical :: keys_equal keys_equal = .false. if (same_type_as(k1,k2)) then select type (k1) class is (key_class) select type (k2) class is (key_class) keys_equal = k1 == k2 end select type is (integer) select type (k2) type is (integer) keys_equal = k1 == k2 end select type is (character(len=*)) select type (k2) type is (character(len=*)) if (me%case_sensitive) then keys_equal = k1 == k2 else keys_equal = uppercase(k1) == uppercase(k2) end if end select end select end if end function keys_equal