Index: Makefile.am
===================================================================
--- Makefile.am	(revision 243794)
+++ Makefile.am	(working copy)
@@ -123,8 +123,6 @@ intrinsics/extends_type_of.c \
 intrinsics/fnum.c \
 intrinsics/ierrno.c \
 intrinsics/ishftc.c \
-intrinsics/iso_c_generated_procs.c \
-intrinsics/iso_c_binding.c \
 intrinsics/malloc.c \
 intrinsics/mvbits.c \
 intrinsics/move_alloc.c \
Index: gfortran.map
===================================================================
--- gfortran.map	(revision 243794)
+++ gfortran.map	(working copy)
@@ -1006,27 +1006,6 @@ GFORTRAN_1.0 {
     _gfortran_unpack0_char;
     _gfortran_unpack1;
     _gfortran_unpack1_char;
-    __iso_c_binding_c_f_pointer;
-    __iso_c_binding_c_f_pointer_d0;
-    __iso_c_binding_c_f_pointer_i1;
-    __iso_c_binding_c_f_pointer_i2;
-    __iso_c_binding_c_f_pointer_i4;
-    __iso_c_binding_c_f_pointer_i8;
-    __iso_c_binding_c_f_pointer_i16;
-    __iso_c_binding_c_f_pointer_r4;
-    __iso_c_binding_c_f_pointer_r8;
-    __iso_c_binding_c_f_pointer_r10;
-    __iso_c_binding_c_f_pointer_r16;
-    __iso_c_binding_c_f_pointer_c4;
-    __iso_c_binding_c_f_pointer_c8;
-    __iso_c_binding_c_f_pointer_c10;
-    __iso_c_binding_c_f_pointer_c16;
-    __iso_c_binding_c_f_pointer_s0;
-    __iso_c_binding_c_f_pointer_l1;
-    __iso_c_binding_c_f_pointer_l2;
-    __iso_c_binding_c_f_pointer_l4;
-    __iso_c_binding_c_f_pointer_l8;
-    __iso_c_binding_c_f_pointer_u0;
   local:
     *;
 };
Index: intrinsics/iso_c_binding.c
===================================================================
--- intrinsics/iso_c_binding.c	(revision 243794)
+++ intrinsics/iso_c_binding.c	(nonexistent)
@@ -1,189 +0,0 @@
-/* Implementation of the ISO_C_BINDING library helper functions.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
-   Contributed by Christopher Rickett.
-
-This file is part of the GNU Fortran runtime library (libgfortran).
-
-Libgfortran is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public
-License as published by the Free Software Foundation; either
-version 3 of the License, or (at your option) any later version.
-
-Libgfortran is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-
-/* Implement the functions and subroutines provided by the intrinsic
-   iso_c_binding module.  */
-
-#include "libgfortran.h"
-#include "iso_c_binding.h"
-
-#include <stdlib.h>
-
-
-/* Set the fields of a Fortran pointer descriptor to point to the
-   given C address.  It uses c_f_pointer_u0 for the common
-   fields, and will set up the information necessary if this C address
-   is to an array (i.e., offset, type, element size).  The parameter
-   c_ptr_in represents the C address to have Fortran point to.  The
-   parameter f_ptr_out is the Fortran pointer to associate with the C
-   address.  The parameter shape is a one-dimensional array of integers
-   specifying the upper bound(s) of the array pointed to by the given C
-   address, if applicable.  The shape parameter is optional in Fortran,
-   which will cause it to come in here as NULL.  The parameter type is
-   the type of the data being pointed to (i.e.,libgfortran.h). The
-   elem_size parameter is the size, in bytes, of the data element being
-   pointed to.  If the address is for an array, then the size needs to
-   be the size of a single element (i.e., for an array of doubles, it
-   needs to be the number of bytes for the size of one double).  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer) (void *c_ptr_in,
-                                    gfc_array_void *f_ptr_out,
-                                    const array_t *shape,
-                                    int type, int elemSize)
-{
-  if (shape != NULL)
-    {
-      f_ptr_out->offset = 0;
-
-      /* Set the necessary dtype field for all pointers.  */
-      f_ptr_out->dtype = 0;
-
-      /* Put in the element size.  */
-      f_ptr_out->dtype = f_ptr_out->dtype | (elemSize << GFC_DTYPE_SIZE_SHIFT);
-
-      /* Set the data type (e.g., BT_INTEGER).  */
-      f_ptr_out->dtype = f_ptr_out->dtype | (type << GFC_DTYPE_TYPE_SHIFT);
-    }
-  
-  /* Use the generic version of c_f_pointer to set common fields.  */
-  ISO_C_BINDING_PREFIX (c_f_pointer_u0) (c_ptr_in, f_ptr_out, shape);
-}
-
-
-/* A generic function to set the common fields of all descriptors, no
-   matter whether it's to a scalar or an array.  Access is via the array
-   descrptor macros. Parameter shape is a rank 1 array of integers
-   containing the upper bound of each dimension of what f_ptr_out
-   points to.  The length of this array must be EXACTLY the rank of
-   what f_ptr_out points to, as required by the draft (J3/04-007).  If
-   f_ptr_out points to a scalar, then this parameter will be NULL.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_u0) (void *c_ptr_in,
-                                       gfc_array_void *f_ptr_out,
-                                       const array_t *shape)
-{
-  int i = 0;
-  int shapeSize = 0;
-
-  GFC_DESCRIPTOR_DATA (f_ptr_out) = c_ptr_in;
-
-  if (shape != NULL)
-    {
-      index_type source_stride, size;
-      index_type str = 1;
-      char *p;
-
-      f_ptr_out->offset = str;
-      shapeSize = 0;
-      p = shape->base_addr;
-      size = GFC_DESCRIPTOR_SIZE(shape);
-
-      source_stride = GFC_DESCRIPTOR_STRIDE_BYTES(shape,0);
-
-      /* shape's length (rank of the output array) */
-      shapeSize = GFC_DESCRIPTOR_EXTENT(shape,0);
-      for (i = 0; i < shapeSize; i++)
-        {
-	  index_type ub;
-
-          /* Have to allow for the SHAPE array to be any valid kind for
-             an INTEGER type.  */
-	  switch (size)
-	    {
-#ifdef HAVE_GFC_INTEGER_1
-	      case 1:
-		ub = *((GFC_INTEGER_1 *) p);
-		break;
-#endif
-#ifdef HAVE_GFC_INTEGER_2
-	      case 2:
-		ub = *((GFC_INTEGER_2 *) p);
-		break;
-#endif
-#ifdef HAVE_GFC_INTEGER_4
-	      case 4:
-		ub = *((GFC_INTEGER_4 *) p);
-		break;
-#endif
-#ifdef HAVE_GFC_INTEGER_8
-	      case 8:
-		ub = *((GFC_INTEGER_8 *) p);
-		break;
-#endif
-#ifdef HAVE_GFC_INTEGER_16
-	      case 16:
-		ub = *((GFC_INTEGER_16 *) p);
-		break;
-#endif
-	      default:
-		internal_error (NULL, "c_f_pointer_u0: Invalid size");
-	    }
-	  p += source_stride;
-
-	  if (i != 0)
-	    {
-	      str = str * GFC_DESCRIPTOR_EXTENT(f_ptr_out,i-1);
-	      f_ptr_out->offset += str;
-	    }
-
-          /* Lower bound is 1, as specified by the draft.  */
-	  GFC_DIMENSION_SET(f_ptr_out->dim[i], 1, ub, str);
-        }
-
-      f_ptr_out->offset *= -1;
-
-      /* All we know is the rank, so set it, leaving the rest alone.
-         Make NO assumptions about the state of dtype coming in!  If we
-         shift right by TYPE_SHIFT bits we'll throw away the existing
-         rank.  Then, shift left by the same number to shift in zeros
-         and or with the new rank.  */
-      f_ptr_out->dtype = ((f_ptr_out->dtype >> GFC_DTYPE_TYPE_SHIFT)
-                           << GFC_DTYPE_TYPE_SHIFT) | shapeSize;
-    }
-}
-
-
-/* Sets the descriptor fields for a Fortran pointer to a derived type,
-   using c_f_pointer_u0 for the majority of the work.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_d0) (void *c_ptr_in,
-                                       gfc_array_void *f_ptr_out,
-                                       const array_t *shape)
-{
-  /* Set the common fields.  */
-  ISO_C_BINDING_PREFIX (c_f_pointer_u0) (c_ptr_in, f_ptr_out, shape);
-
-  /* Preserve the size and rank bits, but reset the type.  */
-  if (shape != NULL)
-    {
-      f_ptr_out->dtype = f_ptr_out->dtype & (~GFC_DTYPE_TYPE_MASK);
-      f_ptr_out->dtype = f_ptr_out->dtype
-			 | (BT_DERIVED << GFC_DTYPE_TYPE_SHIFT);
-    }
-}
Index: intrinsics/iso_c_binding.h
===================================================================
--- intrinsics/iso_c_binding.h	(revision 243794)
+++ intrinsics/iso_c_binding.h	(nonexistent)
@@ -1,55 +0,0 @@
-/* Copyright (C) 2007-2016 Free Software Foundation, Inc.
-   Contributed by Christopher Rickett.
-
-This file is part of the GNU Fortran 95 runtime library (libgfortran).
-
-Libgfortran is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-Libgfortran is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-
-/* Declarations for ISO_C_BINDING library helper functions.  */
-
-#ifndef GFOR_ISO_C_BINDING_H
-#define GFOR_ISO_C_BINDING_H
-
-#include "libgfortran.h"
-
-typedef struct c_ptr
-{
-  void *c_address;
-}
-c_ptr_t;
-
-typedef struct c_funptr
-{
-  void *c_address;
-}
-c_funptr_t;
-
-#define ISO_C_BINDING_PREFIX(a) __iso_c_binding_##a
-
-void ISO_C_BINDING_PREFIX(c_f_pointer)(void *, gfc_array_void *,
-				       const array_t *, int, int);
-
-void ISO_C_BINDING_PREFIX(c_f_pointer_u0) (void *, gfc_array_void *,
-					   const array_t *);
-void ISO_C_BINDING_PREFIX(c_f_pointer_d0) (void *, gfc_array_void *,
-					   const array_t *);
-
-#endif
Index: intrinsics/iso_c_generated_procs.c
===================================================================
--- intrinsics/iso_c_generated_procs.c	(revision 243794)
+++ intrinsics/iso_c_generated_procs.c	(nonexistent)
@@ -1,466 +0,0 @@
-/* Implementation of the ISO_C_BINDING library helper generated functions.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
-   Contributed by Christopher Rickett.
-
-This file is part of the GNU Fortran 95 runtime library (libgfortran).
-
-Libgfortran is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public
-License as published by the Free Software Foundation; either
-version 3 of the License, or (at your option) any later version.
-
-Libgfortran is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-
-#include "libgfortran.h"
-#include "iso_c_binding.h"
-
-
-/* TODO: This file needs to be finished so that a function is provided
-   for all possible type/kind combinations!  */
-
-#ifdef HAVE_GFC_INTEGER_1
-void ISO_C_BINDING_PREFIX (c_f_pointer_i1) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_INTEGER_2
-void ISO_C_BINDING_PREFIX (c_f_pointer_i2) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_INTEGER_4
-void ISO_C_BINDING_PREFIX (c_f_pointer_i4) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_INTEGER_8
-void ISO_C_BINDING_PREFIX (c_f_pointer_i8) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_INTEGER_16
-void ISO_C_BINDING_PREFIX (c_f_pointer_i16) (void *, gfc_array_void *,
-					     const array_t *);
-#endif
-
-#ifdef HAVE_GFC_REAL_4
-void ISO_C_BINDING_PREFIX (c_f_pointer_r4) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_REAL_8
-void ISO_C_BINDING_PREFIX (c_f_pointer_r8) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_REAL_10
-void ISO_C_BINDING_PREFIX (c_f_pointer_r10) (void *, gfc_array_void *,
-					     const array_t *);
-#endif
-
-#ifdef HAVE_GFC_REAL_16
-void ISO_C_BINDING_PREFIX (c_f_pointer_r16) (void *, gfc_array_void *,
-					     const array_t *);
-#endif
-
-#ifdef HAVE_GFC_COMPLEX_4
-void ISO_C_BINDING_PREFIX (c_f_pointer_c4) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_COMPLEX_8
-void ISO_C_BINDING_PREFIX (c_f_pointer_c8) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_COMPLEX_10
-void ISO_C_BINDING_PREFIX (c_f_pointer_c10) (void *, gfc_array_void *,
-					     const array_t *);
-#endif
-
-#ifdef HAVE_GFC_COMPLEX_16
-void ISO_C_BINDING_PREFIX (c_f_pointer_c16) (void *, gfc_array_void *,
-					     const array_t *);
-#endif
-
-#ifdef GFC_DEFAULT_CHAR
-void ISO_C_BINDING_PREFIX (c_f_pointer_s0) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_LOGICAL_1
-void ISO_C_BINDING_PREFIX (c_f_pointer_l1) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_LOGICAL_2
-void ISO_C_BINDING_PREFIX (c_f_pointer_l2) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_LOGICAL_4
-void ISO_C_BINDING_PREFIX (c_f_pointer_l4) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-#ifdef HAVE_GFC_LOGICAL_8
-void ISO_C_BINDING_PREFIX (c_f_pointer_l8) (void *, gfc_array_void *,
-					    const array_t *);
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_1
-/* Set the given Fortran pointer, 'f_ptr_out', to point to the given C
-   address, 'c_ptr_in'.  The Fortran pointer is of type integer and
-   kind=1.  The function c_f_pointer is used to set up the pointer
-   descriptor.  shape is a one-dimensional array of integers
-   specifying the upper bounds of the array pointed to by the given C
-   address, if applicable.  'shape' is an optional parameter in
-   Fortran, so if the user does not provide it, it will come in here
-   as NULL.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_i1) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have an integer(kind=1).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_INTEGER,
-				      (int) sizeof (GFC_INTEGER_1));
-}
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_2
-/* Set the given Fortran pointer, 'f_ptr_out', to point to the given C
-   address, 'c_ptr_in'.  The Fortran pointer is of type integer and
-   kind=2.  The function c_f_pointer is used to set up the pointer
-   descriptor.  shape is a one-dimensional array of integers
-   specifying the upper bounds of the array pointed to by the given C
-   address, if applicable.  'shape' is an optional parameter in
-   Fortran, so if the user does not provide it, it will come in here
-   as NULL.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_i2) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have an integer(kind=2).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_INTEGER,
-				      (int) sizeof (GFC_INTEGER_2));
-}
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_4
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type integer and
-   kind=4.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_i4) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have an integer(kind=4).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_INTEGER,
-				      (int) sizeof (GFC_INTEGER_4));
-}
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_8
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type integer and
-   kind=8.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_i8) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have an integer(kind=8).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_INTEGER,
-				      (int) sizeof (GFC_INTEGER_8));
-}
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_16
-/* Set the given Fortran pointer, 'f_ptr_out', to point to the given C
-   address, 'c_ptr_in'.  The Fortran pointer is of type integer and
-   kind=16.  The function c_f_pointer is used to set up the pointer
-   descriptor.  shape is a one-dimensional array of integers
-   specifying the upper bounds of the array pointed to by the given C
-   address, if applicable.  'shape' is an optional parameter in
-   Fortran, so if the user does not provide it, it will come in here
-   as NULL.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_i16) (void *c_ptr_in,
-					gfc_array_void *f_ptr_out,
-					const array_t *shape)
-{
-  /* Here we have an integer(kind=16).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_INTEGER,
-				      (int) sizeof (GFC_INTEGER_16));
-}
-#endif
-
-
-#ifdef HAVE_GFC_REAL_4
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type real and
-   kind=4.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_r4) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have an real(kind=4).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_REAL,
-				      (int) sizeof (GFC_REAL_4));
-}
-#endif
-
-
-#ifdef HAVE_GFC_REAL_8
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type real and
-   kind=8.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_r8) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have an real(kind=8).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_REAL,
-				      (int) sizeof (GFC_REAL_8));
-}
-#endif
-
-
-#ifdef HAVE_GFC_REAL_10
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type real and
-   kind=10.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_r10) (void *c_ptr_in,
-					gfc_array_void *f_ptr_out,
-					const array_t *shape)
-{
-  /* Here we have an real(kind=10).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_REAL,
-				      (int) sizeof (GFC_REAL_10));
-}
-#endif
-
-
-#ifdef HAVE_GFC_REAL_16
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type real and
-   kind=16.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_r16) (void *c_ptr_in,
-					gfc_array_void *f_ptr_out,
-					const array_t *shape)
-{
-  /* Here we have an real(kind=16).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_REAL,
-				      (int) sizeof (GFC_REAL_16));
-}
-#endif
-
-
-#ifdef HAVE_GFC_COMPLEX_4
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type complex and
-   kind=4.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_c4) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have an complex(kind=4).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_COMPLEX,
-				      (int) sizeof (GFC_COMPLEX_4));
-}
-#endif
-
-
-#ifdef HAVE_GFC_COMPLEX_8
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type complex and
-   kind=8.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_c8) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have an complex(kind=8).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_COMPLEX,
-				      (int) sizeof (GFC_COMPLEX_8));
-}
-#endif
-
-
-#ifdef HAVE_GFC_COMPLEX_10
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type complex and
-   kind=10.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_c10) (void *c_ptr_in,
-					gfc_array_void *f_ptr_out,
-					const array_t *shape)
-{
-  /* Here we have an complex(kind=10).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_COMPLEX,
-				      (int) sizeof (GFC_COMPLEX_10));
-}
-#endif
-
-
-#ifdef HAVE_GFC_COMPLEX_16
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type complex and
-   kind=16.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_c16) (void *c_ptr_in,
-					gfc_array_void *f_ptr_out,
-					const array_t *shape)
-{
-  /* Here we have an complex(kind=16).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_COMPLEX,
-				      (int) sizeof (GFC_COMPLEX_16));
-}
-#endif
-
-
-#ifdef GFC_DEFAULT_CHAR
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type character.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_s0) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have a character string of len=1.  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_CHARACTER,
-				      (int) sizeof (char));
-}
-#endif
-
-
-#ifdef HAVE_GFC_LOGICAL_1
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type logical, kind=1.	*/
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_l1) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have a logical of kind=1.	*/
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_LOGICAL,
-				      (int) sizeof (GFC_LOGICAL_1));
-}
-#endif
-
-
-#ifdef HAVE_GFC_LOGICAL_2
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type logical, kind=2.	*/
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_l2) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have a logical of kind=2.	*/
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_LOGICAL,
-				      (int) sizeof (GFC_LOGICAL_2));
-}
-#endif
-
-
-#ifdef HAVE_GFC_LOGICAL_4
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type logical, kind=4.	*/
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_l4) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have a logical of kind=4.	*/
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_LOGICAL,
-				      (int) sizeof (GFC_LOGICAL_4));
-}
-#endif
-
-
-#ifdef HAVE_GFC_LOGICAL_8
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type logical, kind=8.	*/
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_l8) (void *c_ptr_in,
-				       gfc_array_void *f_ptr_out,
-				       const array_t *shape)
-{
-  /* Here we have a logical of kind=8.	*/
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-				      (int) BT_LOGICAL,
-				      (int) sizeof (GFC_LOGICAL_8));
-}
-#endif
