C===========================================================================
C Copyright (C) 1995 European Southern Observatory (ESO)
C
C This program is free software; you can redistribute it and/or 
C modify it under the terms of the GNU General Public License as 
C published by the Free Software Foundation; either version 2 of 
C the License, or (at your option) any later version.
C
C This program is distributed in the hope that it will be useful,
C but WITHOUT ANY WARRANTY; without even the implied warranty of
C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
C GNU General Public License for more details.
C
C You should have received a copy of the GNU General Public 
C License along with this program; if not, write to the Free 
C Software Foundation, Inc., 675 Massachusetss Ave, Cambridge, 
C MA 02139, USA.
C
C Correspondence concerning ESO-MIDAS should be addressed as follows:
C	Internet e-mail: midas@eso.org
C	Postal address: European Southern Observatory
C			Data Management Division 
C			Karl-Schwarzschild-Strasse 2
C			D 85748 Garching bei Muenchen 
C			GERMANY
C===========================================================================

C ++++++++++++++++++++++++  STK.FOR +++++++++++++++++++++++++++++++++++++++
C .LANGUAGE Fortran 77
C .IDENTIFICATION Module STK.FOR
C .COMMENTS
C Module contains layer between the keyword related FORTRAN STxxxx interfaces
C and the SC_interfaces written in (hopefully independent) C
C .AUTHOR         K. Banse        ESO - Garching
C .KEYWORDS       standard interfaces.
C .ENVIRONMENT    FORTRAN and C standards
C .VERSION  [1.00] 871207:  created from SXFTOC.C
C -----------------------------------------------------------------------------
C
      SUBROUTINE STKRDI(KEY,FELEM,MAXVALS,ACTVALS,VALUES,KUNIT,
     +                  KNULL,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   KEY        
      INTEGER     FELEM, MAXVALS, ACTVALS
      INTEGER     VALUES(*)
      INTEGER     KUNIT, KNULL
C 
      KUNIT = 0
      KNULL = 0
      CALL STKR1(KEY,0,FELEM,MAXVALS)
      CALL STKR2I(ACTVALS,VALUES,STATUS)
C
      RETURN
      END
C
      SUBROUTINE STKRDR(KEY,FELEM,MAXVALS,ACTVALS,VALUES,KUNIT,
     +                  KNULL,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   KEY        
      INTEGER     FELEM, MAXVALS, ACTVALS
      REAL     VALUES(*)
      INTEGER     KUNIT, KNULL
C 
      KUNIT = 0
      KNULL = 0
      CALL STKR1(KEY,0,FELEM,MAXVALS)
      CALL STKR2R(ACTVALS,VALUES,STATUS)
C
      RETURN
      END
C
      SUBROUTINE STKRDD(KEY,FELEM,MAXVALS,ACTVALS,VALUES,KUNIT,
     +                  KNULL,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   KEY        
      INTEGER     FELEM, MAXVALS, ACTVALS
      DOUBLE PRECISION     VALUES(*)
      INTEGER     KUNIT, KNULL
C 
      KUNIT = 0
      KNULL = 0
      CALL STKR1(KEY,0,FELEM,MAXVALS)
      CALL STKR2D(ACTVALS,VALUES,STATUS)
C
      RETURN
      END
C 
C
      SUBROUTINE STKRDC(KEY,NOELM,FELEM,MAXVALS,ACTVALS,VALUES,KUNIT,
     +                  KNULL,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   KEY        
      INTEGER     NOELM, FELEM, MAXVALS, ACTVALS
      CHARACTER   VALUES(*)
      INTEGER     KUNIT, KNULL
C 
      KUNIT = 0
      KNULL = 0
      CALL STKR1(KEY,NOELM,FELEM,MAXVALS)
      CALL STKR2C(ACTVALS,VALUES,STATUS)
C
      RETURN
      END
C 
C 
      SUBROUTINE STKPRC(PROMPT,KEY,NOELM,FELEM,MAXVALS,ACTVALS,VALUES,
     +                  KUNIT,KNULL,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   PROMPT, KEY        
      INTEGER     NOELM, FELEM, MAXVALS, ACTVALS
      CHARACTER   VALUES(*)
      INTEGER     KUNIT, KNULL
C 
      KUNIT = 0
      KNULL = 0
      CALL STKR1(KEY,NOELM,FELEM,MAXVALS)
      CALL STKP2C(PROMPT,ACTVALS,VALUES,STATUS)
C
      RETURN
      END
C 
C
C
      SUBROUTINE STKPRI(PROMPT,KEY,FELEM,MAXVALS,ACTVALS,VALUES,
     +                  KUNIT,KNULL,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   PROMPT, KEY
      INTEGER     FELEM, MAXVALS, ACTVALS
      INTEGER   VALUES(*)
      INTEGER     KUNIT, KNULL
C
      KUNIT = 0
      KNULL = 0
      CALL STKR1(KEY,0,FELEM,MAXVALS)
      CALL STKP2I(PROMPT,ACTVALS,VALUES,STATUS)
C
      RETURN
      END
C
C
C
      SUBROUTINE STKPRR(PROMPT,KEY,NOELM,FELEM,MAXVALS,ACTVALS,VALUES,
     +                  KUNIT,KNULL,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   PROMPT, KEY
      INTEGER     NOELM, FELEM, MAXVALS, ACTVALS
      REAL        VALUES(*)
      INTEGER     KUNIT, KNULL
C
      KUNIT = 0
      KNULL = 0
      CALL STKR1(KEY,0,FELEM,MAXVALS)
      CALL STKP2R(PROMPT,ACTVALS,VALUES,STATUS)
C
      RETURN
      END
C
C
C
      SUBROUTINE STKPRD(PROMPT,KEY,NOELM,FELEM,MAXVALS,ACTVALS,VALUES,
     +                  KUNIT,KNULL,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   PROMPT, KEY
      INTEGER     NOELM, FELEM, MAXVALS, ACTVALS
      DOUBLE PRECISION   VALUES(*)
      INTEGER     KUNIT, KNULL
C
      KUNIT = 0
      KNULL = 0
      CALL STKR1(KEY,0,FELEM,MAXVALS)
      CALL STKP2D(PROMPT,ACTVALS,VALUES,STATUS)
C
      RETURN
      END
C
      SUBROUTINE STKWRC(KEY,NOELM,VALUES,FELEM,MAXVALS,KUNIT,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   KEY
      INTEGER     NOELM, FELEM, MAXVALS
      CHARACTER   VALUES(*)
      INTEGER     KUNIT
C
      KUNIT = 0
      CALL STKR1(KEY,NOELM,FELEM,MAXVALS)
      CALL STKW2C(VALUES,STATUS)
C
      RETURN
      END
C 
      SUBROUTINE STKWRI(KEY,VALUES,FELEM,MAXVALS,KUNIT,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   KEY
      INTEGER     FELEM, MAXVALS
      INTEGER   VALUES(*)
      INTEGER     KUNIT
C
      KUNIT = 0
      CALL STKR1(KEY,0,FELEM,MAXVALS)
      CALL STKW2I(VALUES,STATUS)
C
      RETURN
      END
C
      SUBROUTINE STKWRD(KEY,VALUES,FELEM,MAXVALS,KUNIT,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   KEY
      INTEGER     FELEM, MAXVALS
      DOUBLE PRECISION   VALUES(*)
      INTEGER     KUNIT
C
      KUNIT = 0
      CALL STKR1(KEY,0,FELEM,MAXVALS)
      CALL STKW2D(VALUES,STATUS)
C
      RETURN
      END
C
      SUBROUTINE STKWRR(KEY,VALUES,FELEM,MAXVALS,KUNIT,STATUS)
C
      IMPLICIT NONE
C
      CHARACTER*(*)   KEY
      INTEGER     FELEM, MAXVALS
      REAL        VALUES(*)
      INTEGER     KUNIT
C
      KUNIT = 0
      CALL STKR1(KEY,0,FELEM,MAXVALS)
      CALL STKW2R(VALUES,STATUS)
C
      RETURN
      END

