#  standard GALAHAD compilation and run instructions

#  Nick Gould, for GALAHAD production
#  This version: 2026-01-07

#  compilation agenda for package

$(PACKAGE)OBJECTSS = $(DEPENDENCIES) $(LGS)($(package)_single.o)
$(PACKAGE)OBJECTSD = $(DEPENDENCIES) $(LGD)($(package)_double.o)
$(PACKAGE)OBJECTSQ = $(DEPENDENCIES) $(LGQ)($(package)_quadruple.o)
$(PACKAGE)OBJECTSS64 = $(DEPENDENCIES) $(LGS64)($(package)_single_64.o)
$(PACKAGE)OBJECTSD64 = $(DEPENDENCIES) $(LGD64)($(package)_double_64.o)
$(PACKAGE)OBJECTSQ64 = $(DEPENDENCIES) $(LGQ64)($(package)_quadruple_64.o)

#  compilation agenda for package with C interface

$(PACKAGE)OBJECTSCS = $($(PACKAGE)OBJECTSS) make_ciface_common \
                      $(CDEPENDENCIES) $(CLGS)($(package)_ciface_single.o)
$(PACKAGE)OBJECTSCD = $($(PACKAGE)OBJECTSD) make_ciface_common \
                      $(CDEPENDENCIES) $(CLGD)($(package)_ciface_double.o)
$(PACKAGE)OBJECTSCQ = $($(PACKAGE)OBJECTSQ) make_ciface_common \
                      $(CDEPENDENCIES) $(CLGQ)($(package)_ciface_quadruple.o)
$(PACKAGE)OBJECTSCS64 = $($(PACKAGE)OBJECTSS64) make_ciface_common \
                        $(CDEPENDENCIES) \
                        $(CLGS64)($(package)_ciface_single_64.o)
$(PACKAGE)OBJECTSCD64 = $($(PACKAGE)OBJECTSD64) make_ciface_common \
                        $(CDEPENDENCIES) \
                        $(CLGD64)($(package)_ciface_double_64.o)
$(PACKAGE)OBJECTSCQ64 = $($(PACKAGE)OBJECTSQ64) make_ciface_common \
                        $(CDEPENDENCIES) \
                        $(CLGQ64)($(package)_ciface_quadruple_64.o)

#  compilation agenda for package with python interface

$(PACKAGE)OBJECTSPYS = $($(PACKAGE)OBJECTSCS) $(PYDEPENDENCIES) \
                       $(PYLGS)($(package)_pyiface.o)
$(PACKAGE)OBJECTSPYD = $($(PACKAGE)OBJECTSCD) $(PYDEPENDENCIES) \
                       $(PYLGD)($(package)_pyiface.o)
$(PACKAGE)OBJECTSPYS64 = $($(PACKAGE)OBJECTSCS) $(PYDEPENDENCIES) \
                         $(PYLGS64)($(package)_pyiface_64.o)
$(PACKAGE)OBJECTSPYD64 = $($(PACKAGE)OBJECTSCD) $(PYDEPENDENCIES) \
                         $(PYLGD64)($(package)_pyiface_64.o)

#  additional run agenda - main packages

SRUN$(PACKAGE) = $(CUTEST_TESTS) $(TESTDEPS) \
                 $(CULGS)(use$(package)_single.o) \
                 $(OBJS)/run$(package)_sif_single.o
DRUN$(PACKAGE) = $(CUTEST_TESTS) $(TESTDEPS) \
                 $(CULGD)(use$(package)_double.o) \
                 $(OBJD)/run$(package)_sif_double.o
QRUN$(PACKAGE) = $(CUTEST_TESTS) $(TESTDEPS) \
                 $(CULGQ)(use$(package)_quadruple.o) \
                 $(OBJQ)/run$(package)_sif_quadruple.o
SRUN$(PACKAGE)64 = $(CUTEST_TESTS) $(TESTDEPS) \
                   $(CULGS64)(use$(package)_single_64.o) \
                   $(OBJS64)/run$(package)_sif_single_64.o
DRUN$(PACKAGE)64 = $(CUTEST_TESTS) $(TESTDEPS) \
                   $(CULGD64)(use$(package)_double_64.o) \
                   $(OBJD64)/run$(package)_sif_double_64.o
QRUN$(PACKAGE)64 = $(CUTEST_TESTS) $(TESTDEPS) \
                   $(CULGQ64)(use$(package)_quadruple_64.o) \
                   $(OBJQ64)/run$(package)_sif_quadruple_64.o

#  qplib packages

SQPLIB$(PACKAGE) = $(QPLIB_TESTS) $(TESTDEPS) \
                   $(OBJS)/run$(package)_qplib_single.o
DQPLIB$(PACKAGE) = $(QPLIB_TESTS) $(TESTDEPS) \
                   $(OBJD)/run$(package)_qplib_double.o
QQPLIB$(PACKAGE) = $(QPLIB_TESTS) $(TESTDEPS) \
                   $(OBJQ)/run$(package)_qplib_quadruple.o
SQPLIB$(PACKAGE)64 = $(QPLIB_TESTS) $(TESTDEPS) \
                   $(OBJS64)/run$(package)_qplib_single_64.o
DQPLIB$(PACKAGE)64 = $(QPLIB_TESTS) $(TESTDEPS) \
                   $(OBJD64)/run$(package)_qplib_double_64.o
QQPLIB$(PACKAGE)64 = $(QPLIB_TESTS) $(TESTDEPS) \
                   $(OBJQ64)/run$(package)_qplib_quadruple_64.o

#  rb package

SRB$(PACKAGE) = $(RB_TESTS) $(TESTDEPS) $(OBJS)/run$(package)_rb_single.o
DRB$(PACKAGE) = $(RB_TESTS) $(TESTDEPS) $(OBJD)/run$(package)_rb_double.o
QRB$(PACKAGE) = $(RB_TESTS) $(TESTDEPS) $(OBJQ)/run$(package)_rb_quadruple.o
SRB$(PACKAGE)64 = $(RB_TESTS) $(TESTDEPS) $(OBJS64)/run$(package)_rb_single.o
DRB$(PACKAGE)64 = $(RB_TESTS) $(TESTDEPS) $(OBJD64)/run$(package)_rb_double.o
QRB$(PACKAGE)64 = $(RB_TESTS) $(TESTDEPS) $(OBJQ64)/run$(package)_rb_quadruple.o

#  libraries used when linking for tests

ifeq "$(HSL_64)" "_64"
  LIBS = -lgalahad $(HSL) $(MKL_PARDISO) $(PARDISO) $(WSMP) \
             $(METIS4ND64) $(METIS5ND64) $(PASTIX) $(MUMPS) $(MPI) \
             $(UMFPACK) $(LAPACK) $(BLAS) -lstdc++ -lhwloc
else
  LIBS = -lgalahad $(HSL) $(MKL_PARDISO) $(PARDISO) $(WSMP) \
             $(METIS4ND)  $(METIS5ND) $(PASTIX) $(MUMPS) $(MPI) \
             $(UMFPACK) $(LAPACK) $(BLAS) -lstdc++ -lhwloc
endif
PLIBS = $(LIBS) -lgalahad_problem
CLIBS = -lgalahad_c -lhsl_c $(LIBS)

#  compilation and run agenda

$(PACKAGE)OBJECTSS_CUTEST = $($(PACKAGE)OBJECTSS) $(SRUN$(PACKAGE))
$(PACKAGE)OBJECTSD_CUTEST = $($(PACKAGE)OBJECTSD) $(DRUN$(PACKAGE))
$(PACKAGE)OBJECTSQ_CUTEST = $($(PACKAGE)OBJECTSQ) $(QRUN$(PACKAGE))
$(PACKAGE)OBJECTSS_CUTEST64 = $($(PACKAGE)OBJECTSS64) $(SRUN$(PACKAGE)64)
$(PACKAGE)OBJECTSD_CUTEST64 = $($(PACKAGE)OBJECTSD64) $(DRUN$(PACKAGE)64)
$(PACKAGE)OBJECTSQ_CUTEST64 = $($(PACKAGE)OBJECTSQ64) $(QRUN$(PACKAGE)64)
$(PACKAGE)OBJECTSS_QPLIB = $($(PACKAGE)OBJECTSS) $(SQPLIB$(PACKAGE))
$(PACKAGE)OBJECTSD_QPLIB = $($(PACKAGE)OBJECTSD) $(DQPLIB$(PACKAGE))
$(PACKAGE)OBJECTSQ_QPLIB = $($(PACKAGE)OBJECTSQ) $(QQPLIB$(PACKAGE))
$(PACKAGE)OBJECTSS_QPLIB64 = $($(PACKAGE)OBJECTSS64) $(SQPLIB$(PACKAGE)64)
$(PACKAGE)OBJECTSD_QPLIB64 = $($(PACKAGE)OBJECTSD64) $(DQPLIB$(PACKAGE)64)
$(PACKAGE)OBJECTSQ_QPLIB64 = $($(PACKAGE)OBJECTSQ64) $(QQPLIB$(PACKAGE)64)
$(PACKAGE)OBJECTSS_RB = $($(PACKAGE)OBJECTSS) $(SRB$(PACKAGE))
$(PACKAGE)OBJECTSD_RB = $($(PACKAGE)OBJECTSD) $(DRB$(PACKAGE))
$(PACKAGE)OBJECTSQ_RB = $($(PACKAGE)OBJECTSQ) $(QRB$(PACKAGE))
$(PACKAGE)OBJECTSS_RB64 = $($(PACKAGE)OBJECTSS64) $(SRB$(PACKAGE)64)
$(PACKAGE)OBJECTSD_RB64 = $($(PACKAGE)OBJECTSD64) $(DRB$(PACKAGE)64)
$(PACKAGE)OBJECTSQ_RB64 = $($(PACKAGE)OBJECTSQ64) $(QRB$(PACKAGE)64)

#  test agenda

$(PACKAGE)DE = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)e_double.o
$(PACKAGE)DS = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)s_double.o
$(PACKAGE)DT = $($(PACKAGE)OBJECTSD) $(TESTDEPS) $(OBJD)/$(package)t_double.o
$(PACKAGE)DS2 = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)s2_double.o
$(PACKAGE)DS3 = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)s3_double.o
$(PACKAGE)DS4 = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)s4_double.o
$(PACKAGE)DS5 = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)s5_double.o
$(PACKAGE)DS6 = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)s6_double.o
$(PACKAGE)DS7 = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)s7_double.o
$(PACKAGE)DS8 = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)s8_double.o
$(PACKAGE)DS9 = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)s9_double.o
$(PACKAGE)DS10 = $($(PACKAGE)OBJECTSD) $(OBJD)/$(package)s10_double.o
$(PACKAGE)DT2 = $($(PACKAGE)OBJECTSD) $(TESTDEPS) $(OBJD)/$(package)t2_double.o
$(PACKAGE)DTI = $($(PACKAGE)OBJECTSD) $(TESTDEPS) $(OBJD)/$(package)ti_double.o

$(PACKAGE)SS = $($(PACKAGE)OBJECTSS) $(OBJS)/$(package)s_single.o
$(PACKAGE)ST = $($(PACKAGE)OBJECTSS) $(TESTDEPS) $(OBJS)/$(package)t_single.o
$(PACKAGE)SS2 = $($(PACKAGE)OBJECTSS) $(OBJS)/$(package)s2_single.o
$(PACKAGE)SS3 = $($(PACKAGE)OBJECTSS) $(OBJS)/$(package)s3_single.o
$(PACKAGE)SS4 = $($(PACKAGE)OBJECTSS) $(OBJS)/$(package)s4_single.o
$(PACKAGE)SS5 = $($(PACKAGE)OBJECTSS) $(OBJS)/$(package)s5_single.o
$(PACKAGE)ST2 = $($(PACKAGE)OBJECTSS) $(TESTDEPS) $(OBJS)/$(package)t2_single.o
$(PACKAGE)STI = $($(PACKAGE)OBJECTSS) $(TESTDEPS) $(OBJS)/$(package)ti_single.o

$(PACKAGE)QS = $($(PACKAGE)OBJECTSQ) $(OBJQ)/$(package)s_quadruple.o
$(PACKAGE)QT = $($(PACKAGE)OBJECTSQ) $(TESTDEPS) $(OBJQ)/$(package)t_quadruple.o
$(PACKAGE)QS2 = $($(PACKAGE)OBJECTSQ) $(OBJQ)/$(package)s2_quadruple.o
$(PACKAGE)QS3 = $($(PACKAGE)OBJECTSQ) $(OBJQ)/$(package)s3_quadruple.o
$(PACKAGE)QS4 = $($(PACKAGE)OBJECTSQ) $(OBJQ)/$(package)s4_quadruple.o
$(PACKAGE)QS8 = $($(PACKAGE)OBJECTSQ) $(OBJQ)/$(package)s8_quadruple.o
$(PACKAGE)QS9 = $($(PACKAGE)OBJECTSQ) $(OBJQ)/$(package)s9_quadruple.o
$(PACKAGE)QT2 = $($(PACKAGE)OBJECTSQ) $(TESTDEPS) \
                $(OBJQ)/$(package)t2_quadruple.o
$(PACKAGE)QTI = $($(PACKAGE)OBJECTSQ) $(TESTDEPS) \
                $(OBJQ)/$(package)ti_quadruple.o

$(PACKAGE)DE64 = $($(PACKAGE)OBJECTSD64) $(OBJD64)/$(package)e_double_64.o
$(PACKAGE)DS64 = $($(PACKAGE)OBJECTSD64) $(OBJD64)/$(package)s_double_64.o
$(PACKAGE)DT64 = $($(PACKAGE)OBJECTSD64) $(TESTDEPS64) \
                 $(OBJD64)/$(package)t_double_64.o
$(PACKAGE)DS264 = $($(PACKAGE)OBJECTSD64) $(OBJD64)/$(package)s2_double_64.o
$(PACKAGE)DS364 = $($(PACKAGE)OBJECTSD64) $(OBJD64)/$(package)s3_double_64.o
$(PACKAGE)DS464 = $($(PACKAGE)OBJECTSD64) $(OBJD64)/$(package)s4_double_64.o
$(PACKAGE)DS564 = $($(PACKAGE)OBJECTSD64) $(OBJD64)/$(package)s5_double_64.o
$(PACKAGE)DS664 = $($(PACKAGE)OBJECTSD64) $(OBJD64)/$(package)s6_double_64.o
$(PACKAGE)DS764 = $($(PACKAGE)OBJECTSD64) $(OBJD64)/$(package)s7_double_64.o
$(PACKAGE)DS864 = $($(PACKAGE)OBJECTSD64) $(OBJD64)/$(package)s8_double_64.o
$(PACKAGE)DT264 = $($(PACKAGE)OBJECTSD64) $(TESTDEPS64) \
                  $(OBJD64)/$(package)t2_double_64.o
$(PACKAGE)DTI64 = $($(PACKAGE)OBJECTSD64) $(TESTDEPS64) \
                  $(OBJD64)/$(package)ti_double_64.o

$(PACKAGE)SS64 = $($(PACKAGE)OBJECTSS64) $(OBJS64)/$(package)s_single_64.o
$(PACKAGE)ST64 = $($(PACKAGE)OBJECTSS64) $(TESTDEPS64) \
                 $(OBJS64)/$(package)t_single_64.o
$(PACKAGE)SS264 = $($(PACKAGE)OBJECTSS64) $(OBJS64)/$(package)s2_single_64.o
$(PACKAGE)SS364 = $($(PACKAGE)OBJECTSS64) $(OBJS64)/$(package)s3_single_64.o
$(PACKAGE)SS464 = $($(PACKAGE)OBJECTSS64) $(OBJS64)/$(package)s4_single_64.o
$(PACKAGE)SS564 = $($(PACKAGE)OBJECTSS64) $(OBJS64)/$(package)s5_single_64.o
$(PACKAGE)ST264 = $($(PACKAGE)OBJECTSS64) $(TESTDEPS64) \
                  $(OBJS64)/$(package)t2_single_64.o
$(PACKAGE)STI64 = $($(PACKAGE)OBJECTSS64) $(TESTDEPS64) \
                  $(OBJS64)/$(package)ti_single_64.o

$(PACKAGE)QS64 = $($(PACKAGE)OBJECTSQ64) $(OBJQ64)/$(package)s_quadruple_64.o
$(PACKAGE)QT64 = $($(PACKAGE)OBJECTSQ64) $(TESTDEPS64) \
                 $(OBJQ64)/$(package)t_quadruple_64.o
$(PACKAGE)QS264 = $($(PACKAGE)OBJECTSQ64) $(OBJQ64)/$(package)s2_quadruple_64.o
$(PACKAGE)QS364 = $($(PACKAGE)OBJECTSQ64) $(OBJQ64)/$(package)s3_quadruple_64.o
$(PACKAGE)QS464 = $($(PACKAGE)OBJECTSQ64) $(OBJQ64)/$(package)s4_quadruple_64.o
$(PACKAGE)QT264 = $($(PACKAGE)OBJECTSQ64) $(TESTDEPS64) \
                  $(OBJQ64)/$(package)t2_quadruple_64.o
$(PACKAGE)QTI64 = $($(PACKAGE)OBJECTSQ64) $(TESTDEPS64) \
                  $(OBJQ64)/$(package)ti_quadruple_64.o

R$(PACKAGE)DE = $(OBJD)/$(package)e_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DS = $(OBJD)/$(package)s_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DT = $(OBJD)/$(package)t_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DS2 = $(OBJD)/$(package)s2_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DS3 = $(OBJD)/$(package)s3_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DS4 = $(OBJD)/$(package)s4_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DS5 = $(OBJD)/$(package)s5_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DS6 = $(OBJD)/$(package)s6_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DS7 = $(OBJD)/$(package)s7_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DS8 = $(OBJD)/$(package)s8_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DS9 = $(OBJD)/$(package)s9_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DS10 = $(OBJD)/$(package)s10_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DT2 = $(OBJD)/$(package)t2_double.o -L$(OBJD) $(LIBS)
R$(PACKAGE)DTI = $(OBJD)/$(package)ti_double.o -L$(OBJD) $(LIBS)

R$(PACKAGE)SS = $(OBJS)/$(package)s_single.o -L$(OBJS) $(LIBS)
R$(PACKAGE)ST = $(OBJS)/$(package)t_single.o -L$(OBJS) $(LIBS)
R$(PACKAGE)SS2 = $(OBJS)/$(package)s2_single.o -L$(OBJS) $(LIBS)
R$(PACKAGE)SS3 = $(OBJS)/$(package)s3_single.o -L$(OBJS) $(LIBS)
R$(PACKAGE)SS4 = $(OBJS)/$(package)s4_single.o -L$(OBJS) $(LIBS)
R$(PACKAGE)SS5 = $(OBJS)/$(package)s5_single.o -L$(OBJS) $(LIBS)
R$(PACKAGE)ST2 = $(OBJS)/$(package)t2_single.o -L$(OBJS) $(LIBS)
R$(PACKAGE)STI = $(OBJS)/$(package)ti_single.o -L$(OBJS) $(LIBS)

R$(PACKAGE)QS = $(OBJQ)/$(package)s_quadruple.o -L$(OBJQ) $(LIBS)
R$(PACKAGE)QT = $(OBJQ)/$(package)t_quadruple.o -L$(OBJQ) $(LIBS)
R$(PACKAGE)QS2 = $(OBJQ)/$(package)s2_quadruple.o -L$(OBJQ) $(LIBS)
R$(PACKAGE)QS3 = $(OBJQ)/$(package)s3_quadruple.o -L$(OBJQ) $(LIBS)
R$(PACKAGE)QS4 = $(OBJQ)/$(package)s4_quadruple.o -L$(OBJQ) $(LIBS)
R$(PACKAGE)QS8 = $(OBJQ)/$(package)s8_quadruple.o -L$(OBJQ) $(LIBS)
R$(PACKAGE)QS9 = $(OBJQ)/$(package)s9_quadruple.o -L$(OBJQ) $(LIBS)
R$(PACKAGE)QT2 = $(OBJQ)/$(package)t2_quadruple.o -L$(OBJQ) $(LIBS)
R$(PACKAGE)QTI = $(OBJQ)/$(package)ti_quadruple.o -L$(OBJQ) $(LIBS)

R$(PACKAGE)DE64 = $(OBJD64)/$(package)e_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DS64 = $(OBJD64)/$(package)s_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DT64 = $(OBJD64)/$(package)t_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DS264 = $(OBJD64)/$(package)s2_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DS364 = $(OBJD64)/$(package)s3_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DS464 = $(OBJD64)/$(package)s4_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DS564 = $(OBJD64)/$(package)s5_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DS664 = $(OBJD64)/$(package)s6_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DS764 = $(OBJD64)/$(package)s7_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DS864 = $(OBJD64)/$(package)s8_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DT264 = $(OBJD64)/$(package)t2_double_64.o -L$(OBJD64) $(LIBS)
R$(PACKAGE)DTI64 = $(OBJD64)/$(package)ti_double_64.o -L$(OBJD64) $(LIBS)

R$(PACKAGE)SS64 = $(OBJS64)/$(package)s_single_64.o -L$(OBJS64) $(LIBS)
R$(PACKAGE)ST64 = $(OBJS64)/$(package)t_single_64.o -L$(OBJS64) $(LIBS)
R$(PACKAGE)SS264 = $(OBJS64)/$(package)s2_single_64.o -L$(OBJS64) $(LIBS)
R$(PACKAGE)SS364 = $(OBJS64)/$(package)s3_single_64.o -L$(OBJS64) $(LIBS)
R$(PACKAGE)SS464 = $(OBJS64)/$(package)s4_single_64.o -L$(OBJS64) $(LIBS)
R$(PACKAGE)SS564 = $(OBJS64)/$(package)s5_single_64.o -L$(OBJS64) $(LIBS)
R$(PACKAGE)ST264 = $(OBJS64)/$(package)t2_single_64.o -L$(OBJS64) $(LIBS)
R$(PACKAGE)STI64 = $(OBJS64)/$(package)ti_single_64.o -L$(OBJS64) $(LIBS)

R$(PACKAGE)QS64 = $(OBJQ64)/$(package)s_quadruple_64.o -L$(OBJQ64) $(LIBS)
R$(PACKAGE)QT64 = $(OBJQ64)/$(package)t_quadruple_64.o -L$(OBJQ64) $(LIBS)
R$(PACKAGE)QS264 = $(OBJQ64)/$(package)s2_quadruple_64.o -L$(OBJQ64) $(LIBS)
R$(PACKAGE)QS364 = $(OBJQ64)/$(package)s3_quadruple_64.o -L$(OBJQ64) $(LIBS)
R$(PACKAGE)QS464 = $(OBJQ64)/$(package)s4_quadruple_64.o -L$(OBJQ64) $(LIBS)
R$(PACKAGE)QT264 = $(OBJQ64)/$(package)t2_quadruple_64.o -L$(OBJQ64) $(LIBS)
R$(PACKAGE)QTI64 = $(OBJQ64)/$(package)ti_quadruple_64.o -L$(OBJQ64) $(LIBS)

#  test agenda for C interfaces

$(PACKAGE)CSS = $($(PACKAGE)OBJECTSCS) $(OBJS)/$(package)cs_single.o
$(PACKAGE)CST = $($(PACKAGE)OBJECTSCS) $(TESTDEPS) \
                $(OBJS)/$(package)ct_single.o
$(PACKAGE)CSS2 = $($(PACKAGE)OBJECTSCS) $(OBJS)/$(package)cs2_single.o
$(PACKAGE)CSS3 = $($(PACKAGE)OBJECTSCS) $(OBJS)/$(package)cs3_single.o
$(PACKAGE)CSS4 = $($(PACKAGE)OBJECTSCS) $(OBJS)/$(package)cs4_single.o
$(PACKAGE)CSS5 = $($(PACKAGE)OBJECTSCS) $(OBJS)/$(package)cs5_single.o
$(PACKAGE)CSS6 = $($(PACKAGE)OBJECTSCS) $(OBJS)/$(package)cs6_single.o
$(PACKAGE)CSS7 = $($(PACKAGE)OBJECTSCS) $(OBJS)/$(package)cs7_single.o
$(PACKAGE)CSS8 = $($(PACKAGE)OBJECTSCS) $(OBJS)/$(package)cs8_single.o
$(PACKAGE)CSTI = $($(PACKAGE)OBJECTSCS) $(TESTDEPS) \
                 $(OBJS)/$(package)cti_single.o
$(PACKAGE)CSTF = $($(PACKAGE)OBJECTSCS) $(TESTDEPS) \
                 $(OBJS)/$(package)ctf_single.o
$(PACKAGE)CSTM = $($(PACKAGE)OBJECTSCS) $(TESTDEPS) \
                 $(OBJS)/$(package)ctm_single.o

$(PACKAGE)CDS = $($(PACKAGE)OBJECTSCD) $(OBJD)/$(package)cs_double.o
$(PACKAGE)CDT = $($(PACKAGE)OBJECTSCD) $(TESTDEPS) $(OBJD)/$(package)ct_double.o
$(PACKAGE)CDS2 = $($(PACKAGE)OBJECTSCD) $(OBJD)/$(package)cs2_double.o
$(PACKAGE)CDS3 = $($(PACKAGE)OBJECTSCD) $(OBJD)/$(package)cs3_double.o
$(PACKAGE)CDS4 = $($(PACKAGE)OBJECTSCD) $(OBJD)/$(package)cs4_double.o
$(PACKAGE)CDS5 = $($(PACKAGE)OBJECTSCD) $(OBJD)/$(package)cs5_double.o
$(PACKAGE)CDS6 = $($(PACKAGE)OBJECTSCD) $(OBJD)/$(package)cs6_double.o
$(PACKAGE)CDS7 = $($(PACKAGE)OBJECTSCD) $(OBJD)/$(package)cs7_double.o
$(PACKAGE)CDS8 = $($(PACKAGE)OBJECTSCD) $(OBJD)/$(package)cs8_double.o
$(PACKAGE)CDT2 = $($(PACKAGE)OBJECTSCD) $(TESTDEPS) \
                 $(OBJD)/$(package)ct2_double.o
$(PACKAGE)CDT3 = $($(PACKAGE)OBJECTSCD) $(TESTDEPS) \
                 $(OBJD)/$(package)ct3_double.o
$(PACKAGE)CDTI = $($(PACKAGE)OBJECTSCD) $(TESTDEPS) \
                 $(OBJD)/$(package)cti_double.o
$(PACKAGE)CDTF = $($(PACKAGE)OBJECTSCD) $(TESTDEPS) \
                 $(OBJD)/$(package)ctf_double.o
$(PACKAGE)CDTM = $($(PACKAGE)OBJECTSCD) $(TESTDEPS) \
                 $(OBJD)/$(package)ctm_double.o

$(PACKAGE)CQS = $($(PACKAGE)OBJECTSCQ) $(OBJQ)/$(package)cs_quadruple.o
$(PACKAGE)CQT = $($(PACKAGE)OBJECTSCQ) $(TESTDEPS) \
                $(OBJQ)/$(package)ct_quadruple.o
$(PACKAGE)CQS2 = $($(PACKAGE)OBJECTSCQ) $(OBJQ)/$(package)cs2_quadruple.o
$(PACKAGE)CQS3 = $($(PACKAGE)OBJECTSCQ) $(OBJQ)/$(package)cs3_quadruple.o
$(PACKAGE)CQS4 = $($(PACKAGE)OBJECTSCQ) $(OBJQ)/$(package)cs4_quadruple.o
$(PACKAGE)CQS5 = $($(PACKAGE)OBJECTSCQ) $(OBJQ)/$(package)cs5_quadruple.o
$(PACKAGE)CQS6 = $($(PACKAGE)OBJECTSCQ) $(OBJQ)/$(package)cs6_quadruple.o
$(PACKAGE)CQS7 = $($(PACKAGE)OBJECTSCQ) $(OBJQ)/$(package)cs7_quadruple.o
$(PACKAGE)CQS8 = $($(PACKAGE)OBJECTSCQ) $(OBJQ)/$(package)cs8_quadruple.o
$(PACKAGE)CQTI = $($(PACKAGE)OBJECTSCQ) $(TESTDEPS) \
                 $(OBJQ)/$(package)cti_quadruple.o
$(PACKAGE)CQTF = $($(PACKAGE)OBJECTSCQ) $(TESTDEPS) \
                 $(OBJQ)/$(package)ctf_quadruple.o
$(PACKAGE)CQTM = $($(PACKAGE)OBJECTSCQ) $(TESTDEPS) \
                 $(OBJQ)/$(package)ctm_quadruple.o

$(PACKAGE)CSS64 = $($(PACKAGE)OBJECTSCS64) $(OBJS64)/$(package)cs_single_64.o
$(PACKAGE)CST64 = $($(PACKAGE)OBJECTSCS64) \
                  $(TESTDEPS) $(OBJS64)/$(package)ct_single_64.o
$(PACKAGE)CSS264 = $($(PACKAGE)OBJECTSCS64) $(OBJS64)/$(package)cs2_single_64.o
$(PACKAGE)CSS364 = $($(PACKAGE)OBJECTSCS64) $(OBJS64)/$(package)cs3_single_64.o
$(PACKAGE)CSS464 = $($(PACKAGE)OBJECTSCS64) $(OBJS64)/$(package)cs4_single_64.o
$(PACKAGE)CSS564 = $($(PACKAGE)OBJECTSCS64) $(OBJS64)/$(package)cs5_single_64.o
$(PACKAGE)CSS664 = $($(PACKAGE)OBJECTSCS64) $(OBJS64)/$(package)cs6_single_64.o
$(PACKAGE)CSS764 = $($(PACKAGE)OBJECTSCS64) $(OBJS64)/$(package)cs7_single_64.o
$(PACKAGE)CSS864 = $($(PACKAGE)OBJECTSCS64) $(OBJS64)/$(package)cs8_single_64.o
$(PACKAGE)CSTI64 = $($(PACKAGE)OBJECTSCS64) $(TESTDEPS) \
                   $(OBJS64)/$(package)cti_single_64.o
$(PACKAGE)CSTF64 = $($(PACKAGE)OBJECTSCS64) $(TESTDEPS) \
                   $(OBJS64)/$(package)ctf_single_64.o
$(PACKAGE)CSTM64 = $($(PACKAGE)OBJECTSCS64) $(TESTDEPS) \
                   $(OBJS64)/$(package)ctm_single_64.o

$(PACKAGE)CDS64 = $($(PACKAGE)OBJECTSCD64) $(OBJD64)/$(package)cs_double_64.o
$(PACKAGE)CDT64 = $($(PACKAGE)OBJECTSCD64) $(TESTDEPS) \
                  $(OBJD64)/$(package)ct_double_64.o
$(PACKAGE)CDS264 = $($(PACKAGE)OBJECTSCD64) $(OBJD64)/$(package)cs2_double_64.o
$(PACKAGE)CDS364 = $($(PACKAGE)OBJECTSCD64) $(OBJD64)/$(package)cs3_double_64.o
$(PACKAGE)CDS464 = $($(PACKAGE)OBJECTSCD64) $(OBJD64)/$(package)cs4_double_64.o
$(PACKAGE)CDS564 = $($(PACKAGE)OBJECTSCD64) $(OBJD64)/$(package)cs5_double_64.o
$(PACKAGE)CDS664 = $($(PACKAGE)OBJECTSCD64) $(OBJD64)/$(package)cs6_double_64.o
$(PACKAGE)CDS764 = $($(PACKAGE)OBJECTSCD64) $(OBJD64)/$(package)cs7_double_64.o
$(PACKAGE)CDS864 = $($(PACKAGE)OBJECTSCD64) $(OBJD64)/$(package)cs8_double_64.o
$(PACKAGE)CDT264 = $($(PACKAGE)OBJECTSCD64) $(TESTDEPS) \
                   $(OBJD64)/$(package)ct2_double_64.o
$(PACKAGE)CDT364 = $($(PACKAGE)OBJECTSCD64) $(TESTDEPS) \
                   $(OBJD64)/$(package)ct3_double_64.o
$(PACKAGE)CDTI64 = $($(PACKAGE)OBJECTSCD64) $(TESTDEPS) \
                   $(OBJD64)/$(package)cti_double_64.o
$(PACKAGE)CDTF64 = $($(PACKAGE)OBJECTSCD64) $(TESTDEPS) \
                   $(OBJD64)/$(package)ctf_double_64.o
$(PACKAGE)CDTM64 = $($(PACKAGE)OBJECTSCD64) $(TESTDEPS) \
                   $(OBJD64)/$(package)ctm_double_64.o

$(PACKAGE)CQS64 = $($(PACKAGE)OBJECTSCQ64) $(OBJQ64)/$(package)cs_quadruple_64.o
$(PACKAGE)CQT64 = $($(PACKAGE)OBJECTSCQ64) \
                  $(TESTDEPS) $(OBJQ64)/$(package)ct_quadruple_64.o
$(PACKAGE)CQS264 = $($(PACKAGE)OBJECTSCQ64) \
                   $(OBJQ64)/$(package)cs2_quadruple_64.o
$(PACKAGE)CQS364 = $($(PACKAGE)OBJECTSCQ64) \
                   $(OBJQ64)/$(package)cs3_quadruple_64.o
$(PACKAGE)CQS464 = $($(PACKAGE)OBJECTSCQ64) \
                   $(OBJQ64)/$(package)cs4_quadruple_64.o
$(PACKAGE)CQS564 = $($(PACKAGE)OBJECTSCQ64) \
                   $(OBJQ64)/$(package)cs5_quadruple_64.o
$(PACKAGE)CQS664 = $($(PACKAGE)OBJECTSCQ64) \
                   $(OBJQ64)/$(package)cs6_quadruple_64.o
$(PACKAGE)CQS764 = $($(PACKAGE)OBJECTSCQ64) \
                   $(OBJQ64)/$(package)cs7_quadruple_64.o
$(PACKAGE)CQS864 = $($(PACKAGE)OBJECTSCQ64) \
                   $(OBJQ64)/$(package)cs8_quadruple_64.o
$(PACKAGE)CQTI64 = $($(PACKAGE)OBJECTSCQ64) $(TESTDEPS) \
                   $(OBJQ64)/$(package)cti_quadruple_64.o
$(PACKAGE)CQTF64 = $($(PACKAGE)OBJECTSCQ64) $(TESTDEPS) \
                   $(OBJQ64)/$(package)ctf_quadruple_64.o
$(PACKAGE)CQTM64 = $($(PACKAGE)OBJECTSCQ64) $(TESTDEPS) \
                   $(OBJQ64)/$(package)ctm_quadruple_64.o

R$(PACKAGE)CSS = $(OBJS)/$(package)cs_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CST = $(OBJS)/$(package)ct_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CSS2 = $(OBJS)/$(package)cs2_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CSS3 = $(OBJS)/$(package)cs3_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CSS4 = $(OBJS)/$(package)cs4_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CSS5 = $(OBJS)/$(package)cs5_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CSS6 = $(OBJS)/$(package)cs6_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CSS7 = $(OBJS)/$(package)cs7_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CSS8 = $(OBJS)/$(package)cs8_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CTI = $(OBJS)/$(package)cti_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CSTI = $(OBJS)/$(package)cti_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CSTF = $(OBJS)/$(package)ctf_single.o -L$(OBJS) $(CLIBS)
R$(PACKAGE)CSTM = $(OBJS)/$(package)ctm_single.o -L$(OBJS) $(CLIBS)

R$(PACKAGE)CDS = $(OBJD)/$(package)cs_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDT = $(OBJD)/$(package)ct_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDS2 = $(OBJD)/$(package)cs2_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDS3 = $(OBJD)/$(package)cs3_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDS4 = $(OBJD)/$(package)cs4_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDS5 = $(OBJD)/$(package)cs5_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDS6 = $(OBJD)/$(package)cs6_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDS7 = $(OBJD)/$(package)cs7_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDS8 = $(OBJD)/$(package)cs8_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDT2 = $(OBJD)/$(package)ct2_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDT3 = $(OBJD)/$(package)ct3_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDTI = $(OBJD)/$(package)cti_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDTF = $(OBJD)/$(package)ctf_double.o -L$(OBJD) $(CLIBS)
R$(PACKAGE)CDTM = $(OBJD)/$(package)ctm_double.o -L$(OBJD) $(CLIBS)

R$(PACKAGE)CQS = $(OBJQ)/$(package)cs_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQT = $(OBJQ)/$(package)ct_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQS2 = $(OBJQ)/$(package)cs2_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQS3 = $(OBJQ)/$(package)cs3_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQS4 = $(OBJQ)/$(package)cs4_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQS5 = $(OBJQ)/$(package)cs5_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQS6 = $(OBJQ)/$(package)cs6_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQS7 = $(OBJQ)/$(package)cs7_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQS8 = $(OBJQ)/$(package)cs8_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQTI = $(OBJQ)/$(package)cti_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQTF = $(OBJQ)/$(package)ctf_quadruple.o -L$(OBJQ) $(CLIBS)
R$(PACKAGE)CQTM = $(OBJQ)/$(package)ctm_quadruple.o -L$(OBJQ) $(CLIBS)

R$(PACKAGE)CSS64 = $(OBJS64)/$(package)cs_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CST64 = $(OBJS64)/$(package)ct_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CSS264 = $(OBJS64)/$(package)cs2_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CSS364 = $(OBJS64)/$(package)cs3_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CSS464 = $(OBJS64)/$(package)cs4_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CSS564 = $(OBJS64)/$(package)cs5_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CSS664 = $(OBJS64)/$(package)cs6_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CSS764 = $(OBJS64)/$(package)cs7_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CSS864 = $(OBJS64)/$(package)cs8_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CTI64 = $(OBJS64)/$(package)cti_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CSTI64 = $(OBJS64)/$(package)cti_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CSTF64 = $(OBJS64)/$(package)ctf_single_64.o -L$(OBJS64) $(CLIBS)
R$(PACKAGE)CSTM64 = $(OBJS64)/$(package)ctm_single_64.o -L$(OBJS64) $(CLIBS)

R$(PACKAGE)CDS64 = $(OBJD64)/$(package)cs_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDT64 = $(OBJD64)/$(package)ct_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDS264 = $(OBJD64)/$(package)cs2_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDS364 = $(OBJD64)/$(package)cs3_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDS464 = $(OBJD64)/$(package)cs4_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDS564 = $(OBJD64)/$(package)cs5_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDS664 = $(OBJD64)/$(package)cs6_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDS764 = $(OBJD64)/$(package)cs7_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDS864 = $(OBJD64)/$(package)cs8_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDT264 = $(OBJD64)/$(package)ct2_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDT364 = $(OBJD64)/$(package)ct3_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDTI64 = $(OBJD64)/$(package)cti_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDTF64 = $(OBJD64)/$(package)ctf_double_64.o -L$(OBJD64) $(CLIBS)
R$(PACKAGE)CDTM64 = $(OBJD64)/$(package)ctm_double_64.o -L$(OBJD64) $(CLIBS)

R$(PACKAGE)CQS64 = $(OBJQ64)/$(package)cs_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQT64 = $(OBJQ64)/$(package)ct_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQS264 = $(OBJQ64)/$(package)cs2_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQS364 = $(OBJQ64)/$(package)cs3_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQS464 = $(OBJQ64)/$(package)cs4_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQS564 = $(OBJQ64)/$(package)cs5_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQS664 = $(OBJQ64)/$(package)cs6_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQS764 = $(OBJQ64)/$(package)cs7_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQS864 = $(OBJQ64)/$(package)cs8_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQTI64 = $(OBJQ64)/$(package)cti_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQTF64 = $(OBJQ64)/$(package)ctf_quadruple_64.o -L$(OBJQ64) $(CLIBS)
R$(PACKAGE)CQTM64 = $(OBJQ64)/$(package)ctm_quadruple_64.o -L$(OBJQ64) $(CLIBS)

#  =========================================================================
#  ========================== makefile stanza ==============================
#  =========================================================================

#  main compilations and runs

all: $(package)
all_$(package): all

tests: $(TESTS)
test: test_$(package)
test_spec: test_$(package)_spec
test_full: test_$(package)_full
test_cutest: test_$(package)_cutest
test_qplib: test_$(package)_qplib
test_rb: test_$(package)_rb
test_ciface: test_$(package)_ciface
test_cifaces: test_$(package)_cifaces

#  process package

$(package): $(package)_silent
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC)"
$(package)_silent: $(package)_silent_$(PRECIS)
$(package)_silent_single: $($(PACKAGE)OBJECTSS)
$(package)_silent_double: $($(PACKAGE)OBJECTSD)
$(package)_silent_quadruple: $($(PACKAGE)OBJECTSQ)
$(package)_silent_single_64: $($(PACKAGE)OBJECTSS64)
$(package)_silent_double_64: $($(PACKAGE)OBJECTSD64)
$(package)_silent_quadruple_64: $($(PACKAGE)OBJECTSQ64)

#  process C interface to package

#$(package)c: $(package)c_$(PRECIS)
#	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_C)"
#$(package)c_single: $($(PACKAGE)OBJECTSCS)
#	$(RANLIB) $(LGS)
#	$(RANLIB) $(CLGS)
#$(package)c_double: $($(PACKAGE)OBJECTSCD)
#	$(RANLIB) $(LGD)
#	$(RANLIB) $(CLGD)
#$(package)c_single_64: $($(PACKAGE)OBJECTSCS64)
#	$(RANLIB) $(LGS64)
#	$(RANLIB) $(CLGS64)
#$(package)c_double_64: $($(PACKAGE)OBJECTSCD64)
#	$(RANLIB) $(LGD64)
#	$(RANLIB) $(CLGD64)

$(package)_ciface: $(package)_ciface_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_C)"
$(package)_ciface_single: $(package) $($(PACKAGE)OBJECTSCS)
	$(RANLIB) $(LGS)
	$(RANLIB) $(CLGS)
$(package)_ciface_double: $(package) $($(PACKAGE)OBJECTSCD)
	$(RANLIB) $(LGD)
	$(RANLIB) $(CLGD)
$(package)_ciface_quadruple: $(package) $($(PACKAGE)OBJECTSCQ)
	$(RANLIB) $(LGQ)
	$(RANLIB) $(CLGQ)
$(package)_ciface_single_64: $(package) $($(PACKAGE)OBJECTSCS64)
	$(RANLIB) $(LGS64)
	$(RANLIB) $(CLGS64)
$(package)_ciface_double_64: $(package) $($(PACKAGE)OBJECTSCD64)
	$(RANLIB) $(LGD64)
	$(RANLIB) $(CLGD64)
$(package)_ciface_quadruple_64: $(package) $($(PACKAGE)OBJECTSCQ64)
	$(RANLIB) $(LGQ64)
	$(RANLIB) $(CLGQ64)

#  process C interface to package silently

$(package)_ciface_silent: $(package)_ciface_silent_$(PRECIS)
$(package)_ciface_silent_single: $($(PACKAGE)OBJECTSCS)
$(package)_ciface_silent_double: $($(PACKAGE)OBJECTSCD)
$(package)_ciface_silent_quadruple: $($(PACKAGE)OBJECTSCQ)
$(package)_ciface_silent_single_64: $($(PACKAGE)OBJECTSCS64)
$(package)_ciface_silent_double_64: $($(PACKAGE)OBJECTSCD64)
$(package)_ciface_silent_quadruple_64: $($(PACKAGE)OBJECTSCQ64)

#  process python interface to package

#$(package)py: $(package)py_$(PRECIS)
#	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_PY)"
#$(package)py_single: $($(PACKAGE)OBJECTSPYS)
#	$(RANLIB) $(LGS)
#	$(RANLIB) $(CLGS)
#	$(RANLIB) $(PYLGS)
#$(package)py_double: $($(PACKAGE)OBJECTSPYD)
#	$(RANLIB) $(LGD)
#	$(RANLIB) $(CLGD)
#	$(RANLIB) $(PYLGD)

$(package)_pyiface: $(package)_ciface_$(PRECIS) $(package)_pyiface_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_PY)"
$(package)_pyiface_single: $($(PACKAGE)OBJECTSPYS)
	$(RANLIB) $(LGS)
	$(RANLIB) $(CLGS)
	$(RANLIB) $(PYLGS)
$(package)_pyiface_double: $($(PACKAGE)OBJECTSPYD)
	$(RANLIB) $(LGD)
	$(RANLIB) $(CLGD)
	$(RANLIB) $(PYLGD)
$(package)_pyiface_quadruple: $($(PACKAGE)OBJECTSPYQ)
	$(RANLIB) $(LGQ)
	$(RANLIB) $(CLGQ)
	$(RANLIB) $(PYLGQ)
$(package)_pyiface_single_64: $($(PACKAGE)OBJECTSPYS64)
	$(RANLIB) $(LGS64)
	$(RANLIB) $(CLGS64)
	$(RANLIB) $(PYLGS64)
$(package)_pyiface_double_64: $($(PACKAGE)OBJECTSPYD64)
	$(RANLIB) $(LGD64)
	$(RANLIB) $(CLGD64)
	$(RANLIB) $(PYLGD64)
$(package)_pyiface_quadruple_64: $($(PACKAGE)OBJECTSPYQ64)
	$(RANLIB) $(LGQ64)
	$(RANLIB) $(CLGQ64)
	$(RANLIB) $(PYLGQ64)

#  process python interface to package silently

#$(package)py_silent: $(package)py_silent_$(PRECIS)
#$(package)py_silent_single: $($(PACKAGE)OBJECTSPYS)
#$(package)py_silent_double: $($(PACKAGE)OBJECTSPYD)
#$(package)py_silent_quadruple: $($(PACKAGE)OBJECTSPYQ)

$(package)_pyiface_silent: $(package)_pyiface_silent_$(PRECIS)
$(package)_pyiface_silent_single: $($(PACKAGE)OBJECTSPYS)
$(package)_pyiface_silent_double: $($(PACKAGE)OBJECTSPYD)
$(package)_pyiface_silent_quadruple: $($(PACKAGE)OBJECTSPYQ)
$(package)_pyiface_silent_single_64: $($(PACKAGE)OBJECTSPYS64)
$(package)_pyiface_silent_double_64: $($(PACKAGE)OBJECTSPYD64)
$(package)_pyiface_silent_quadruple_64: $($(PACKAGE)OBJECTSPYQ64)

# process package for CUTEst

$(package)_cutest: $(package)_cutest_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_CUTEST)"
$(package)_cutest_single: $($(PACKAGE)OBJECTSS_CUTEST)
	$(RANLIB) $(LGS)
$(package)_cutest_double: $($(PACKAGE)OBJECTSD_CUTEST)
	$(RANLIB) $(LGD)
$(package)_cutest_quadruple: $($(PACKAGE)OBJECTSQ_CUTEST)
	$(RANLIB) $(LGQ)
$(package)_cutest_single_64: $($(PACKAGE)OBJECTSS_CUTEST64)
	$(RANLIB) $(LGS64)
$(package)_cutest_double_64: $($(PACKAGE)OBJECTSD_CUTEST64)
	$(RANLIB) $(LGD64)
$(package)_cutest_quadruple_64: $($(PACKAGE)OBJECTSQ_CUTEST64)
	$(RANLIB) $(LGQ64)

#  process package for CUTEst silently

$(package)_cutest_silent: $(package)_cutest_silent_$(PRECIS)
$(package)_cutest_silent_single: $($(PACKAGE)OBJECTSS_CUTEST)
$(package)_cutest_silent_double: $($(PACKAGE)OBJECTSD_CUTEST)
$(package)_cutest_silent_quadruple: $($(PACKAGE)OBJECTSQ_CUTEST)
$(package)_cutest_silent_single_64: $($(PACKAGE)OBJECTSS_CUTEST64)
$(package)_cutest_silent_double_64: $($(PACKAGE)OBJECTSD_CUTEST64)
$(package)_cutest_silent_quadruple_64: $($(PACKAGE)OBJECTSQ_CUTEST64)

#  process package add-ons for CUTEst

$(package)_cutest_addon: $(package)_cutest_addon_$(PRECIS)
$(package)_cutest_addon_single: $(CULGS)(use$(package)_single.o) \
                                $(OBJS)/run$(package)_sif_single.o
$(package)_cutest_addon_double: $(CULGD)(use$(package)_double.o) \
                                $(OBJD)/run$(package)_sif_double.o
$(package)_cutest_addon_quadruple: $(CULGQ)(use$(package)_quadruple.o) \
                                $(OBJQ)/run$(package)_sif_quadruple.o
$(package)_cutest_addon_single_64: $(CULGS64)(use$(package)_single_64.o) \
                                $(OBJS64)/run$(package)_sif_single_64.o
$(package)_cutest_addon_double_64: $(CULGD64)(use$(package)_double_64.o) \
                                $(OBJD64)/run$(package)_sif_double_64.o
$(package)_cutest_addon_quadruple_64: $(CULGQ64)(use$(package)_quadruple_64.o) \
                                $(OBJQ64)/run$(package)_sif_quadruple_64.o

#  process package add-ons for AMPL

$(package)_ampl_addon: $(package)_ampl_addon_$(PRECIS)
$(package)_ampl_addon_single: $(CULGS)(use$(package)_single.o)
$(package)_ampl_addon_double: $(CULGD)(use$(package)_double.o)
$(package)_ampl_addon_quadruple: $(CULGQ)(use$(package)_quadruple.o)
$(package)_ampl_addon_single_64: $(CULGS64)(use$(package)_single_64.o)
$(package)_ampl_addon_double_64: $(CULGD64)(use$(package)_double_64.o)
$(package)_ampl_addon_quadruple_64: $(CULGQ64)(use$(package)_quadruple_64.o)

#  process package for QPLIB

$(package)_qplib: $(package)_qplib_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_QPLIB)"
$(package)_qplib_single: $($(PACKAGE)OBJECTSS_QPLIB)
	$(RANLIB) $(LGS)
$(package)_qplib_double: $($(PACKAGE)OBJECTSD_QPLIB)
	$(RANLIB) $(LGD)
$(package)_qplib_quadruple: $($(PACKAGE)OBJECTSQ_QPLIB)
	$(RANLIB) $(LGQ)
$(package)_qplib_single_64: $($(PACKAGE)OBJECTSS_QPLIB64)
	$(RANLIB) $(LGS64)
$(package)_qplib_double_64: $($(PACKAGE)OBJECTSD_QPLIB64)
	$(RANLIB) $(LGD64)
$(package)_qplib_quadruple_64: $($(PACKAGE)OBJECTSQ_QPLIB64)
	$(RANLIB) $(LGQ64)

#  process package for QPLIB silently

$(package)_qplib_silent: $(package)_qplib_silent_$(PRECIS)
$(package)_qplib_silent_single: $($(PACKAGE)OBJECTSS_QPLIB)
$(package)_qplib_silent_double: $($(PACKAGE)OBJECTSD_QPLIB)
$(package)_qplib_silent_quadruple: $($(PACKAGE)OBJECTSQ_QPLIB)
$(package)_qplib_silent_single_64: $($(PACKAGE)OBJECTSS_QPLIB64)
$(package)_qplib_silent_double_64: $($(PACKAGE)OBJECTSD_QPLIB64)
$(package)_qplib_silent_quadruple_64: $($(PACKAGE)OBJECTSQ_QPLIB64)

#  process package add-ons for QPLIB

$(package)_qplib_addon: $(package)_qplib_addon_$(PRECIS)
$(package)_qplib_addon_single: $(OBJS)/run$(package)_qplib_single.o
$(package)_qplib_addon_double: $(OBJD)/run$(package)_qplib_double.o
$(package)_qplib_addon_quadruple: $(OBJQ)/run$(package)_qplib_quadruple.o
$(package)_qplib_addon_single_64: $(OBJS64)/run$(package)_qplib_single_64.o
$(package)_qplib_addon_double_64: $(OBJD64)/run$(package)_qplib_double_64.o
$(package)_qplib_addon_quadruple_64: $(OBJQ64)/run$(package)_qplib_quadruple_64.o

#  process package for RB

$(package)_rb: $(package)_rb_$(PRECIS)
	@printf ' %-21s\n' "GALAHAD: $(PACKAGE) ($(PRECIS) $(SUCC_RB)"
$(package)_rb_single: $($(PACKAGE)OBJECTSS_RB)
$(package)_rb_double: $($(PACKAGE)OBJECTSD_RB)
$(package)_rb_quadruple: $($(PACKAGE)OBJECTSQ_RB)
$(package)_rb_single_64: $($(PACKAGE)OBJECTSS_RB64)
$(package)_rb_double_64: $($(PACKAGE)OBJECTSD_RB64)
$(package)_rb_quadruple_64: $($(PACKAGE)OBJECTSQ_RB64)

#  process package for RB silently

$(package)_rb_silent: $(package)_rb_silent_$(PRECIS)
$(package)_rb_silent_single: $($(PACKAGE)OBJECTSS_RB)
$(package)_rb_silent_double: $($(PACKAGE)OBJECTSD_RB)
$(package)_rb_silent_quadruple: $($(PACKAGE)OBJECTSQ_RB)
$(package)_rb_silent_single_64: $($(PACKAGE)OBJECTSS_RB64)
$(package)_rb_silent_double_64: $($(PACKAGE)OBJECTSD_RB64)
$(package)_rb_silent_quadruple_64: $($(PACKAGE)OBJECTSQ_RB64)

#  process package add-ons for RB

$(package)_rb_addon: $(package)_rb_addon_$(PRECIS)
$(package)_rb_addon_single: $(OBJS)/run$(package)_qplib_single.o
$(package)_rb_addon_double: $(OBJD)/run$(package)_qplib_double.o
$(package)_rb_addon_quadruple: $(OBJQ)/run$(package)_qplib_quadruple.o
$(package)_rb_addon_single_64: $(OBJS64)/run$(package)_qplib_single.o
$(package)_rb_addon_double_64: $(OBJD64)/run$(package)_qplib_double.o
$(package)_rb_addon_quadruple_64: $(OBJQ64)/run$(package)_qplib_quadruple.o

#  run independent package tests

$(package)runall: $(package)drunall $(package)srunall
$(package)srunall: $(package)ss $(package)ss2 $(package)ss3 $(package)st
$(package)drunall: $(package)ds $(package)ds2 $(package)ds3 $(package)dt
$(package)qrunall: $(package)qs $(package)qs2 $(package)qs3 $(package)qt

$(package)runall_64: $(package)drunall_64 $(package)srunall_64
$(package)srunall_64: $(package)ss_64 $(package)ss2_64 \
                      $(package)ss3_64 $(package)st_64
$(package)drunall_64: $(package)ds_64 $(package)ds2_64 \
                      $(package)ds3_64 $(package)dt_64
$(package)qrunall_64: $(package)qs_64 $(package)qs2_64 \
                      $(package)qs3_64 $(package)qt_64

#  run qp data format package

run$(package)_qplib: run$(package)_qplib_$(PRECIS)
run$(package)_qplib_single: $($(PACKAGE)OBJECTSS) $(OBJS)/run$(package)_qplib_single.o
run$(package)_qplib_double: $($(PACKAGE)OBJECTSD) $(OBJD)/run$(package)_qplib_double.o
run$(package)_qplib_quadruple: $($(PACKAGE)OBJECTSQ) $(OBJQ)/run$(package)_qplib_quadruple.o
run$(package)_qplib_single_64: $($(PACKAGE)OBJECTSS64) $(OBJS64)/run$(package)_qplib_single.o
run$(package)_qplib_double_64: $($(PACKAGE)OBJECTSD64) $(OBJD64)/run$(package)_qplib_double.o
run$(package)_qplib_quadruple_64: $($(PACKAGE)OBJECTSQ64) \
                           $(OBJQ64)/run$(package)_qplib_quadruple.o

#  exhaustive test package without CUTEst

test_$(package): test_$(package)_$(PRECIS)
test_$(package)_single: $(package)st
test_$(package)_double: $(package)dt
test_$(package)_quadruple: $(package)qt
test_$(package)_single_64: $(package)st_64
test_$(package)_double_64: $(package)dt_64
test_$(package)_quadruple_64: $(package)qt_64

#  test package both exhaustively and with CUTEst

test_$(package)_full: test_$(package)_full_$(PRECIS)
test_$(package)_full_single: $(package)st test_$(package)_cutest_single
	echo ""
	echo " Tests for $(package) complete"
test_$(package)_full_double: $(package)dt test_$(package)_cutest_double
	echo ""
	echo " Tests for $(package) complete"
test_$(package)_full_quadruple: $(package)qt test_$(package)_cutest_quadruple
	echo ""
	echo " Tests for $(package) complete"
test_$(package)_full_single_64: $(package)st_64 \
                                test_$(package)_cutest_single_64
	echo ""
	echo " Tests for $(package) complete"
test_$(package)_full_double_64: $(package)dt_64 \
                                test_$(package)_cutest_double_64
	echo ""
	echo " Tests for $(package) complete"
test_$(package)_full_quadruple_64: $(package)qt_64 \
                                   test_$(package)_cutest_quadruple_64
	echo ""
	echo " Tests for $(package) complete"

#  package example for specification document

test_$(package)_spec: test_$(package)_spec_$(PRECIS)
test_$(package)_spec_single: $(package)ss
test_$(package)_spec_double: $(package)ds
test_$(package)_spec_quadruple: $(package)qs
test_$(package)_spec_single_64: $(package)ss_64
test_$(package)_spec_double_64: $(package)ds_64
test_$(package)_spec_quadruple_64: $(package)qs_64

#  test package with CUTEst

test_$(package)_cutest: test_$(package)_cutest_$(PRECIS)
test_$(package)_cutest_single: $($(PACKAGE)OBJECTSS_CUTEST)
	echo ""
	echo " Testing CUTEst interface to $(package)"
	cd $(GALAHAD)/examples ; \
          sdgal $(VERSION) $(package) -s $(CUTEST_EXAMPLE)
test_$(package)_cutest_double: $($(PACKAGE)OBJECTSD_CUTEST)
	echo ""
	echo " Testing CUTEst interface to $(package)"
	cd $(GALAHAD)/examples ; \
          sdgal $(VERSION) $(package) $(CUTEST_EXAMPLE)
test_$(package)_cutest_quadruple: $($(PACKAGE)OBJECTSQ_CUTEST)
	echo ""
	echo " Testing CUTEst interface to $(package)"
	cd $(GALAHAD)/examples ; \
          sdgal $(VERSION) $(package) -q $(CUTEST_EXAMPLE)
test_$(package)_cutest_single_64: $($(PACKAGE)OBJECTSS_CUTEST64)
	echo ""
	echo " Testing CUTEst interface to $(package)"
	cd $(GALAHAD)/examples ; \
          sdgal $(VERSION) $(package) -s64 $(CUTEST_EXAMPLE)
test_$(package)_cutest_double_64: $($(PACKAGE)OBJECTSD_CUTEST64)
	echo ""
	echo " Testing CUTEst interface to $(package)"
	cd $(GALAHAD)/examples ; \
          sdgal $(VERSION) $(package) -64 $(CUTEST_EXAMPLE)
test_$(package)_cutest_quadruple_64: $($(PACKAGE)OBJECTSQ_CUTEST64)
	echo ""
	echo " Testing CUTEst interface to $(package)"
	cd $(GALAHAD)/examples ; \
          sdgal $(VERSION) $(package) -q64 $(CUTEST_EXAMPLE)

#  test package with QPLIB

test_$(package)_qplib: test_$(package)_qplib_$(PRECIS)
test_$(package)_qplib_single: $($(PACKAGE)OBJECTSS_QPLIB)
	echo ""
	echo " Testing QPLIB interface to $(package)"
	cd $(GALAHAD)/examples ; \
          dgal $(VERSION) $(package) -s $(QPLIB_EXAMPLE)
test_$(package)_qplib_double: $($(PACKAGE)OBJECTSD_QPLIB)
	echo ""
	echo " Testing QPLIB interface to $(package)"
	cd $(GALAHAD)/examples ; \
          dgal $(VERSION) $(package) $(QPLIB_EXAMPLE)
test_$(package)_qplib_quadruple: $($(PACKAGE)OBJECTSQ_QPLIB)
	echo ""
	echo " Testing QPLIB interface to $(package)"
	cd $(GALAHAD)/examples ; \
          dgal $(VERSION) $(package) -q $(QPLIB_EXAMPLE)
test_$(package)_qplib_single_64: $($(PACKAGE)OBJECTSS_QPLIB64)
	echo ""
	echo " Testing QPLIB interface to $(package)"
	cd $(GALAHAD)/examples ; \
          dgal $(VERSION) $(package) -s64 $(QPLIB_EXAMPLE)
test_$(package)_qplib_double_64: $($(PACKAGE)OBJECTSD_QPLIB64)
	echo ""
	echo " Testing QPLIB interface to $(package)"
	cd $(GALAHAD)/examples ; \
          dgal $(VERSION) $(package) -64 $(QPLIB_EXAMPLE)
test_$(package)_qplib_quadruple_64: $($(PACKAGE)OBJECTSQ_QPLIB64)
	echo ""
	echo " Testing QPLIB interface to $(package)"
	cd $(GALAHAD)/examples ; \
          dgal $(VERSION) $(package) -q64 $(QPLIB_EXAMPLE)

#  test package with Rutherford-Boeing

test_$(package)_rb: test_$(package)_rb_$(PRECIS)
test_$(package)_rb_single: $($(PACKAGE)OBJECTSS_RB)
	echo ""
	echo " Testing RB interface to $(package)"
	cd $(GALAHAD)/examples ; \
          dgal $(VERSION) $(package) -s $(RB_EXAMPLE)
test_$(package)_rb_double: $($(PACKAGE)OBJECTSD_RB)
	echo ""
	echo " Testing Rutherford-Boeing interface to $(package)"
	cd $(GALAHAD)/examples ; \
          rbgal $(VERSION) $(package) $(RB_EXAMPLE)
test_$(package)_rb_quadruple: $($(PACKAGE)OBJECTSQ_RB)
	echo ""
	echo " Testing RB interface to $(package)"
	cd $(GALAHAD)/examples ; \
          dgal $(VERSION) $(package) -q $(RB_EXAMPLE)
test_$(package)_rb_single_64: $($(PACKAGE)OBJECTSS_RB64)
	echo ""
	echo " Testing RB interface to $(package)"
	cd $(GALAHAD)/examples ; \
          dgal $(VERSION) $(package) -s64 $(RB_EXAMPLE)
test_$(package)_rb_double_64: $($(PACKAGE)OBJECTSD_RB64)
	echo ""
	echo " Testing Rutherford-Boeing interface to $(package)"
	cd $(GALAHAD)/examples ; \
          rbgal $(VERSION) $(package) -64 $(RB_EXAMPLE)
test_$(package)_rb_quadruple_64: $($(PACKAGE)OBJECTSQ_RB64)
	echo ""
	echo " Testing RB interface to $(package)"
	cd $(GALAHAD)/examples ; \
          dgal $(VERSION) $(package) -q64 $(RB_EXAMPLE)

#  test C interface to package

test_$(package)_ciface: test_$(package)_ciface_$(PRECIS)
test_$(package)_ciface_single: $(package)cst
test_$(package)_ciface_double: $(package)cdt
test_$(package)_ciface_quadruple: $(package)cqt
test_$(package)_ciface_single_64: $(package)cst_64
test_$(package)_ciface_double_64: $(package)cdt_64
test_$(package)_ciface_quadruple_64: $(package)cqt_64

test_$(package)_cifaces: test_$(package)_cifaces_$(PRECIS)
test_$(package)_cifaces_single: $(package)cst $(package)cstf
test_$(package)_cifaces_double: $(package)cdt $(package)cdtf
test_$(package)_cifaces_quadruple: $(package)cqt $(package)cqtf
test_$(package)_cifaces_single_64: $(package)cst_64 $(package)cstf_64
test_$(package)_cifaces_double_64: $(package)cdt_64 $(package)cdtf_64
test_$(package)_cifaces_quadruple_64: $(package)cqt_64 $(package)cqtf_64

#  test Python interface to package

test_$(package)_pyiface: test_pyiface
test_pyiface: $(package)_pyiface
	python Python/test_$(package).py
test_pyiface_gdb: $(package)_pyiface
	- gdb  $(GDB) --args python Python/test_$(package).py

#  run specification document example tests

$(package)de: $($(PACKAGE)DE)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DE)
	$(RMOOC)
	- ./run_$(package)
	rm ./run_$(package)

$(package)de_64: $($(PACKAGE)DE64)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DE64)
	$(RMOOC)
	- ./run_$(package)
	rm ./run_$(package)

$(package)ss: $($(PACKAGE)SS)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)SS)
	$(RMOOC)
	- ./run_$(package) > $(package)s.output 2>&1
	cat $(package)s.output
	rm ./run_$(package)

$(package)ss2: $($(PACKAGE)SS2)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)SS2)
	$(RMOOC)
	- ./run_$(package) > $(package)s2.output 2>&1
	cat $(package)s2.output
	rm ./run_$(package)

$(package)ss3: $($(PACKAGE)SS3)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)SS3)
	$(RMOOC)
	- ./run_$(package) > $(package)s3.output 2>&1
	cat $(package)s3.output
	rm ./run_$(package)

$(package)ss4: $($(PACKAGE)SS4)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)SS4)
	$(RMOOC)
	- ./run_$(package) > $(package)s4.output 2>&1
	cat $(package)s4.output
	rm ./run_$(package)

$(package)ss5: $($(PACKAGE)SS5)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)SS5)
	$(RMOOC)
	- ./run_$(package) > $(package)s5.output 2>&1
	cat $(package)s5.output
	rm ./run_$(package)

$(package)ds: $($(PACKAGE)DS)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)ds.output 2>&1
	cat $(package)ds.output
	rm ./run_$(package)

$(package)ds_valgrind: $($(PACKAGE)DS)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)ds_valgrind.output 2>&1
	cat $(package)ds_valgrind.output
	rm ./run_$(package)

$(package)ds_gdb: $($(PACKAGE)DS)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)ds2: $($(PACKAGE)DS2)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS2)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)ds2.output 2>&1
#	cat $(package)ds2.output
	rm ./run_$(package)

$(package)ds2_valgrind: $($(PACKAGE)DS2)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS2)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)ds2_valgrind.output 2>&1
	cat $(package)ds2_valgrind.output
	rm ./run_$(package)

$(package)ds3: $($(PACKAGE)DS3)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS3)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)ds3.output 2>&1
#	cat $(package)ds3.output
	rm ./run_$(package)

$(package)ds3_valgrind: $($(PACKAGE)DS3)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS3)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)ds3_valgrind.output 2>&1
	cat $(package)ds3_valgrind.output
	rm ./run_$(package)

$(package)ds4: $($(PACKAGE)DS4)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS4)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)ds4.output 2>&1
	cat $(package)ds4.output
	rm ./run_$(package)

$(package)ds4_gdb: $($(PACKAGE)DS4)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS4)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)ds5: $($(PACKAGE)DS5)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS5)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)ds5.output 2>&1
#	cat $(package)ds5.output
	rm ./run_$(package)

$(package)ds6: $($(PACKAGE)DS6)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS6)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)ds6.output 2>&1
#	cat $(package)ds6.output
	rm ./run_$(package)

$(package)ds7: $($(PACKAGE)DS7)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS7)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)ds7.output 2>&1
#	cat $(package)ds7.output
	rm ./run_$(package)

$(package)ds8: $($(PACKAGE)DS8)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS8)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)ds8.output 2>&1
#	cat $(package)ds8.output
	rm ./run_$(package)

$(package)ds8_gdb: $($(PACKAGE)DS8)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS8)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)ds9: $($(PACKAGE)DS9)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS9)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)ds9.output 2>&1
#	cat $(package)ds9.output
	rm ./run_$(package)

$(package)ds9_gdb: $($(PACKAGE)DS9)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS9)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)ds10: $($(PACKAGE)DS10)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS10)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)ds10.output 2>&1
#	cat $(package)ds10.output
	rm ./run_$(package)

$(package)ds10_gdb: $($(PACKAGE)DS10)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS10)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)qs: $($(PACKAGE)QS)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QS)
	$(RMOOC)
	- ./run_$(package) > $(package)q.output 2>&1
	cat $(package)q.output
	rm ./run_$(package)

$(package)qs2: $($(PACKAGE)QS2)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QS2)
	$(RMOOC)
	- ./run_$(package) > $(package)q2.output 2>&1
	cat $(package)q2.output
	rm ./run_$(package)

$(package)qs3: $($(PACKAGE)QS3)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QS3)
	$(RMOOC)
	- ./run_$(package) > $(package)q3.output 2>&1
	cat $(package)q3.output
	rm ./run_$(package)

$(package)qs4: $($(PACKAGE)QS4)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QS4)
	$(RMOOC)
	- ./run_$(package) > $(package)q4.output 2>&1
	cat $(package)q4.output
	rm ./run_$(package)

$(package)qs8: $($(PACKAGE)QS8)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QS8)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)q8.output 2>&1
#	cat $(package)q8.output
	rm ./run_$(package)

$(package)qs9: $($(PACKAGE)QS9)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QS9)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)q9.output 2>&1
#	cat $(package)q9.output
	rm ./run_$(package)

$(package)ss_64: $($(PACKAGE)SS64)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)SS64)
	$(RMOOC)
	- ./run_$(package) > $(package)s64.output 2>&1
	cat $(package)s64.output
	rm ./run_$(package)

$(package)ss2_64: $($(PACKAGE)SS264)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)SS264)
	$(RMOOC)
	- ./run_$(package) > $(package)s264.output 2>&1
	cat $(package)s264.output
	rm ./run_$(package)

$(package)ss3_64: $($(PACKAGE)SS364)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)SS364)
	$(RMOOC)
	- ./run_$(package) > $(package)s364.output 2>&1
	cat $(package)s364.output
	rm ./run_$(package)

$(package)ss4_64: $($(PACKAGE)SS464)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)SS464)
	$(RMOOC)
	- ./run_$(package) > $(package)s464.output 2>&1
	cat $(package)s464.output
	rm ./run_$(package)

$(package)ss5_64: $($(PACKAGE)SS564)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)SS564)
	$(RMOOC)
	- ./run_$(package) > $(package)s564.output 2>&1
	cat $(package)s564.output
	rm ./run_$(package)

$(package)ds_64: $($(PACKAGE)DS64)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS64)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)ds64.output 2>&1
	cat $(package)ds64.output
	rm ./run_$(package)

$(package)ds_64_valgrind: $($(PACKAGE)DS64)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS64)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)ds64_valgrind.output 2>&1
	cat $(package)ds64_valgrind.output
	rm ./run_$(package)

$(package)ds2_64: $($(PACKAGE)DS264)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS264)
	$(RMOOC)
	- ./run_$(package) > $(package)ds264.output 2>&1
	cat $(package)ds264.output
	rm ./run_$(package)

$(package)ds2_64_valgrind: $($(PACKAGE)DS264)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS264)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)ds264_valgrind.output 2>&1
	cat $(package)ds264_valgrind.output
	rm ./run_$(package)

$(package)ds3_64: $($(PACKAGE)DS364)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS364)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)ds364.output 2>&1
	cat $(package)ds364.output
	rm ./run_$(package)

$(package)ds3_64_valgrind: $($(PACKAGE)DS364)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS364)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)ds364_valgrind.output 2>&1
	cat $(package)ds364_valgrind.output
	rm ./run_$(package)

$(package)ds4_64: $($(PACKAGE)DS464)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS464)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)ds464.output 2>&1
	cat $(package)ds464.output
	rm ./run_$(package)

$(package)ds5_64: $($(PACKAGE)DS564)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS564)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)ds564.output 2>&1
	cat $(package)ds564.output
	rm ./run_$(package)

$(package)ds6_64: $($(PACKAGE)DS664)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS664)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)ds664.output 2>&1
	cat $(package)ds664.output
	rm ./run_$(package)

$(package)ds7_64: $($(PACKAGE)DS764)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS764)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)ds764.output 2>&1
	cat $(package)ds764.output
	rm ./run_$(package)

$(package)ds8_64: $($(PACKAGE)DS864)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DS864)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)ds864.output 2>&1
	cat $(package)ds864.output
	rm ./run_$(package)

$(package)qs_64: $($(PACKAGE)QS64)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QS64)
	$(RMOOC)
	- ./run_$(package) > $(package)q64.output 2>&1
	cat $(package)q64.output
	rm ./run_$(package)

$(package)qs2_64: $($(PACKAGE)QS264)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QS264)
	$(RMOOC)
	- ./run_$(package) > $(package)q264.output 2>&1
	cat $(package)q264.output
	rm ./run_$(package)

$(package)qs3_64: $($(PACKAGE)QS364)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QS364)
	$(RMOOC)
	- ./run_$(package) > $(package)q364.output 2>&1
	cat $(package)q364.output
	rm ./run_$(package)

$(package)qs4_64: $($(PACKAGE)QS464)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QS464)
	$(RMOOC)
	- ./run_$(package) > $(package)q464.output 2>&1
	cat $(package)q464.output
	rm ./run_$(package)

#  run C specification document example tests

$(package)css: $($(PACKAGE)CSS)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs.output 2>&1
	cat $(package)cqs.output
	rm ./run_$(package)

$(package)css2: $($(PACKAGE)CSS2)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS2)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs2.output 2>&1
	cat $(package)cqs2.output
	rm ./run_$(package)

$(package)css3: $($(PACKAGE)CSS3)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS3)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs3.output 2>&1
	cat $(package)cqs3.output
	rm ./run_$(package)

$(package)css4: $($(PACKAGE)CSS4)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS4)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs4.output 2>&1
	cat $(package)cqs4.output
	rm ./run_$(package)

$(package)css5: $($(PACKAGE)CSS5)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS5)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs5.output 2>&1
	cat $(package)cqs5.output
	rm ./run_$(package)

$(package)css6: $($(PACKAGE)CSS6)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS6)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs6.output 2>&1
	cat $(package)cqs6.output
	rm ./run_$(package)

$(package)css7: $($(PACKAGE)CSS7)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS7)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs7.output 2>&1
	cat $(package)cqs7.output
	rm ./run_$(package)

$(package)css8: $($(PACKAGE)CSS8)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS8)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs8.output 2>&1
	cat $(package)cqs8.output
	rm ./run_$(package)

$(package)cds: $($(PACKAGE)CDS)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS)
	$(RMOOC)
	- ./run_$(package) > $(package)cds.output 2>&1
	cat $(package)cds.output
	rm ./run_$(package)

$(package)cds2: $($(PACKAGE)CDS2)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS2)
	$(RMOOC)
	- ./run_$(package) > $(package)cds2.output 2>&1
	cat $(package)cds2.output
	rm ./run_$(package)

$(package)cds3: $($(PACKAGE)CDS3)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS3)
	$(RMOOC)
	- ./run_$(package) > $(package)cds3.output 2>&1
	cat $(package)cds3.output
	rm ./run_$(package)

$(package)cds4: $($(PACKAGE)CDS4)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS4)
	$(RMOOC)
	- ./run_$(package) > $(package)cds4.output 2>&1
	cat $(package)cds4.output
	rm ./run_$(package)

$(package)cds5: $($(PACKAGE)CDS5)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS5)
	$(RMOOC)
	- ./run_$(package) > $(package)cds5.output 2>&1
	cat $(package)cds5.output
	rm ./run_$(package)

$(package)cds6: $($(PACKAGE)CDS6)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS6)
	$(RMOOC)
	- ./run_$(package) > $(package)cds6.output 2>&1
	cat $(package)cds6.output
	rm ./run_$(package)

$(package)cds7: $($(PACKAGE)CDS7)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS7)
	$(RMOOC)
	- ./run_$(package) > $(package)cds7.output 2>&1
	cat $(package)cds7.output
	rm ./run_$(package)

$(package)cds8: $($(PACKAGE)CDS8)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS8)
	$(RMOOC)
	- ./run_$(package) > $(package)cds8.output 2>&1
	cat $(package)cds8.output
	rm ./run_$(package)

$(package)cqs: $($(PACKAGE)CQS)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs.output 2>&1
	cat $(package)cqs.output
	rm ./run_$(package)

$(package)cqs2: $($(PACKAGE)CQS2)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS2)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs2.output 2>&1
	cat $(package)cqs2.output
	rm ./run_$(package)

$(package)cqs3: $($(PACKAGE)CQS3)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS3)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs3.output 2>&1
	cat $(package)cqs3.output
	rm ./run_$(package)

$(package)cqs4: $($(PACKAGE)CQS4)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS4)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs4.output 2>&1
	cat $(package)cqs4.output
	rm ./run_$(package)

$(package)cqs5: $($(PACKAGE)CQS5)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS5)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs5.output 2>&1
	cat $(package)cqs5.output
	rm ./run_$(package)

$(package)cqs6: $($(PACKAGE)CQS6)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS6)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs6.output 2>&1
	cat $(package)cqs6.output
	rm ./run_$(package)

$(package)cqs7: $($(PACKAGE)CQS7)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS7)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs7.output 2>&1
	cat $(package)cqs7.output
	rm ./run_$(package)

$(package)cqs8: $($(PACKAGE)CQS8)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS8)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs8.output 2>&1
	cat $(package)cqs8.output
	rm ./run_$(package)

$(package)css64: $($(PACKAGE)CSS64)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS64)
	$(RMOOC)
	- ./run_$(package) > $(package)css64.output 2>&1
	cat $(package)css64.output
	rm ./run_$(package)

$(package)css264: $($(PACKAGE)CSS264)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS264)
	$(RMOOC)
	- ./run_$(package) > $(package)css264.output 2>&1
	cat $(package)css264.output
	rm ./run_$(package)

$(package)css364: $($(PACKAGE)CSS364)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS364)
	$(RMOOC)
	- ./run_$(package) > $(package)css364.output 2>&1
	cat $(package)css364.output
	rm ./run_$(package)

$(package)css464: $($(PACKAGE)CSS464)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS464)
	$(RMOOC)
	- ./run_$(package) > $(package)css464.output 2>&1
	cat $(package)css464.output
	rm ./run_$(package)

$(package)css564: $($(PACKAGE)CSS564)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS564)
	$(RMOOC)
	- ./run_$(package) > $(package)css564.output 2>&1
	cat $(package)css564.output
	rm ./run_$(package)

$(package)css664: $($(PACKAGE)CSS664)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS664)
	$(RMOOC)
	- ./run_$(package) > $(package)css664.output 2>&1
	cat $(package)css664.output
	rm ./run_$(package)

$(package)css764: $($(PACKAGE)CSS764)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSS764)
	$(RMOOC)
	- ./run_$(package) > $(package)css764.output 2>&1
	cat $(package)css764.output
	rm ./run_$(package)

$(package)cds64: $($(PACKAGE)CDS64)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS64)
	$(RMOOC)
	- ./run_$(package) > $(package)cds64.output 2>&1
	cat $(package)cds64.output
	rm ./run_$(package)

$(package)cds264: $($(PACKAGE)CDS264)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS264)
	$(RMOOC)
	- ./run_$(package) > $(package)cds264.output 2>&1
	cat $(package)cds264.output
	rm ./run_$(package)

$(package)cds364: $($(PACKAGE)CDS364)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS364)
	$(RMOOC)
	- ./run_$(package) > $(package)cds364.output 2>&1
	cat $(package)cds364.output
	rm ./run_$(package)

$(package)cds464: $($(PACKAGE)CDS464)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS464)
	$(RMOOC)
	- ./run_$(package) > $(package)cds464.output 2>&1
	cat $(package)cds464.output
	rm ./run_$(package)

$(package)cds564: $($(PACKAGE)CDS564)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS564)
	$(RMOOC)
	- ./run_$(package) > $(package)cds564.output 2>&1
	cat $(package)cds564.output
	rm ./run_$(package)

$(package)cds664: $($(PACKAGE)CDS664)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS664)
	$(RMOOC)
	- ./run_$(package) > $(package)cds664.output 2>&1
	cat $(package)cds664.output
	rm ./run_$(package)

$(package)cds764: $($(PACKAGE)CDS764)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS764)
	$(RMOOC)
	- ./run_$(package) > $(package)cds764.output 2>&1
	cat $(package)cds764.output
	rm ./run_$(package)

$(package)cds864: $($(PACKAGE)CDS864)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDS864)
	$(RMOOC)
	- ./run_$(package) > $(package)cds864.output 2>&1
	cat $(package)cds864.output
	rm ./run_$(package)

$(package)cqs64: $($(PACKAGE)CQS64)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS64)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs64.output 2>&1
	cat $(package)cqs64.output
	rm ./run_$(package)

$(package)cqs264: $($(PACKAGE)CQS264)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS264)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs264.output 2>&1
	cat $(package)cqs264.output
	rm ./run_$(package)

$(package)cqs364: $($(PACKAGE)CQS364)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS364)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs364.output 2>&1
	cat $(package)cqs364.output
	rm ./run_$(package)

$(package)cqs464: $($(PACKAGE)CQS464)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS464)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs464.output 2>&1
	cat $(package)cqs464.output
	rm ./run_$(package)

$(package)cqs564: $($(PACKAGE)CQS564)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS564)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs564.output 2>&1
	cat $(package)cqs564.output
	rm ./run_$(package)

$(package)cqs664: $($(PACKAGE)CQS664)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS664)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs664.output 2>&1
	cat $(package)cqs664.output
	rm ./run_$(package)

$(package)cqs764: $($(PACKAGE)CQS764)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS764)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs764.output 2>&1
	cat $(package)cqs764.output
	rm ./run_$(package)

$(package)cqs864: $($(PACKAGE)CQS864)
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQS864)
	$(RMOOC)
	- ./run_$(package) > $(package)cqs864.output 2>&1
	cat $(package)cqs864.output
	rm ./run_$(package)

#  run full (comprehensive) example tests

$(package)st: $($(PACKAGE)ST)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)ST)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)st.output 2>&1
	cat $(package)st.output
	rm ./run_$(package)

$(package)st2: $($(PACKAGE)ST2)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)ST2)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)st2.output 2>&1
#	cat $(package)st2.output
	rm ./run_$(package)

$(package)st_valgrind: $($(PACKAGE)ST)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)ST)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)st_valgrind.output 2>&1
	cat $(package)st_valgrind.output
	rm ./run_$(package)

$(package)st_gdb: $($(PACKAGE)ST)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)ST)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)sti: $($(PACKAGE)STI)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)STI)
	$(RMOOC)
	- ./run_$(package) > $(package)sti.output 2>&1
	cat $(package)sti.output
	rm ./run_$(package)

$(package)sti_valgrind: $($(PACKAGE)STI)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)STI)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)sts_valgrind.output 2>&1
	cat $(package)sts_valgrind.output
	rm ./run_$(package)

$(package)sti_gdb: $($(PACKAGE)STI)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)STI)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)dt: $($(PACKAGE)DT)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT)
	$(RMOOC)
	- ./run_$(package) 2>/dev/null
#	- ./run_$(package) > $(package)dt.output 2>&1
#	cat $(package)dt.output
	rm ./run_$(package)

$(package)dt_nosave: $($(PACKAGE)DT)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT)
	$(RMOOC)
	- ./run_$(package) 2>/dev/null
	rm ./run_$(package)

$(package)dt2: $($(PACKAGE)DT2)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT2)
	$(RMOOC)
	- ./run_$(package) 2>/dev/null
#	- ./run_$(package) > $(package)dt2.output 2>&1
#	cat $(package)dt2.output
	rm ./run_$(package)

$(package)dt_keep: $($(PACKAGE)DT)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT)
	$(RMOOC)
#	- ./run_$(package) 2>/dev/null
	- ./run_$(package) > $(package)dt.output 2>&1
	cat $(package)dt.output

$(package)dt_valgrind: $($(PACKAGE)DT)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)dt_valgrind.output 2>&1
	cat $(package)dt_valgrind.output
	rm ./run_$(package)

$(package)dt_gdb: $($(PACKAGE)DT)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)dt2_gdb: $($(PACKAGE)DT2)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT2)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)dti: $($(PACKAGE)DTI)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DTI)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)dti.output 2>&1
#	cat $(package)dti.output
	rm ./run_$(package)

$(package)dti_valgrind: $($(PACKAGE)DTI)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DTI)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)dti_valgrind.output 2>&1
	cat $(package)dti_valgrind.output
	rm ./run_$(package)

$(package)dti_gdb: $($(PACKAGE)DTI)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DTI)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)qt: $($(PACKAGE)QT)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QT)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)qt.output 2>&1
	cat $(package)qt.output
	rm ./run_$(package)

$(package)qt2: $($(PACKAGE)QT2)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QT2)
	$(RMOOC)
	- ./run_$(package) > $(package)qt2.output 2>&1
	cat $(package)qt2.output
	rm ./run_$(package)

$(package)qt_valgrind: $($(PACKAGE)QT)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QT)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)qt_valgrind.output 2>&1
	cat $(package)qt_valgrind.output
	rm ./run_$(package)

$(package)qt_gdb: $($(PACKAGE)QT)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QT)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)qti: $($(PACKAGE)QTI)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QTI)
	$(RMOOC)
	- ./run_$(package) > $(package)qti.output 2>&1
	cat $(package)qti.output
	rm ./run_$(package)

$(package)qti_valgrind: $($(PACKAGE)QTI)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QTI)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)qts_valgrind.output 2>&1
	cat $(package)qts_valgrind.output
	rm ./run_$(package)

$(package)qti_gdb: $($(PACKAGE)QTI)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QTI)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)st_64: $($(PACKAGE)ST64)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)ST64)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)st64.output 2>&1
	cat $(package)st64.output
	rm ./run_$(package)

$(package)st2_64: $($(PACKAGE)ST264)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)ST264)
	$(RMOOC)
	- ./run_$(package) > $(package)st264.output 2>&1
	cat $(package)st264.output
	rm ./run_$(package)

$(package)st_64_valgrind: $($(PACKAGE)ST64)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)ST64)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)st_64_valgrind.output 2>&1
	cat $(package)st_64_valgrind.output
	rm ./run_$(package)

$(package)st_64_gdb: $($(PACKAGE)ST64)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)ST64)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)sti_64: $($(PACKAGE)STI64)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)STI64)
	$(RMOOC)
	- ./run_$(package) > $(package)sti64.output 2>&1
	cat $(package)sti64.output
	rm ./run_$(package)

$(package)sti_64_valgrind: $($(PACKAGE)STI64)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)STI64)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)sts_64__valgrind.output 2>&1
	cat $(package)sts_64_valgrind.output
	rm ./run_$(package)

$(package)sti_64_gdb: $($(PACKAGE)STI64)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)STI64)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)dt_64: $($(PACKAGE)DT64)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT64)
	$(RMOOC)
#	- ./run_$(package) 2>/dev/null
	- ./run_$(package) > $(package)dt64.output 2>&1
	cat $(package)dt64.output
	rm ./run_$(package)

$(package)dt2_64: $($(PACKAGE)DT264)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT264)
	$(RMOOC)
#	- ./run_$(package) 2>/dev/null
	- ./run_$(package) > $(package)dt264.output 2>&1
	cat $(package)dt264.output
	rm ./run_$(package)

$(package)dt_64_valgrind: $($(PACKAGE)DT64)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT64)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)dt_64_valgrind.output 2>&1
	cat $(package)dt_64_valgrind.output
	rm ./run_$(package)

$(package)dt_64_gdb: $($(PACKAGE)DT64)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DT64)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)dti_64: $($(PACKAGE)DTI64)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DTI64)
	$(RMOOC)
	- ./run_$(package) > $(package)dti64.output 2>&1
	cat $(package)dti64.output
	rm ./run_$(package)

$(package)dti_64_valgrind: $($(PACKAGE)DTI64)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DTI64)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)dti_64_valgrind.output 2>&1
	cat $(package)dti_64_valgrind.output
	rm ./run_$(package)

$(package)dti_64_gdb: $($(PACKAGE)DTI64)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)DTI64)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)qt_64: $($(PACKAGE)QT64)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QT64)
	$(RMOOC)
#	- ./run_$(package)
	- ./run_$(package) > $(package)qt64.output 2>&1
	cat $(package)qt64.output
	rm ./run_$(package)

$(package)qt2_64: $($(PACKAGE)QT264)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QT264)
	$(RMOOC)
	- ./run_$(package) > $(package)qt264.output 2>&1
	cat $(package)qt264.output
	rm ./run_$(package)

$(package)qt_64_valgrind: $($(PACKAGE)QT64)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QT64)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)qt_64_valgrind.output 2>&1
	cat $(package)qt_64_valgrind.output
	rm ./run_$(package)

$(package)qt_64_gdb: $($(PACKAGE)QT64)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QT64)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)qti_64: $($(PACKAGE)QTI64)
	echo ""
	echo " Exhaustive test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QTI64)
	$(RMOOC)
	- ./run_$(package) > $(package)qti64.output 2>&1
	cat $(package)qti64.output
	rm ./run_$(package)

$(package)qti_64_valgrind: $($(PACKAGE)QTI64)
	echo ""
	echo " Exhaustive valgrind test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QTI64)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)qts_64__valgrind.output 2>&1
	cat $(package)qts_64_valgrind.output
	rm ./run_$(package)

$(package)qti_64_gdb: $($(PACKAGE)QTI64)
	echo ""
	echo " Exhaustive gdb test of subroutine interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          -o run_$(package) $(R$(PACKAGE)QTI64)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

#  run full (comprehensive) C example tests

$(package)cst: $($(PACKAGE)CST)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CST)
	$(RMOOC)
	- ./run_$(package) > $(package)cst.output 2>&1
	cat $(package)cst.output
	rm ./run_$(package)

$(package)csti: $($(PACKAGE)CSTI)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSTI)
	$(RMOOC)
	- ./run_$(package) > $(package)csti.output 2>&1
	cat $(package)csti.output
	rm ./run_$(package)

$(package)cstf: $($(PACKAGE)CSTF)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSTF)
	$(RMOOC)
	- ./run_$(package) > $(package)cstf.output 2>&1
	cat $(package)cstf.output
	rm ./run_$(package)

$(package)cstm: $($(PACKAGE)CSTM)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSTM)
	$(RMOOC)
	- ./run_$(package) > $(package)cstm.output 2>&1
	cat $(package)cstm.output
	rm ./run_$(package)

$(package)cst_valgrind: $($(PACKAGE)CST)
	echo ""
	echo " Exhaustive valgrind test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CST)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)cst_valgrind.output 2>&1
	cat $(package)cst_valgrind.output
	rm ./run_$(package)

$(package)cst_gdb: $($(PACKAGE)CST)
	echo ""
	echo " Exhaustive gdb test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CST)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)cdt: $($(PACKAGE)CDT)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDT)
	$(RMOOC)
	- ./run_$(package)
#	- ./run_$(package) > $(package)dt.output 2>&1
#	cat $(package)dt.output
	rm ./run_$(package)

$(package)cdt2: $($(PACKAGE)CDT2)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDT2)
	$(RMOOC)
	- ./run_$(package) > $(package)dt.output 2>&1
	cat $(package)dt.output
	rm ./run_$(package)

$(package)cdt3: $($(PACKAGE)CDT3)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDT3)
	$(RMOOC)
	- ./run_$(package) > $(package)dt.output 2>&1
	cat $(package)dt.output
	rm ./run_$(package)

$(package)cdti: $($(PACKAGE)CDTI)
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDTI)
	$(RMOOC)
	- ./run_$(package) > $(package)dti.output 2>&1
	cat $(package)dti.output
	rm ./run_$(package)

$(package)cdtf: $($(PACKAGE)CDTF)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDTF)
	$(RMOOC)
	- ./run_$(package) > $(package)dtf.output 2>&1
	cat $(package)dtf.output
	rm ./run_$(package)

$(package)cdtm: $($(PACKAGE)CDTM)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDTM)
	$(RMOOC)
	- ./run_$(package) > $(package)dtm.output 2>&1
	cat $(package)dtm.output
	rm ./run_$(package)

$(package)cdt_valgrind: $($(PACKAGE)CDT)
	echo ""
	echo " Exhaustive valgrind test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDT)
	$(RMOOC)
	- ./run_$(package) > $(package)dt.output 2>&1
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)dt_valgrind.output 2>&1
	cat $(package)dt_valgrind.output
	rm ./run_$(package)

$(package)cdt_gdb: $($(PACKAGE)CDT)
	echo ""
	echo " Exhaustive gdb test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDT)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)cdtf_gdb: $($(PACKAGE)CDTF)
	echo ""
	echo " Exhaustive gdb test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDTF)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)cdtf_valgrind: $($(PACKAGE)CDTF)
	echo ""
	echo " Exhaustive valgrind test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDTF)
	$(RMOOC)
	- ./run_$(package) > $(package)dt.output 2>&1
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)dt_valgrind.output 2>&1
	cat $(package)dt_valgrind.output
	rm ./run_$(package)

$(package)cqt: $($(PACKAGE)CQT)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQT)
	$(RMOOC)
	- ./run_$(package) > $(package)cqt.output 2>&1
	cat $(package)cqt.output
	rm ./run_$(package)

$(package)cqti: $($(PACKAGE)CQTI)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQTI)
	$(RMOOC)
	- ./run_$(package) > $(package)cqti.output 2>&1
	cat $(package)cqti.output
	rm ./run_$(package)

$(package)cqtf: $($(PACKAGE)CQTF)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQTF)
	$(RMOOC)
	- ./run_$(package) > $(package)cqtf.output 2>&1
	cat $(package)cqtf.output
	rm ./run_$(package)

$(package)cqtm: $($(PACKAGE)CQTM)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQTM)
	$(RMOOC)
	- ./run_$(package) > $(package)cqtm.output 2>&1
	cat $(package)cqtm.output
	rm ./run_$(package)

$(package)cqt_valgrind: $($(PACKAGE)CQT)
	echo ""
	echo " Exhaustive valgrind test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQT)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)cqt_valgrind.output 2>&1
	cat $(package)cqt_valgrind.output
	rm ./run_$(package)

$(package)cqt_gdb: $($(PACKAGE)CQT)
	echo ""
	echo " Exhaustive gdb test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQT)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)cst_64: $($(PACKAGE)CST64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CST64)
	$(RMOOC)
	- ./run_$(package) > $(package)cst64.output 2>&1
	cat $(package)cst64.output
	rm ./run_$(package)

$(package)csti_64: $($(PACKAGE)CSTI64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSTI64)
	$(RMOOC)
	- ./run_$(package) > $(package)csti64.output 2>&1
	cat $(package)csti64.output
	rm ./run_$(package)

$(package)cstf_64: $($(PACKAGE)CSTF64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSTF64)
	$(RMOOC)
	- ./run_$(package) > $(package)cstf64.output 2>&1
	cat $(package)cstf64.output
	rm ./run_$(package)

$(package)cstm_64: $($(PACKAGE)CSTM64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CSTM64)
	$(RMOOC)
	- ./run_$(package) > $(package)cstm64.output 2>&1
	cat $(package)cstm64.output
	rm ./run_$(package)

$(package)cst_64_valgrind: $($(PACKAGE)CST64)
	echo ""
	echo " Exhaustive valgrind test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CST64)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)cst_64_valgrind.output 2>&1
	cat $(package)cst_64_valgrind.output
	rm ./run_$(package)

$(package)cst_64_gdb: $($(PACKAGE)CST64)
	echo ""
	echo " Exhaustive gdb test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CST64)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)cdt_64: $($(PACKAGE)CDT64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	echo "RUNFFLAGSOMP $(RUNFFLAGSOMP) $(SPECIAL)"
	echo "R $(R$(PACKAGE)CDT64)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDT64)
	$(RMOOC)
	- ./run_$(package) > $(package)dt64.output 2>&1
	cat $(package)dt64.output
	rm ./run_$(package)

$(package)cdt2_64: $($(PACKAGE)CDT264)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDT264)
	$(RMOOC)
	- ./run_$(package) > $(package)dt64.output 2>&1
	cat $(package)dt64.output
	rm ./run_$(package)

$(package)cdt3_64: $($(PACKAGE)CDT364)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDT364)
	$(RMOOC)
	- ./run_$(package) > $(package)dt64.output 2>&1
	cat $(package)dt64.output
	rm ./run_$(package)

$(package)cdti_64: $($(PACKAGE)CDTI64)
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDTI64)
	$(RMOOC)
	- ./run_$(package) > $(package)dti64.output 2>&1
	cat $(package)dti64.output
	rm ./run_$(package)

$(package)cdtf_64: $($(PACKAGE)CDTF64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDTF64)
	$(RMOOC)
	- ./run_$(package) > $(package)dtf64.output 2>&1
	cat $(package)dtf64.output
	rm ./run_$(package)

$(package)cdtm_64: $($(PACKAGE)CDTM64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDTM64)
	$(RMOOC)
	- ./run_$(package) > $(package)dtm64.output 2>&1
	cat $(package)dtm64.output
	rm ./run_$(package)

$(package)cdt_64_valgrind: $($(PACKAGE)CDT64)
	echo ""
	echo " Exhaustive valgrind test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDT64)
	$(RMOOC)
	- ./run_$(package) > $(package)dt64.output 2>&1
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)dt_64_valgrind.output 2>&1
	cat $(package)dt_64_valgrind.output
	rm ./run_$(package)

$(package)cdt_64_gdb: $($(PACKAGE)CDT64)
	echo ""
	echo " Exhaustive gdb test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CDT64)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)cqt_64: $($(PACKAGE)CQT64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQT64)
	$(RMOOC)
	- ./run_$(package) > $(package)cqt64.output 2>&1
	cat $(package)cqt64.output
	rm ./run_$(package)

$(package)cqti_64: $($(PACKAGE)CQTI64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQTI64)
	$(RMOOC)
	- ./run_$(package) > $(package)cqti64.output 2>&1
	cat $(package)cqti64.output
	rm ./run_$(package)

$(package)cqtf_64: $($(PACKAGE)CQTF64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQTF64)
	$(RMOOC)
	- ./run_$(package) > $(package)cqtf64.output 2>&1
	cat $(package)cqtf64.output
	rm ./run_$(package)

$(package)cqtm_64: $($(PACKAGE)CQTM64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQTM64)
	$(RMOOC)
	- ./run_$(package) > $(package)cqtm64.output 2>&1
	cat $(package)cqtm64.output
	rm ./run_$(package)

$(package)cqt_64_valgrind: $($(PACKAGE)CQT64)
	echo ""
	echo " Exhaustive valgrind test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQT64)
	$(RMOOC)
	- valgrind $(VALGRIND) ./run_$(package) > \
           $(package)cqt_64_valgrind.output 2>&1
	cat $(package)cqt_64_valgrind.output
	rm ./run_$(package)

$(package)cqt_64_gdb: $($(PACKAGE)CQT64)
	echo ""
	echo " Exhaustive gdb test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) $(R$(PACKAGE)CQT64)
	$(RMOOC)
	- gdb $(GDB) ./run_$(package)
	rm ./run_$(package)

$(package)ctm: $($(PACKAGE)CDTM) $($(PACKAGE)OBJECTSCS64)
	echo ""
	echo " Exhaustive test of C function interface to $(package)"
	$(FORTRAN) $(RUNFFLAGSOMP) $(SPECIAL) \
          $(NOFMAIN) -o run_$(package) \
          $(OBJD)/$(package)ctm_double.o \
          $(OBJD)/libgalahad_c.a \
          $(OBJD)/libhsl_c.a \
          $(OBJD)/libgalahad.a \
          $(OBJD)/libhsl.a \
          $(OBJD)/libgalahad_mkl_pardiso.a \
          $(OBJD)/libgalahad_pardiso.a \
          $(OBJD)/libgalahad_wsmp.a \
          $(OBJD)/libmetis4_nodend.a \
          $(OBJD)/libmetis5_nodend.a \
          $(OBJD)/libgalahad_pastix.a \
          $(OBJD)/libgalahad_mumps.a \
          $(OBJD)/libgalahad_mpi.a \
          $(OBJD)/libgalahad_umfpack.a \
          $(OBJD)/libgalahad_lapack.a \
          $(OBJD)/libgalahad_blas.a \
          $(OBJS64)/libgalahad_c.a \
          $(OBJS64)/libhsl_c.a \
          $(OBJS64)/libgalahad.a \
          $(OBJS64)/libhsl.a \
          $(OBJS64)/libgalahad_mkl_pardiso.a \
          $(OBJS64)/libgalahad_pardiso.a \
          $(OBJS64)/libgalahad_wsmp.a \
          $(OBJS64)/libmetis464_nodend.a \
          $(OBJS64)/libmetis564_nodend.a \
          $(OBJS64)/libgalahad_pastix.a \
          $(OBJS64)/libgalahad_mumps.a \
          $(OBJS64)/libgalahad_mpi.a \
          $(OBJS64)/libgalahad_umfpack.a \
          $(OBJS64)/libgalahad_lapack.a \
          $(OBJS64)/libgalahad_blas.a \
          -lstdc++ -lhwloc 
	$(RMOOC)
	- ./run_$(package) > $(package)dtm.output 2>&1
	cat $(package)dtm.output
	rm ./run_$(package)

#  main program

run$(package)_sif.o: $(OBJ)/run$(package)_sif_$(PRECIS).o

$(OBJ)/run$(package)_sif_$(PRECIS).o: ../$(package)/run$(package)_sif.F90
	@printf ' %-9s %-15s\t\t' "Compiling" "run$(package)_sif"
	$(CP) ../$(package)/run$(package)_sif.F90 $(OBJ)/run$(package)_sif.F90
	cd $(OBJ); $(FORTRAN) -o run$(package)_sif_$(PRECIS).o \
                     $(FFLAGSS) run$(package)_sif.F90
	rm $(OBJ)/run$(package)_sif.F90
	@printf '[ OK ]\n'

# main progarms for data-file interface

run$(package)_qplib.o: $(OBJ)/run$(package)_qplib_$(PRECIS).o

$(OBJ)/run$(package)_qplib_$(PRECIS).o: ../$(package)/run$(package)_qplib.F90
	@printf ' %-9s %-15s\t\t' "Compiling" "run$(package)_qplib"
	$(CP) ../$(package)/run$(package)_qplib.F90 \
           $(OBJ)/run$(package)_qplib.F90
	cd $(OBJ); $(FORTRAN) -o run$(package)_qplib_$(PRECIS).o \
                     $(FFLAGSOMP) run$(package)_qplib.F90
	rm $(OBJ)/run$(package)_qplib.F90
	@printf '[ OK ]\n'

#  book keeping

clean:
	@printf ' %-9s\t\t' "Removing $(package) files"
	$(RMARFILE) $(package)_$(PRECIS).o
	$(RM) $(OBJ)/$(package)t_$(PRECIS).o $(OBJ)/$(package)s_$(PRECIS).o
	@printf '[ OK ]\n'

cleanall:
	@printf ' %-14s\t\t' \
          "Removing all $(PRECIS) precision object and module files"
	$(RM) -r $(OBJ)/* $(MOD)/*
	@printf '[ OK ]\n'

cleanallc:
	@printf ' %-9s\t' \
          "Removing all $(PRECIS) precision C-interface object and module files"
	$(RM) $(OBJ)/libgalahad_c.a $(MOD)/*ciface.mod
	@printf '[ OK ]\n'
