Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_HConfigIter), | intent(in) | :: | HConfig1 | |||
type(ESMF_HConfigIter), | intent(in) | :: | HConfig2 |
function ESMF_HConfigIterEQ(HConfig1, HConfig2) ! ! !RETURN VALUE: logical :: ESMF_HConfigIterEQ ! !ARGUMENTS: type(ESMF_HConfigIter), intent(in) :: HConfig1 type(ESMF_HConfigIter), intent(in) :: HConfig2 ! !DESCRIPTION: ! Test if both {\tt HConfig1} and {\tt HConfig2} alias the same ! ESMF HConfigIter object. ! !EOPI !------------------------------------------------------------------------------- ESMF_INIT_TYPE init1, init2 type(ESMF_Logical) :: isEqual ! Use the following logic, rather than "ESMF-INIT-CHECK-DEEP", to gain ! init checks on both args, and in the case where both are uninitialized, ! to distinguish equality based on uninitialized type (uncreated, ! deleted). ! check inputs init1 = ESMF_HConfigIterGetInit(HConfig1) init2 = ESMF_HConfigIterGetInit(HConfig2) ! initialize return value ESMF_HConfigIterEQ = .false. ! TODO: this line must remain split in two for SunOS f90 8.3 127000-03 if (init1 .eq. ESMF_INIT_CREATED .and. & init2 .eq. ESMF_INIT_CREATED) then ! Call into the C++ interface to determine equality ! For now use HConfig equality since HConfig iterators and HConfig are ! stored in the same class call c_ESMC_HConfigEqual(HConfig1, HConfig2, isEqual) ! Translate from ESMF logical to Fortran logical ESMF_HConfigIterEQ = isEqual endif end function ESMF_HConfigIterEQ