anchor.diff:    public :: IEEE_NEXT_AFTER
   
     ! IEEE_REM
  -
  -#define REM_MACRO(RES,A,B) \
  -  elemental real(kind = RES) function \
  -    gfortran_ieee_rem_/**/A/**/_/**/B (X,Y) ; \
  -      real(kind = A), intent(in) :: X ; \
  -      real(kind = B), intent(in) :: Y ; \
  -  end function
  -
     interface
  -REM_MACRO(4,4,4)
  -REM_MACRO(8,4,8)
  -#ifdef HAVE_GFC_REAL_10
  -REM_MACRO(10,4,10)
  -#endif
  -#ifdef HAVE_GFC_REAL_16
  -REM_MACRO(16,4,16)
  -#endif
  -REM_MACRO(8,8,4)
  -REM_MACRO(8,8,8)
  -#ifdef HAVE_GFC_REAL_10
  -REM_MACRO(10,8,10)
  -#endif
  -#ifdef HAVE_GFC_REAL_16
  -REM_MACRO(16,8,16)
  -#endif
  -#ifdef HAVE_GFC_REAL_10
  -REM_MACRO(10,10,4)
  -REM_MACRO(10,10,8)
  -REM_MACRO(10,10,10)
  -#ifdef HAVE_GFC_REAL_16
  -REM_MACRO(16,10,16)
  -#endif
  -#endif
  -#ifdef HAVE_GFC_REAL_16
  -REM_MACRO(16,16,4)
  -REM_MACRO(16,16,8)
  -#ifdef HAVE_GFC_REAL_10
  -REM_MACRO(16,16,10)
  -#endif
  -REM_MACRO(16,16,16)
  +    elemental real(kind = 4) function gfortran_ieee_rem_4_4 (X,Y)
  +      real(kind = 4), intent(in) :: X
  +      real(kind = 4), intent(in) :: Y
  +    end function
  +    elemental real(kind = 8) function gfortran_ieee_rem_4_8 (X,Y)
  +      real(kind = 4), intent(in) :: X
  +      real(kind = 8), intent(in) :: Y
  +    end function
  +#ifdef HAVE_GFC_REAL_10
  +  elemental real(kind = 10) function gfortran_ieee_rem_4_10 (X,Y)
  +    real(kind = 4), intent(in) :: X
  +    real(kind = 10), intent(in) :: Y
  +  end function
  +#endif
  +#ifdef HAVE_GFC_REAL_16
  +  elemental real(kind = 16) function gfortran_ieee_rem_4_16 (X,Y)
  +    real(kind = 4), intent(in) :: X
  +    real(kind = 16), intent(in) :: Y
  +  end function
  +#endif
  +  elemental real(kind = 8) function gfortran_ieee_rem_8_4 (X,Y)
  +    real(kind = 8), intent(in) :: X
  +    real(kind = 4), intent(in) :: Y
  +  end function
  +  elemental real(kind = 8) function gfortran_ieee_rem_8_8 (X,Y)
  +    real(kind = 8), intent(in) :: X
  +    real(kind = 8), intent(in) :: Y
  +  end function
  +#ifdef HAVE_GFC_REAL_10
  +elemental real(kind = 10) function gfortran_ieee_rem_8_10 (X,Y)
  +  real(kind = 8), intent(in) :: X
  +  real(kind = 10), intent(in) :: Y
  +end function
  +#endif
  +#ifdef HAVE_GFC_REAL_16
  +  elemental real(kind = 16) function gfortran_ieee_rem_8_16 (X,Y)
  +    real(kind = 8), intent(in) :: X
  +    real(kind = 16), intent(in) :: Y
  +  end function
  +#endif
  +#ifdef HAVE_GFC_REAL_10
  +  elemental real(kind = 10) function gfortran_ieee_rem_10_4 (X,Y)
  +    real(kind = 10), intent(in) :: X
  +    real(kind = 4), intent(in) :: Y
  +  end function
  +  elemental real(kind = 10) function gfortran_ieee_rem_10_8 (X,Y)
  +    real(kind = 10), intent(in) :: X
  +    real(kind = 8), intent(in) :: Y
  +  end function
  +  elemental real(kind = 10) function gfortran_ieee_rem_10_10 (X,Y)
  +    real(kind = 10), intent(in) :: X
  +    real(kind = 10), intent(in) :: Y
  +  end function
  +#ifdef HAVE_GFC_REAL_16
  +  elemental real(kind = 10) function gfortran_ieee_rem_10_16 (X,Y)
  +    real(kind = 10), intent(in) :: X
  +    real(kind = 16), intent(in) :: Y
  +  end function
  +#endif
  +#endif
  +#ifdef HAVE_GFC_REAL_16
  +  elemental real(kind = 16) function gfortran_ieee_rem_16_4 (X,Y)
  +    real(kind = 16), intent(in) :: X
  +    real(kind = 4), intent(in) :: Y
  +  end function
  +  elemental real(kind = 16) function gfortran_ieee_rem_16_8 (X,Y)
  +    real(kind = 16), intent(in) :: X
  +    real(kind = 8), intent(in) :: Y
  +  end function
  +#ifdef HAVE_GFC_REAL_10
  +  elemental real(kind = 16) function gfortran_ieee_rem_16_10 (X,Y)
  +    real(kind = 16), intent(in) :: X
  +    real(kind = 10), intent(in) :: Y
  +  end function
  +#endif
  +  elemental real(kind = 16) function gfortran_ieee_rem_16_16 (X,Y)
  +    real(kind = 16), intent(in) :: X
  +    real(kind = 16), intent(in) :: Y
  +  end function
   #endif
     end interface
   
  
positive.code:   public :: IEEE_LOGB
  
    ! IEEE_NEXT_AFTER
  
  #define NEXT_AFTER_MACRO(A,B) \
    elemental real(kind = A) function \
      gfortran_ieee_next_after_/**/A/**/_/**/B (X,Y) ; \
        real(kind = A), intent(in) :: X ; \
        real(kind = B), intent(in) :: Y ; \
    end function
  
    interface
  NEXT_AFTER_MACRO(4,4)
  NEXT_AFTER_MACRO(4,8)
  #ifdef HAVE_GFC_REAL_10
  NEXT_AFTER_MACRO(4,10)
  #endif
  #ifdef HAVE_GFC_REAL_16
  NEXT_AFTER_MACRO(4,16)
  #endif
  NEXT_AFTER_MACRO(8,4)
  NEXT_AFTER_MACRO(8,8)
  #ifdef HAVE_GFC_REAL_10
  NEXT_AFTER_MACRO(8,10)
  #endif
  #ifdef HAVE_GFC_REAL_16
  NEXT_AFTER_MACRO(8,16)
  #endif
  #ifdef HAVE_GFC_REAL_10
  NEXT_AFTER_MACRO(10,4)
  NEXT_AFTER_MACRO(10,8)
  NEXT_AFTER_MACRO(10,10)
  #ifdef HAVE_GFC_REAL_16
  NEXT_AFTER_MACRO(10,16)
  #endif
  #endif
  #ifdef HAVE_GFC_REAL_16
  NEXT_AFTER_MACRO(16,4)
  NEXT_AFTER_MACRO(16,8)
  #ifdef HAVE_GFC_REAL_10
  NEXT_AFTER_MACRO(16,10)
  #endif
  NEXT_AFTER_MACRO(16,16)
  #endif
    end interface
  
  
negative.code:   public :: IEEE_COPY_SIGN
  
    ! IEEE_UNORDERED
    interface
      elemental logical function gfortran_ieee_unordered_4_4 (X,Y)
        real(kind = 4), intent(in) :: X
        real(kind = 4), intent(in) :: Y
      end function
      elemental logical function gfortran_ieee_unordered_4_8 (X,Y)
        real(kind = 4), intent(in) :: X
        real(kind = 8), intent(in) :: Y
      end function
  #ifdef HAVE_GFC_REAL_10
    elemental logical function gfortran_ieee_unordered_4_10 (X,Y)
      real(kind = 4), intent(in) :: X
      real(kind = 10), intent(in) :: Y
    end function
  #endif
  #ifdef HAVE_GFC_REAL_16
    elemental logical function gfortran_ieee_unordered_4_16 (X,Y)
      real(kind = 4), intent(in) :: X
      real(kind = 16), intent(in) :: Y
    end function
  #endif
    elemental logical function gfortran_ieee_unordered_8_4 (X,Y)
      real(kind = 8), intent(in) :: X
      real(kind = 4), intent(in) :: Y
    end function
    elemental logical function gfortran_ieee_unordered_8_8 (X,Y)
      real(kind = 8), intent(in) :: X
      real(kind = 8), intent(in) :: Y
    end function
  #ifdef HAVE_GFC_REAL_10
    elemental logical function gfortran_ieee_unordered_8_10 (X,Y)
      real(kind = 8), intent(in) :: X
      real(kind = 10), intent(in) :: Y
    end function
  #endif
  #ifdef HAVE_GFC_REAL_16
    elemental logical function gfortran_ieee_unordered_8_16 (X,Y)
      real(kind = 8), intent(in) :: X
      real(kind = 16), intent(in) :: Y
    end function
  #endif
  #ifdef HAVE_GFC_REAL_10
    elemental logical function gfortran_ieee_unordered_10_4 (X,Y)
      real(kind = 10), intent(in) :: X
      real(kind = 4), intent(in) :: Y
    end function
    elemental logical function gfortran_ieee_unordered_10_8 (X,Y)
      real(kind = 10), intent(in) :: X
      real(kind = 8), intent(in) :: Y
    end function
    elemental logical function gfortran_ieee_unordered_10_10 (X,Y)
      real(kind = 10), intent(in) :: X
      real(kind = 10), intent(in) :: Y
    end function
  #ifdef HAVE_GFC_REAL_16
    elemental logical function gfortran_ieee_unordered_10_16 (X,Y)
      real(kind = 10), intent(in) :: X
      real(kind = 16), intent(in) :: Y
    end function
  #endif
  #endif
  #ifdef HAVE_GFC_REAL_16
    elemental logical function gfortran_ieee_unordered_16_4 (X,Y)
      real(kind = 16), intent(in) :: X
      real(kind = 4), intent(in) :: Y
    end function
    elemental logical function gfortran_ieee_unordered_16_8 (X,Y)
      real(kind = 16), intent(in) :: X
      real(kind = 8), intent(in) :: Y
    end function
  #ifdef HAVE_GFC_REAL_10
    elemental logical function gfortran_ieee_unordered_16_10 (X,Y)
      real(kind = 16), intent(in) :: X
      real(kind = 10), intent(in) :: Y
    end function
  #endif
    elemental logical function gfortran_ieee_unordered_16_16 (X,Y)
      real(kind = 16), intent(in) :: X
      real(kind = 16), intent(in) :: Y
    end function
  #endif
    end interface
  
  