anchor.diff:    public :: IEEE_COPY_SIGN
   
     ! IEEE_UNORDERED
  -
  -#define UNORDERED_MACRO(A,B) \
  -  elemental logical function \
  -    gfortran_ieee_unordered_/**/A/**/_/**/B (X,Y) ; \
  -      real(kind = A), intent(in) :: X ; \
  -      real(kind = B), intent(in) :: Y ; \
  -  end function
  -
     interface
  -UNORDERED_MACRO(4,4)
  -UNORDERED_MACRO(4,8)
  -#ifdef HAVE_GFC_REAL_10
  -UNORDERED_MACRO(4,10)
  -#endif
  -#ifdef HAVE_GFC_REAL_16
  -UNORDERED_MACRO(4,16)
  -#endif
  -UNORDERED_MACRO(8,4)
  -UNORDERED_MACRO(8,8)
  -#ifdef HAVE_GFC_REAL_10
  -UNORDERED_MACRO(8,10)
  -#endif
  -#ifdef HAVE_GFC_REAL_16
  -UNORDERED_MACRO(8,16)
  -#endif
  -#ifdef HAVE_GFC_REAL_10
  -UNORDERED_MACRO(10,4)
  -UNORDERED_MACRO(10,8)
  -UNORDERED_MACRO(10,10)
  -#ifdef HAVE_GFC_REAL_16
  -UNORDERED_MACRO(10,16)
  -#endif
  -#endif
  -#ifdef HAVE_GFC_REAL_16
  -UNORDERED_MACRO(16,4)
  -UNORDERED_MACRO(16,8)
  -#ifdef HAVE_GFC_REAL_10
  -UNORDERED_MACRO(16,10)
  -#endif
  -UNORDERED_MACRO(16,16)
  +    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
   
  
positive.code:   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)
  #endif
    end interface
  
  
negative.code:   end interface
  
  ! IEEE_SUPPORT_* generic functions
  #if defined(HAVE_GFC_REAL_10) && defined(HAVE_GFC_REAL_16)
    interface IEEE_SUPPORT_DATATYPE ; module procedure IEEE_SUPPORT_DATATYPE_4, IEEE_SUPPORT_DATATYPE_8, IEEE_SUPPORT_DATATYPE_10, IEEE_SUPPORT_DATATYPE_16, IEEE_SUPPORT_DATATYPE_NOARG ; end interface ;   public :: IEEE_SUPPORT_DATATYPE
    interface IEEE_SUPPORT_DENORMAL ; module procedure IEEE_SUPPORT_DENORMAL_4, IEEE_SUPPORT_DENORMAL_8, IEEE_SUPPORT_DENORMAL_10, IEEE_SUPPORT_DENORMAL_16, IEEE_SUPPORT_DENORMAL_NOARG ; end interface ;   public :: IEEE_SUPPORT_DENORMAL
    interface IEEE_SUPPORT_DIVIDE ; module procedure IEEE_SUPPORT_DIVIDE_4, IEEE_SUPPORT_DIVIDE_8, IEEE_SUPPORT_DIVIDE_10, IEEE_SUPPORT_DIVIDE_16, IEEE_SUPPORT_DIVIDE_NOARG ; end interface ;   public :: IEEE_SUPPORT_DIVIDE
    interface IEEE_SUPPORT_INF ; module procedure IEEE_SUPPORT_INF_4, IEEE_SUPPORT_INF_8, IEEE_SUPPORT_INF_10, IEEE_SUPPORT_INF_16, IEEE_SUPPORT_INF_NOARG ; end interface ;   public :: IEEE_SUPPORT_INF
    interface IEEE_SUPPORT_IO ; module procedure IEEE_SUPPORT_IO_4, IEEE_SUPPORT_IO_8, IEEE_SUPPORT_IO_10, IEEE_SUPPORT_IO_16, IEEE_SUPPORT_IO_NOARG ; end interface ;   public :: IEEE_SUPPORT_IO
    interface IEEE_SUPPORT_NAN ; module procedure IEEE_SUPPORT_NAN_4, IEEE_SUPPORT_NAN_8, IEEE_SUPPORT_NAN_10, IEEE_SUPPORT_NAN_16, IEEE_SUPPORT_NAN_NOARG ; end interface ;   public :: IEEE_SUPPORT_NAN
    interface IEEE_SUPPORT_SQRT ; module procedure IEEE_SUPPORT_SQRT_4, IEEE_SUPPORT_SQRT_8, IEEE_SUPPORT_SQRT_10, IEEE_SUPPORT_SQRT_16, IEEE_SUPPORT_SQRT_NOARG ; end interface ;   public :: IEEE_SUPPORT_SQRT
    interface IEEE_SUPPORT_STANDARD ; module procedure IEEE_SUPPORT_STANDARD_4, IEEE_SUPPORT_STANDARD_8, IEEE_SUPPORT_STANDARD_10, IEEE_SUPPORT_STANDARD_16, IEEE_SUPPORT_STANDARD_NOARG ; end interface ;   public :: IEEE_SUPPORT_STANDARD
  #elif defined(HAVE_GFC_REAL_10)
    interface IEEE_SUPPORT_DATATYPE ; module procedure IEEE_SUPPORT_DATATYPE_4, IEEE_SUPPORT_DATATYPE_8, IEEE_SUPPORT_DATATYPE_10, IEEE_SUPPORT_DATATYPE_NOARG ; end interface ;   public :: IEEE_SUPPORT_DATATYPE
    interface IEEE_SUPPORT_DENORMAL ; module procedure IEEE_SUPPORT_DENORMAL_4, IEEE_SUPPORT_DENORMAL_8, IEEE_SUPPORT_DENORMAL_10, IEEE_SUPPORT_DENORMAL_NOARG ; end interface ;   public :: IEEE_SUPPORT_DENORMAL
    interface IEEE_SUPPORT_DIVIDE ; module procedure IEEE_SUPPORT_DIVIDE_4, IEEE_SUPPORT_DIVIDE_8, IEEE_SUPPORT_DIVIDE_10, IEEE_SUPPORT_DIVIDE_NOARG ; end interface ;   public :: IEEE_SUPPORT_DIVIDE
    interface IEEE_SUPPORT_INF ; module procedure IEEE_SUPPORT_INF_4, IEEE_SUPPORT_INF_8, IEEE_SUPPORT_INF_10, IEEE_SUPPORT_INF_NOARG ; end interface ;   public :: IEEE_SUPPORT_INF
    interface IEEE_SUPPORT_IO ; module procedure IEEE_SUPPORT_IO_4, IEEE_SUPPORT_IO_8, IEEE_SUPPORT_IO_10, IEEE_SUPPORT_IO_NOARG ; end interface ;   public :: IEEE_SUPPORT_IO
    interface IEEE_SUPPORT_NAN ; module procedure IEEE_SUPPORT_NAN_4, IEEE_SUPPORT_NAN_8, IEEE_SUPPORT_NAN_10, IEEE_SUPPORT_NAN_NOARG ; end interface ;   public :: IEEE_SUPPORT_NAN
    interface IEEE_SUPPORT_SQRT ; module procedure IEEE_SUPPORT_SQRT_4, IEEE_SUPPORT_SQRT_8, IEEE_SUPPORT_SQRT_10, IEEE_SUPPORT_SQRT_NOARG ; end interface ;   public :: IEEE_SUPPORT_SQRT
    interface IEEE_SUPPORT_STANDARD ; module procedure IEEE_SUPPORT_STANDARD_4, IEEE_SUPPORT_STANDARD_8, IEEE_SUPPORT_STANDARD_10, IEEE_SUPPORT_STANDARD_NOARG ; end interface ;   public :: IEEE_SUPPORT_STANDARD
  #elif defined(HAVE_GFC_REAL_16)
    interface IEEE_SUPPORT_DATATYPE ; module procedure IEEE_SUPPORT_DATATYPE_4, IEEE_SUPPORT_DATATYPE_8, IEEE_SUPPORT_DATATYPE_16, IEEE_SUPPORT_DATATYPE_NOARG ; end interface ;   public :: IEEE_SUPPORT_DATATYPE
    interface IEEE_SUPPORT_DENORMAL ; module procedure IEEE_SUPPORT_DENORMAL_4, IEEE_SUPPORT_DENORMAL_8, IEEE_SUPPORT_DENORMAL_16, IEEE_SUPPORT_DENORMAL_NOARG ; end interface ;   public :: IEEE_SUPPORT_DENORMAL
    interface IEEE_SUPPORT_DIVIDE ; module procedure IEEE_SUPPORT_DIVIDE_4, IEEE_SUPPORT_DIVIDE_8, IEEE_SUPPORT_DIVIDE_16, IEEE_SUPPORT_DIVIDE_NOARG ; end interface ;   public :: IEEE_SUPPORT_DIVIDE
    interface IEEE_SUPPORT_INF ; module procedure IEEE_SUPPORT_INF_4, IEEE_SUPPORT_INF_8, IEEE_SUPPORT_INF_16, IEEE_SUPPORT_INF_NOARG ; end interface ;   public :: IEEE_SUPPORT_INF
    interface IEEE_SUPPORT_IO ; module procedure IEEE_SUPPORT_IO_4, IEEE_SUPPORT_IO_8, IEEE_SUPPORT_IO_16, IEEE_SUPPORT_IO_NOARG ; end interface ;   public :: IEEE_SUPPORT_IO
    interface IEEE_SUPPORT_NAN ; module procedure IEEE_SUPPORT_NAN_4, IEEE_SUPPORT_NAN_8, IEEE_SUPPORT_NAN_16, IEEE_SUPPORT_NAN_NOARG ; end interface ;   public :: IEEE_SUPPORT_NAN
    interface IEEE_SUPPORT_SQRT ; module procedure IEEE_SUPPORT_SQRT_4, IEEE_SUPPORT_SQRT_8, IEEE_SUPPORT_SQRT_16, IEEE_SUPPORT_SQRT_NOARG ; end interface ;   public :: IEEE_SUPPORT_SQRT
    interface IEEE_SUPPORT_STANDARD ; module procedure IEEE_SUPPORT_STANDARD_4, IEEE_SUPPORT_STANDARD_8, IEEE_SUPPORT_STANDARD_16, IEEE_SUPPORT_STANDARD_NOARG ; end interface ;   public :: IEEE_SUPPORT_STANDARD
  #else
    interface IEEE_SUPPORT_DATATYPE ; module procedure IEEE_SUPPORT_DATATYPE_4, IEEE_SUPPORT_DATATYPE_8, IEEE_SUPPORT_DATATYPE_NOARG ; end interface ;   public :: IEEE_SUPPORT_DATATYPE
    interface IEEE_SUPPORT_DENORMAL ; module procedure IEEE_SUPPORT_DENORMAL_4, IEEE_SUPPORT_DENORMAL_8, IEEE_SUPPORT_DENORMAL_NOARG ; end interface ;   public :: IEEE_SUPPORT_DENORMAL
    interface IEEE_SUPPORT_DIVIDE ; module procedure IEEE_SUPPORT_DIVIDE_4, IEEE_SUPPORT_DIVIDE_8, IEEE_SUPPORT_DIVIDE_NOARG ; end interface ;   public :: IEEE_SUPPORT_DIVIDE
    interface IEEE_SUPPORT_INF ; module procedure IEEE_SUPPORT_INF_4, IEEE_SUPPORT_INF_8, IEEE_SUPPORT_INF_NOARG ; end interface ;   public :: IEEE_SUPPORT_INF
    interface IEEE_SUPPORT_IO ; module procedure IEEE_SUPPORT_IO_4, IEEE_SUPPORT_IO_8, IEEE_SUPPORT_IO_NOARG ; end interface ;   public :: IEEE_SUPPORT_IO
    interface IEEE_SUPPORT_NAN ; module procedure IEEE_SUPPORT_NAN_4, IEEE_SUPPORT_NAN_8, IEEE_SUPPORT_NAN_NOARG ; end interface ;   public :: IEEE_SUPPORT_NAN
    interface IEEE_SUPPORT_SQRT ; module procedure IEEE_SUPPORT_SQRT_4, IEEE_SUPPORT_SQRT_8, IEEE_SUPPORT_SQRT_NOARG ; end interface ;   public :: IEEE_SUPPORT_SQRT
    interface IEEE_SUPPORT_STANDARD ; module procedure IEEE_SUPPORT_STANDARD_4, IEEE_SUPPORT_STANDARD_8, IEEE_SUPPORT_STANDARD_NOARG ; end interface ;   public :: IEEE_SUPPORT_STANDARD
  #endif
  
  contains
  
  