head	8.7;
access;
symbols;
locks; strict;
comment	@# @;


8.7
date	2026.05.11.12.01.10;	author mcalabre;	state Exp;
branches;
next	8.6;

8.6
date	2026.03.29.13.53.56;	author mcalabre;	state Exp;
branches
	8.6.1.1;
next	8.5;

8.5
date	2025.12.06.13.47.41;	author mcalabre;	state Exp;
branches
	8.5.1.1;
next	8.4;

8.4
date	2024.10.28.13.56.17;	author mcalabre;	state Exp;
branches
	8.4.1.1;
next	8.3;

8.3
date	2024.05.13.16.33.01;	author mcalabre;	state Exp;
branches
	8.3.1.1;
next	8.2;

8.2
date	2024.05.06.14.54.07;	author mcalabre;	state Exp;
branches
	8.2.1.1;
next	0.0;

0.0
date	2024.05.06.14.45.03;	author mcalabre;	state Exp;
branches;
next	;

8.2.1.1
date	2024.05.06.15.02.48;	author mcalabre;	state Exp;
branches;
next	8.2.1.2;

8.2.1.2
date	2024.05.06.15.04.18;	author mcalabre;	state Exp;
branches;
next	;

8.3.1.1
date	2024.05.13.16.35.40;	author mcalabre;	state Exp;
branches;
next	;

8.4.1.1
date	2024.10.28.13.58.42;	author mcalabre;	state Exp;
branches;
next	8.4.1.2;

8.4.1.2
date	2025.12.06.13.37.18;	author mcalabre;	state Exp;
branches;
next	;

8.5.1.1
date	2025.12.06.14.05.16;	author mcalabre;	state Exp;
branches;
next	8.5.1.2;

8.5.1.2
date	2026.03.29.13.36.18;	author mcalabre;	state Exp;
branches;
next	;

8.6.1.1
date	2026.03.29.14.19.27;	author mcalabre;	state Exp;
branches;
next	;


desc
@Fortran 2003 BIND(C) wrappers for functions in spc_f.c.
@


8.7
log
@WCSLIB 8.7
@
text
@!=============================================================================
! WCSLIB 8.7 - an implementation of the FITS WCS standard.
! Copyright (C) 1995-2026, Mark Calabretta
!
! This file is part of WCSLIB.
!
! WCSLIB is free software: you can redistribute it and/or modify it under the
! terms of the GNU Lesser General Public License as published by the Free
! Software Foundation, either version 3 of the License, or (at your option)
! any later version.
!
! WCSLIB 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 Lesser General Public License for
! more details.
!
! You should have received a copy of the GNU Lesser General Public License
! along with WCSLIB.  If not, see http://www.gnu.org/licenses.
!
! Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
! http://www.atnf.csiro.au/computing/software/wcs
! $Id: spc_bindc.f90,v 8.6.1.1 2026/03/29 14:19:27 mcalabre Exp mcalabre $
!=============================================================================

INTEGER FUNCTION SPCPTC (SPC, WHAT, VALUE, M)
  INTEGER :: SPC(*), WHAT
  CHARACTER :: VALUE(*)
  INTEGER :: M

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCPTC_C (SPC, WHAT, VALUE, M) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      INTEGER(C_INT) :: SPC(*), WHAT
      CHARACTER(KIND=C_CHAR, LEN=1) :: VALUE(*)
      INTEGER(C_INT) :: M
    END FUNCTION SPCPTC_C
  END INTERFACE

  SPCPTC = SPCPTC_C (SPC, WHAT, VALUE, M)
END FUNCTION SPCPTC

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCGTC (SPC, WHAT, VALUE)
  INTEGER :: SPC(*), WHAT
  CHARACTER :: VALUE(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCGTC_C (SPC, WHAT, VALUE) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      INTEGER(C_INT) :: SPC(*), WHAT
      CHARACTER(KIND=C_CHAR, LEN=1) :: VALUE(*)
    END FUNCTION SPCGTC_C
  END INTERFACE

  SPCGTC = SPCGTC_C (SPC, WHAT, VALUE)
END FUNCTION SPCGTC

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCPERR (SPC, PREFIX)
  INTEGER :: SPC(*)
  CHARACTER :: PREFIX(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCPERR_C (SPC, PREFIX) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      INTEGER(C_INT) :: SPC(*)
      CHARACTER(KIND=C_CHAR, LEN=1) :: PREFIX(72)
    END FUNCTION SPCPERR_C
  END INTERFACE

  SPCPERR = SPCPERR_C (SPC, PREFIX)
END FUNCTION SPCPERR

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCTYPE (CTYPEI, STYPE, SCODE, SNAME, UNITS, PTYPE, XTYPE, &
                          RESTREQ, ERR)
  CHARACTER :: CTYPEI(8), STYPE(4), SCODE(3), SNAME(21), UNITS(7), PTYPE(1), &
               XTYPE(1)
  INTEGER :: RESTREQ, ERR(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCTYPE_C (CTYPEI, STYPE, SCODE, SNAME, UNITS, &
                                       PTYPE, XTYPE, RESTREQ, ERR) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPEI(8), STYPE(4), SCODE(3), &
                                       SNAME(21), UNITS(7), PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ, ERR(*)
    END FUNCTION SPCTYPE_C
  END INTERFACE

  SPCTYPE = SPCTYPE_C (CTYPEI, STYPE, SCODE, SNAME, UNITS, PTYPE, XTYPE, &
                       RESTREQ, ERR)
END FUNCTION SPCTYPE

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCTYP (CTYPEI, STYPE, SCODE, SNAME, UNITS, PTYPE, XTYPE, &
                         RESTREQ)
  CHARACTER :: CTYPEI(8), STYPE(4), SCODE(3), SNAME(21), UNITS(7), PTYPE(1), &
               XTYPE(1)
  INTEGER :: RESTREQ

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCTYP_C (CTYPEI, STYPE, SCODE, SNAME, UNITS, &
                                      PTYPE, XTYPE, RESTREQ) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPEI(8), STYPE(4), SCODE(3), &
                                       SNAME(21), UNITS(7), PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ
    END FUNCTION SPCTYP_C
  END INTERFACE

  SPCTYP = SPCTYP_C (CTYPEI, STYPE, SCODE, SNAME, UNITS, PTYPE, XTYPE, &
                     RESTREQ)
END FUNCTION SPCTYP

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCSPXE (CTYPES, CRVALS, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                          RESTREQ, CRVALX, DXDS, ERR)
  CHARACTER :: CTYPES(8)
  DOUBLE PRECISION :: CRVALS, RESTFRQ, RESTWAV
  CHARACTER :: PTYPE(1), XTYPE(1)
  INTEGER :: RESTREQ
  DOUBLE PRECISION :: CRVALX, DXDS
  INTEGER :: ERR(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCSPXE_C (CTYPES, CRVALS, RESTFRQ, RESTWAV, &
                                       PTYPE, XTYPE, RESTREQ, CRVALX, DXDS, &
                                       ERR) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES(8)
      REAL(C_DOUBLE) :: CRVALS, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ
      REAL(C_DOUBLE) :: CRVALX, DXDS
      INTEGER(C_INT) :: ERR(*)
    END FUNCTION SPCSPXE_C
  END INTERFACE

  SPCSPXE = SPCSPXE_C (CTYPES, CRVALS, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                       RESTREQ, CRVALX, DXDS, ERR)
END FUNCTION SPCSPXE

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCSPX (CTYPES, CRVALS, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                         RESTREQ, CRVALX, DXDS)
  CHARACTER :: CTYPES(8)
  DOUBLE PRECISION :: CRVALS, RESTFRQ, RESTWAV
  CHARACTER :: PTYPE(1), XTYPE(1)
  INTEGER :: RESTREQ
  DOUBLE PRECISION :: CRVALX, DXDS

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCSPX_C (CTYPES, CRVALS, RESTFRQ, RESTWAV, &
                                      PTYPE, XTYPE, RESTREQ, CRVALX, DXDS) &
                                      BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES(8)
      REAL(C_DOUBLE) :: CRVALS, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ
      REAL(C_DOUBLE) :: CRVALX, DXDS
    END FUNCTION SPCSPX_C
  END INTERFACE

  SPCSPX = SPCSPX_C (CTYPES, CRVALS, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                     RESTREQ, CRVALX, DXDS)
END FUNCTION SPCSPX

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCXPSE (CTYPES, CRVALX, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                          RESTREQ, CRVALS, DSDX, ERR)
  CHARACTER :: CTYPES(8)
  DOUBLE PRECISION :: CRVALX, RESTFRQ, RESTWAV
  CHARACTER :: PTYPE(1), XTYPE(1)
  INTEGER :: RESTREQ
  DOUBLE PRECISION :: CRVALS, DSDX
  INTEGER :: ERR(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCXPSE_C (CTYPES, CRVALX, RESTFRQ, RESTWAV, &
                                       PTYPE, XTYPE, RESTREQ, CRVALS, DSDX, &
                                       ERR) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES(8)
      REAL(C_DOUBLE) :: CRVALX, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ
      REAL(C_DOUBLE) :: CRVALS, DSDX
      INTEGER(C_INT) :: ERR(*)
    END FUNCTION SPCXPSE_C
  END INTERFACE

  SPCXPSE = SPCXPSE_C (CTYPES, CRVALX, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                       RESTREQ, CRVALS, DSDX, ERR)
END FUNCTION SPCXPSE

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCXPS (CTYPES, CRVALX, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                         RESTREQ, CRVALS, DSDX)
  CHARACTER :: CTYPES(8)
  DOUBLE PRECISION :: CRVALX, RESTFRQ, RESTWAV
  CHARACTER :: PTYPE(1), XTYPE(1)
  INTEGER :: RESTREQ
  DOUBLE PRECISION :: CRVALS, DSDX

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCXPS_C (CTYPES, CRVALX, RESTFRQ, RESTWAV, &
                                      PTYPE, XTYPE, RESTREQ, CRVALS, DSDX) &
                                      BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES(8)
      REAL(C_DOUBLE) :: CRVALX, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ
      REAL(C_DOUBLE) :: CRVALS, DSDX
    END FUNCTION SPCXPS_C
  END INTERFACE

  SPCXPS = SPCXPS_C (CTYPES, CRVALX, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                     RESTREQ, CRVALS, DSDX)
END FUNCTION SPCXPS

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCTRNE (CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
                          CTYPES2, CRVALS2, CDELTS2, ERR)
  CHARACTER :: CTYPES1(8)
  DOUBLE PRECISION :: CRVALS1, CDELTS1, RESTFRQ, RESTWAV
  CHARACTER :: CTYPES2(8)
  DOUBLE PRECISION :: CRVALS2, CDELTS2
  INTEGER :: ERR(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCTRNE_C ( &
        CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
        CTYPES2, CRVALS2, CDELTS2, ERR) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES1(8)
      REAL(C_DOUBLE) :: CRVALS1, CDELTS1, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES2(8)
      REAL(C_DOUBLE) :: CRVALS2, CDELTS2
      INTEGER(C_INT) :: ERR(*)
    END FUNCTION SPCTRNE_C
  END INTERFACE

  SPCTRNE = SPCTRNE_C (CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
                       CTYPES2, CRVALS2, CDELTS2, ERR)
END FUNCTION SPCTRNE

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCTRN (CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
                         CTYPES2, CRVALS2, CDELTS2)
  CHARACTER :: CTYPES1(8)
  DOUBLE PRECISION :: CRVALS1, CDELTS1, RESTFRQ, RESTWAV
  CHARACTER :: CTYPES2(8)
  DOUBLE PRECISION :: CRVALS2, CDELTS2

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCTRN_C ( &
        CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
        CTYPES2, CRVALS2, CDELTS2) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES1(8)
      REAL(C_DOUBLE) :: CRVALS1, CDELTS1, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES2(8)
      REAL(C_DOUBLE) :: CRVALS2, CDELTS2
    END FUNCTION SPCTRN_C
  END INTERFACE

  SPCTRN = SPCTRN_C (CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
                     CTYPES2, CRVALS2, CDELTS2)
END FUNCTION SPCTRN

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCAIPS (CTYPEA, VELREF, CTYPE, SPECSYS)
  CHARACTER :: CTYPEA(8)
  INTEGER :: VELREF
  CHARACTER :: CTYPE(8), SPECSYS(8)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCAIPS_C (CTYPEA, VELREF, CTYPE, SPECSYS) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPEA(8)
      INTEGER(C_INT) :: VELREF
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPE(8), SPECSYS(8)
    END FUNCTION SPCAIPS_C
  END INTERFACE

  SPCAIPS = SPCAIPS_C (CTYPEA, VELREF, CTYPE, SPECSYS)
END FUNCTION SPCAIPS
@


8.6
log
@WCSLIB 8.6
@
text
@d2 1
a2 1
! WCSLIB 8.6 - an implementation of the FITS WCS standard.
d22 1
a22 1
! $Id: spc_bindc.f90,v 8.5.1.2 2026/03/29 13:36:18 mcalabre Exp mcalabre $
@


8.6.1.1
log
@WCSLIB 8.6 development branch.
@
text
@d22 1
a22 1
! $Id: spc_bindc.f90,v 8.6 2026/03/29 13:53:56 mcalabre Exp $
@


8.5
log
@WCSLIB 8.5
@
text
@d2 2
a3 2
! WCSLIB 8.5 - an implementation of the FITS WCS standard.
! Copyright (C) 1995-2025, Mark Calabretta
d21 2
a22 2
! http://www.atnf.csiro.au/people/Mark.Calabretta
! $Id: spc_bindc.f90,v 8.4.1.2 2025/12/06 13:37:18 mcalabre Exp mcalabre $
@


8.5.1.1
log
@WCSLIB 8.5 development branch.
@
text
@d22 1
a22 1
! $Id: spc_bindc.f90,v 8.5 2025/12/06 13:47:41 mcalabre Exp $
@


8.5.1.2
log
@Updated date in copyright notice.
@
text
@d3 1
a3 1
! Copyright (C) 1995-2026, Mark Calabretta
d21 2
a22 2
! http://www.atnf.csiro.au/computing/software/wcs
! $Id: spc_bindc.f90,v 8.5.1.1 2025/12/06 14:05:16 mcalabre Exp mcalabre $
@


8.4
log
@WCSLIB 8.4
@
text
@d2 2
a3 2
! WCSLIB 8.4 - an implementation of the FITS WCS standard.
! Copyright (C) 1995-2024, Mark Calabretta
d22 1
a22 1
! $Id: spc_bindc.f90,v 8.3.1.1 2024/05/13 16:35:40 mcalabre Exp mcalabre $
@


8.4.1.1
log
@WCSLIB 8.4 development branch.
@
text
@d22 1
a22 1
! $Id: spc_bindc.f90,v 8.4 2024/10/28 13:56:17 mcalabre Exp $
@


8.4.1.2
log
@Updated date in copyright notice.
@
text
@d3 1
a3 1
! Copyright (C) 1995-2025, Mark Calabretta
d22 1
a22 1
! $Id: spc_bindc.f90,v 8.4.1.1 2024/10/28 13:58:42 mcalabre Exp mcalabre $
@


8.3
log
@WCSLIB 8.3
@
text
@d2 1
a2 1
! WCSLIB 8.3 - an implementation of the FITS WCS standard.
d22 1
a22 1
! $Id: spc_bindc.f90,v 8.2.1.2 2024/05/06 15:04:18 mcalabre Exp mcalabre $
@


8.3.1.1
log
@WCSLIB 8.3 development branch.
@
text
@d22 1
a22 1
! $Id: spc_bindc.f90,v 8.3 2024/05/13 16:33:01 mcalabre Exp $
@


8.2
log
@WCSLIB 8.2
@
text
@d1 301
@


8.2.1.1
log
@WCSLIB 8.2 development branch.
@
text
@@


8.2.1.2
log
@Initial revision.
@
text
@a0 301
!=============================================================================
! WCSLIB 8.2 - an implementation of the FITS WCS standard.
! Copyright (C) 1995-2024, Mark Calabretta
!
! This file is part of WCSLIB.
!
! WCSLIB is free software: you can redistribute it and/or modify it under the
! terms of the GNU Lesser General Public License as published by the Free
! Software Foundation, either version 3 of the License, or (at your option)
! any later version.
!
! WCSLIB 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 Lesser General Public License for
! more details.
!
! You should have received a copy of the GNU Lesser General Public License
! along with WCSLIB.  If not, see http://www.gnu.org/licenses.
!
! Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
! http://www.atnf.csiro.au/people/Mark.Calabretta
! $Id$
!=============================================================================

INTEGER FUNCTION SPCPTC (SPC, WHAT, VALUE, M)
  INTEGER :: SPC(*), WHAT
  CHARACTER :: VALUE(*)
  INTEGER :: M

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCPTC_C (SPC, WHAT, VALUE, M) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      INTEGER(C_INT) :: SPC(*), WHAT
      CHARACTER(KIND=C_CHAR, LEN=1) :: VALUE(*)
      INTEGER(C_INT) :: M
    END FUNCTION SPCPTC_C
  END INTERFACE

  SPCPTC = SPCPTC_C (SPC, WHAT, VALUE, M)
END FUNCTION SPCPTC

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCGTC (SPC, WHAT, VALUE)
  INTEGER :: SPC(*), WHAT
  CHARACTER :: VALUE(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCGTC_C (SPC, WHAT, VALUE) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      INTEGER(C_INT) :: SPC(*), WHAT
      CHARACTER(KIND=C_CHAR, LEN=1) :: VALUE(*)
    END FUNCTION SPCGTC_C
  END INTERFACE

  SPCGTC = SPCGTC_C (SPC, WHAT, VALUE)
END FUNCTION SPCGTC

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCPERR (SPC, PREFIX)
  INTEGER :: SPC(*)
  CHARACTER :: PREFIX(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCPERR_C (SPC, PREFIX) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      INTEGER(C_INT) :: SPC(*)
      CHARACTER(KIND=C_CHAR, LEN=1) :: PREFIX(72)
    END FUNCTION SPCPERR_C
  END INTERFACE

  SPCPERR = SPCPERR_C (SPC, PREFIX)
END FUNCTION SPCPERR

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCTYPE (CTYPEI, STYPE, SCODE, SNAME, UNITS, PTYPE, XTYPE, &
                          RESTREQ, ERR)
  CHARACTER :: CTYPEI(8), STYPE(4), SCODE(3), SNAME(21), UNITS(7), PTYPE(1), &
               XTYPE(1)
  INTEGER :: RESTREQ, ERR(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCTYPE_C (CTYPEI, STYPE, SCODE, SNAME, UNITS, &
                                       PTYPE, XTYPE, RESTREQ, ERR) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPEI(8), STYPE(4), SCODE(3), &
                                       SNAME(21), UNITS(7), PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ, ERR(*)
    END FUNCTION SPCTYPE_C
  END INTERFACE

  SPCTYPE = SPCTYPE_C (CTYPEI, STYPE, SCODE, SNAME, UNITS, PTYPE, XTYPE, &
                       RESTREQ, ERR)
END FUNCTION SPCTYPE

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCTYP (CTYPEI, STYPE, SCODE, SNAME, UNITS, PTYPE, XTYPE, &
                         RESTREQ)
  CHARACTER :: CTYPEI(8), STYPE(4), SCODE(3), SNAME(21), UNITS(7), PTYPE(1), &
               XTYPE(1)
  INTEGER :: RESTREQ

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCTYP_C (CTYPEI, STYPE, SCODE, SNAME, UNITS, &
                                      PTYPE, XTYPE, RESTREQ) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPEI(8), STYPE(4), SCODE(3), &
                                       SNAME(21), UNITS(7), PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ
    END FUNCTION SPCTYP_C
  END INTERFACE

  SPCTYP = SPCTYP_C (CTYPEI, STYPE, SCODE, SNAME, UNITS, PTYPE, XTYPE, &
                     RESTREQ)
END FUNCTION SPCTYP

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCSPXE (CTYPES, CRVALS, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                          RESTREQ, CRVALX, DXDS, ERR)
  CHARACTER :: CTYPES(8)
  DOUBLE PRECISION :: CRVALS, RESTFRQ, RESTWAV
  CHARACTER :: PTYPE(1), XTYPE(1)
  INTEGER :: RESTREQ
  DOUBLE PRECISION :: CRVALX, DXDS
  INTEGER :: ERR(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCSPXE_C (CTYPES, CRVALS, RESTFRQ, RESTWAV, &
                                       PTYPE, XTYPE, RESTREQ, CRVALX, DXDS, &
                                       ERR) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES(8)
      REAL(C_DOUBLE) :: CRVALS, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ
      REAL(C_DOUBLE) :: CRVALX, DXDS
      INTEGER(C_INT) :: ERR(*)
    END FUNCTION SPCSPXE_C
  END INTERFACE

  SPCSPXE = SPCSPXE_C (CTYPES, CRVALS, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                       RESTREQ, CRVALX, DXDS, ERR)
END FUNCTION SPCSPXE

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCSPX (CTYPES, CRVALS, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                         RESTREQ, CRVALX, DXDS)
  CHARACTER :: CTYPES(8)
  DOUBLE PRECISION :: CRVALS, RESTFRQ, RESTWAV
  CHARACTER :: PTYPE(1), XTYPE(1)
  INTEGER :: RESTREQ
  DOUBLE PRECISION :: CRVALX, DXDS

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCSPX_C (CTYPES, CRVALS, RESTFRQ, RESTWAV, &
                                      PTYPE, XTYPE, RESTREQ, CRVALX, DXDS) &
                                      BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES(8)
      REAL(C_DOUBLE) :: CRVALS, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ
      REAL(C_DOUBLE) :: CRVALX, DXDS
    END FUNCTION SPCSPX_C
  END INTERFACE

  SPCSPX = SPCSPX_C (CTYPES, CRVALS, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                     RESTREQ, CRVALX, DXDS)
END FUNCTION SPCSPX

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCXPSE (CTYPES, CRVALX, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                          RESTREQ, CRVALS, DSDX, ERR)
  CHARACTER :: CTYPES(8)
  DOUBLE PRECISION :: CRVALX, RESTFRQ, RESTWAV
  CHARACTER :: PTYPE(1), XTYPE(1)
  INTEGER :: RESTREQ
  DOUBLE PRECISION :: CRVALS, DSDX
  INTEGER :: ERR(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCXPSE_C (CTYPES, CRVALX, RESTFRQ, RESTWAV, &
                                       PTYPE, XTYPE, RESTREQ, CRVALS, DSDX, &
                                       ERR) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES(8)
      REAL(C_DOUBLE) :: CRVALX, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ
      REAL(C_DOUBLE) :: CRVALS, DSDX
      INTEGER(C_INT) :: ERR(*)
    END FUNCTION SPCXPSE_C
  END INTERFACE

  SPCXPSE = SPCXPSE_C (CTYPES, CRVALX, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                       RESTREQ, CRVALS, DSDX, ERR)
END FUNCTION SPCXPSE

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCXPS (CTYPES, CRVALX, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                         RESTREQ, CRVALS, DSDX)
  CHARACTER :: CTYPES(8)
  DOUBLE PRECISION :: CRVALX, RESTFRQ, RESTWAV
  CHARACTER :: PTYPE(1), XTYPE(1)
  INTEGER :: RESTREQ
  DOUBLE PRECISION :: CRVALS, DSDX

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCXPS_C (CTYPES, CRVALX, RESTFRQ, RESTWAV, &
                                      PTYPE, XTYPE, RESTREQ, CRVALS, DSDX) &
                                      BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES(8)
      REAL(C_DOUBLE) :: CRVALX, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: PTYPE(1), XTYPE(1)
      INTEGER(C_INT) :: RESTREQ
      REAL(C_DOUBLE) :: CRVALS, DSDX
    END FUNCTION SPCXPS_C
  END INTERFACE

  SPCXPS = SPCXPS_C (CTYPES, CRVALX, RESTFRQ, RESTWAV, PTYPE, XTYPE, &
                     RESTREQ, CRVALS, DSDX)
END FUNCTION SPCXPS

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCTRNE (CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
                          CTYPES2, CRVALS2, CDELTS2, ERR)
  CHARACTER :: CTYPES1(8)
  DOUBLE PRECISION :: CRVALS1, CDELTS1, RESTFRQ, RESTWAV
  CHARACTER :: CTYPES2(8)
  DOUBLE PRECISION :: CRVALS2, CDELTS2
  INTEGER :: ERR(*)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCTRNE_C ( &
        CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
        CTYPES2, CRVALS2, CDELTS2, ERR) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES1(8)
      REAL(C_DOUBLE) :: CRVALS1, CDELTS1, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES2(8)
      REAL(C_DOUBLE) :: CRVALS2, CDELTS2
      INTEGER(C_INT) :: ERR(*)
    END FUNCTION SPCTRNE_C
  END INTERFACE

  SPCTRNE = SPCTRNE_C (CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
                       CTYPES2, CRVALS2, CDELTS2, ERR)
END FUNCTION SPCTRNE

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCTRN (CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
                         CTYPES2, CRVALS2, CDELTS2)
  CHARACTER :: CTYPES1(8)
  DOUBLE PRECISION :: CRVALS1, CDELTS1, RESTFRQ, RESTWAV
  CHARACTER :: CTYPES2(8)
  DOUBLE PRECISION :: CRVALS2, CDELTS2

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCTRN_C ( &
        CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
        CTYPES2, CRVALS2, CDELTS2) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES1(8)
      REAL(C_DOUBLE) :: CRVALS1, CDELTS1, RESTFRQ, RESTWAV
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPES2(8)
      REAL(C_DOUBLE) :: CRVALS2, CDELTS2
    END FUNCTION SPCTRN_C
  END INTERFACE

  SPCTRN = SPCTRN_C (CTYPES1, CRVALS1, CDELTS1, RESTFRQ, RESTWAV, &
                     CTYPES2, CRVALS2, CDELTS2)
END FUNCTION SPCTRN

!-----------------------------------------------------------------------------

INTEGER FUNCTION SPCAIPS (CTYPEA, VELREF, CTYPE, SPECSYS)
  CHARACTER :: CTYPEA(8)
  INTEGER :: VELREF
  CHARACTER :: CTYPE(8), SPECSYS(8)

  INTERFACE
    INTEGER(C_INT) FUNCTION SPCAIPS_C (CTYPEA, VELREF, CTYPE, SPECSYS) BIND (C)
      USE, INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPEA(8)
      INTEGER(C_INT) :: VELREF
      CHARACTER(KIND=C_CHAR, LEN=1) :: CTYPE(8), SPECSYS(8)
    END FUNCTION SPCAIPS_C
  END INTERFACE

  SPCAIPS = SPCAIPS_C (CTYPEA, VELREF, CTYPE, SPECSYS)
END FUNCTION SPCAIPS
@


0.0
log
@Empty revision.
@
text
@@
