SECTION 1.0 INTRODUCTION TO GENERAL ORGANIZATION OF GQOPT

1.0.0 Running the Various Compilers.

Each of the compilers comes with a Library Manager and a Linker. We provide the GQOPT Library which contains all of GQOPT. Users need only compile their MAIN program and link it with the linker to the library.

There are substantial, and perhaps increasing differences among compilers. As a result, GQOPT versions suitable for one compiler will generally not work for other compilers.

Special Alert: The underlying programming convention in many parts of GQOPT is that a work array of specified length must be declared in the labeled COMMON block COMMON/BSTACK/AINT(  ). This same COMMON block occurs in many GQOPT routines, but is dimensioned AINT(1), so as to avoid having to recompile many routines for every different problem. While this is technically a violation of standards, it is extremely useful and convenient. However, a user has determined that the recently released Version 6.0 of the Digital Visual Fortran does not permit this practice, since its LINKER apparently automatically checks for bounds violations. We know of no other compiler that shares this feature. An immediate remedy is to suppress bounds checking or, less conveniently, to dimension AINT in every subroutine as well as every MAIN program sufficiently large so that it will serve the user for all problems to be solved (e.g., AINT(60000)). A version of GQOPT that gets around this in a still different way is being developed and should be available within a short time.

1.0.1 Source Files

The following source files comprise GQOPT, but not all versions of GQOPT contain exactly the same configuration of subroutines. In particular, in the (old) Microsoft version the SUBROUTINES DERF, GAUS, RAND, and ZNORM are in file RAND.FOR and not GAUS.FOR.

Name          Subroutines contained in it


ARMAPQ  .FOR  ARMAPQ
ASCINT  .FOR  ASCINT
AUTOC   .FOR  AUTOC
AUTOCOV .FOR  AUTOCOV
BIVAR2  .FOR  BIVAR2   HRRRR9   GRRRR9   GAUS1A   GAUS1B
CLUSHIER.FOR  CLUSHIER FINDMIN  FORMCLUST FINALCENT FORMCENT DISTANCE
CLUSTER .FOR  CLUSTER  DETERCTD MARKSD   CALCE    CALCNEW  CALCNEWC CALCNEWK DISTNC
CNTR    .FOR  CNTR
COCHRANQ.FOR  CHISPR
CONOPT  .FOR  CONOPT   CONOPP   CONFNC   PNLT2    OPTOU2
CONTNG  .FOR  CONTNG
CONVOLVE.FOR  GAUSA    CONVOLVE
CUMDIS  .FOR  SORT1
DENSPLOT.FOR  DENSPLOT SORT2C
DENS4   .FOR  DENS
DFLT    .FOR  DFLT
DFP     .FOR  DFP      DFPP     FPSTEW   PUNCH
DISCCONV.FOR  DISCCONV
DISEQ1  .FOR  DISEQ1   DISEFP   DISESP
DISEQ2  .FOR  DISEQ2
DISEQ3  .FOR  DISEQ3
DTRM    .FOR  DTRM
FP      .FOR  FP       SP       FPP      DERIV
FRIED   .FOR  FRIED
GAJORE  .FOR  GAJORE
GAMLOG  .FOR  CHISPR   GAMLOG   SMIRNV
GAUS    .FOR  DERF     GAUS     RAND     ZNORM
GAUSSEID.FOR  EQUS
GAUSLA  .FOR  GAUSLA
GENALG  .FOR  GENALG   GENALG1  PAIRING  TESTCONV MUTATE   KILLPOP  MATING
              CHECKVAL CHECKFUN SORTGEN  CROSS    CHECKFU2 SHFTPOP
GENRAN  .FOR  SELPOINT EVAPOINT TERMIN   SORTGEN1 PRTGEN7  KILLPT   XMOD
GJR     .FOR  GJR
GJRR    .FOR  GJRR
GLOB1   .FOR  GLOB1    YGEN
GLOB2   .FOR  PRT1A    PRT2A    PRT3A    PRT4A    PRT5A    PRT6A    PRT7A    PRT8A
              PRT1B    PRT2B    PRT3B    PRT4B    PRT5B    PRT6B    PRT7B    PRT8B
              PRTVCA   PRTVCB   EXPREP
GRADX   .FOR  GRADX    GRADXX   SBHHH    SBHSCH   BFORM    BFU      ZFU      FPPP
HETER1  .FOR  HETER1
INTASC  .FOR  INTASC
KERREG  .FOR  KERREG   KERREG1  KERREG2  FNABSC   ZVAL
KLSM1   .FOR  XMB1     KLSMR1   SRND1
KLSM2   .FOR  KLSMR2   SORT4
KRUSKALW.FOR  CHISPR   SORT3A   COUNTTIE CONV     KRUSKALW
LINPROA .FOR  PREPIV   PIVTLP   PIVROW   OPTTST2  LINPROA  OPTTST1
LINPROFS.FOR  PREPFS   PIVFS    OPTTST   COMPACT  LINPROFS
LNSR    .FOR  LNSR     DLNSR    STR      STRCH
LOGJACK .FOR  LOGJACK
MATEV2  .FOR  MATEV2
MATP    .FOR  MATP     MATPT    DOTV     VEC      MOVE     ZZD
MATVRT  .FOR  MATVRT
MONCARL .FOR  MONCARL
MVARNORM.FOR  MVARNORM
MUKAI   .FOR  MUKAI    MUKK
NEWRAP  .FOR  NEWRAP   NWRPXX   JACOB    OPTOU4   SLVEQ1   VERSIV   SLV
NORMPRB .FOR  NORMPRB  MONCARL1
OPT     .FOR  OPT      TRATIO   OPTMOV   OPTOU0   OPTOU1   LABEL    PERM1   PRMCHK
              DBPM     OPTOUT
PATERN  .FOR  PATERN   PATER    EXPLOR   RNSRCH   RNSRXX   RXX      NMSIMP   NELMED
PLOTCURV.FOR  PLOTCURV
POLYCHO .FOR  POLYCHO
POWELL  .FOR  POWELL   POWEL
PRINCOMP.FOR  PRINCOMP
PROB1A  .FOR  PROB1A   PRFP1A   PRSP1A   PROB1S   PROB2A   PRFP2A   PRSP2A   TOB2A    TOSP2A
              TOFP2A   ENSCRM   DESCRM   OPTOU3
PROB2AJ .FOR  PROB2AJ
PROBJACK.FOR  PROBJACK PROB1J   TOB2AJ
PROOTS  .FOR  PROOTS
QUADR   .FOR  GAUSA    NEWCT1   NEWCT2   NEWCT3   BIV2     GAULG1   GAULG2   GAULG3   DUTT2
              DUTT3    CLARK2   CLARK3   D2       D3       AAMAX    BIINT    TRINT
QUINTA  .FOR  QUINT
RANDOM  .FOR  RANDOM   RANSET
RANDVAR .FOR  EXPON    CAUCHY   RAYLEI   PARETO   LOGIST
RECURS  .FOR  RECURS
REGFAL  .FOR  REGFAL
REGR    .FOR  GJR      REGR
RESRG1  .FOR  RESRG1   RESRG2   FTEST
RRAND   .FOR  RRAND
RRND    .FOR  RRND
RROT    .FOR  RROT
SEQOPT  .FOR  SEQOPT   SEQOPP   COPYXS   CYCPRM   UNPRM
SHPWLK  .FOR  SORT1
SIMEQ1  .FOR  SIMEQ1
SMLCLN  .FOR  SMLCLN
SORT1   .FOR  SORT1
SORT2   .FOR  SORT2
SORT3   .FOR  SORT3
SPEAR1  .FOR  SPEAR1
SRAND   .FOR  RRAND
SRND    .FOR  SRND
SSVM    .FOR  SSVM     SXSXS    SSRCH
STIRLING.FOR  STIRLING STIRLOG
TAUK    .FOR  TAUK
TAU3    .FOR  TAU3
TESTMEAN.FOR  TESTMEAN
TIMSER00.FOR  SPEC00   SPECTRAL DATACHK  CXFFT   CXINVFFT  FFTCXS   PERIOD00
              AUTOCOV  SINES    REVERSE  REAL2FFT
TAU3    .FOR  TAU3
TRAVSAL .FOR  TRAVSAL  GENINT1  PAIR     TSTCNV  MUTA      KILL     MATE
              SORTABN  SORTPERM CROSSOV  GENVEC
WEDDLE  .FOR  WEDDLE
WALDWOLF.FOR  WALDWOLF
WILCOXON.FOR  CHISPR   SORT3A
WMW     .FOR  WMW

Note: In the Lahey Compiler version the following name changes are in effect: QUINT is called QUINTA, RRAND is called RRND, SRAND is called SRND.

INDEX to GQOPT

Subrout.   File        Subrout.   File      Subrout.   File


AAMAX      quadr       GLOB1      glob1     PRT3A      glob2
ARMAPQ     armapq      GLOB2      glob2     PRT3B      glob2
ASCINT     ascint      GRADX      gradx     PRT4A      glob2
AUTOC      autoc       GRADXX     gradx     PRT4B      glob2
AUTOCOV    timser00    GRRRR9     bivar2    PRT5A      glob2
BFORM      gradx       HETER1     heter1    PRT5B      glob2
BIINT      quadr       HRRRR9     bivar2    PRT6A      glob2
BIV2       quadr       INTASC     intasc    PRT6B      glob2
BIVAR2     bivar2      JACOB      newrap    PRT7A      glob2
CALCE      cluster     KERREG     kerreg    PRT7B      glob2
CALCNEWC   cluster     KERREG1    kerreg    PRT8A      glob2
CALCNEWK   cluster     KERREG2    kerreg    PRT8B      glob2
CAUCHY     randvar     KILL       travsal   PRTVCA     glob2
CHECKFUN   genalg      KILLPOP    genalg    PRTVCB     glob2
CHECKFU2   genalg      KILLPT     genran    PUNCH      dfp
CHECKVAL   genalg      KLSMR1     klsm1     QUINTA     quint
CHISPR     gamlog      KNAP       knap      RAND       gaus
CLARK2     quadr       KRUSKALW   kruskalw  RANDOM     random
CLARK3     quadr       LABEL      opt       RANSET     random
CLUSTER    cluster     LINPROA    linproa   REAL2FFT   timser00
CNTR       cntr        LINPROFS   linprofs  REGFAL     regfal
COMPACT    linprofs    LNSR       lnsr      REGR       regr
CONFNC     conopt      LOGIST     randvar   RESRG1     resrg1
CONOPP     conopt      LOGJACK    logjack   RESRG2     resrg1
CONOPT     conopt      MARKSD     cluster   REVERSE    timser00
CONTNG     contng      MATE       travsal   RNSRCH     patern
CONV       wilcoxon    MATEV2     matev2    RNSRXX     patern
COPYXS     seqopt      MATING     genalg    RAND       rrand
COCHRANQ   cochranq    MATP       matp      RAYLEI     randvar
CONVOLVE   convolve    MATPT      matp      RXX        patern
CROSS      genalg      MATVRT     matvrt    SBHHH      gradx
CROSSOV    travsal     MONCARL    moncarl   SBHRCH     gradx
COUNTTIE   kruskalw    MONCARL1   normprb   SELPOINT   genran
CUMDIS     cumdis      MOVE       matp      SEQOPP     seqopt
CYCPRM     seqopt      MUKAI      mukai     SEQOPT     seqopt
CXFFT      timser00    MUKK       mukai     SHFTPOP    genalg
CXINVFFT   timser00    MUTA       travsal   SHPWLK     shpwlk
D2         quadr       MUTATE     genalg    SIMEQ1     simeq1
D3         quadr       MVARNORM   mvarnorm  SINES      timser00
DATACHK    timser00
DENSPLOT   densplot    NEWCT1     quadr
DERF       gaus        NEWCT2     quadr     SLV        newrap
DERIV      fp          NEWCT3     quadr     SLVEQ1     newrap
DESCRM     prob1a      NEWRAP     newrap    SMIRNV     gamlog
DFLT       dflt        NMSIMP     patern    SORTABN    travsal
DFP        dfp         NORMPRB    normprb   SORTGEN    genalg
DFPP       dfp         NWRPXX     newrap    SORTGEN1   genran
DISCCONV   discconv    OPT        opt       SORTPERM   travsa
DISEFP     diseq1      OPTMOV     opt       SORT1      sort1
DISEQ1     diseq1      OPTOU0     opt       SORT1A     wilcoxon
DISESP     diseq1      OPTOU1     opt       SORT2      sort2
DISEQ2     diseq2      OPTOU2     conopt    SORT3      sort3
DISEQ3     diseq3      OPTOU3     prob1a    SORT3A     wilcoxon
DISTANCE   clushier    OPTOU4     newrap    SP         fp
DISTNC     cluster     OPTOUT     opt       SPEC00     timser00
DLNSR      lnsr        OPTTST     linprofs  SPECTRAL   timser00
DOTV       matp        OPTTST1    linproa   SPEAR1     spear1
DTRM       dtrm        OPTTST2    linproa   SRAND      srand
DUTT2      quadr       PAIR       travsal   SRND       klsm1
DUTT3      quadr       PAIRING    genalg    SSRCH      ssvm
ENSCRM     prob1a      PARETO     randvar   SSVM       ssvm
EQUS       gausseid    PATER      patern    STR        lnsr
EVAPOINT   genran      PATERN     patern    STRCH      lnsr
EXPLOR     patern      PERIOD00   timser00  SXSXS      ssvm
EXPON      randvar     PERM1      opt       TAUK       tauk
EXPREP     glob2       PIVFS      linprofs  TAU3       tau3
FFTCXS     timser00    PIVROW     linproa   TERMIN     genran
FINALCENT  clushier    PIVTLP     linproa   TESTCONV   genalg
FINDRANG   cluster     PLOTCURV   plotcurv  TESTMEAN   testmean
FINDMIN    clushier    PNLT2      conopt    TOB2A      prob1a
FNABSC     kerreg                           TOB2AJ     probjack
FORMCENT   clushier    POLYCHO    polycho   TOFP2A     prob1a
FORMCLUS   clushier    POWEL      powell    TOSP2A     prob1a
FP         dfp         POWELL     powell    TRATIO     opt
FPP        dfp         PREPFS     linprofs  TRAVSAL    travsal
FRIED      fried       PREPIV     linproa   TRINT      quadr
FTEST      resrg1      PRFP1A     prob1a    TSTCNV     travsal
                       PRSP1A     prob1a    UNPRM      seqopt
                       PRMCHK     opt       VEC        matp
FPPP       gradx       PROB1A     prob1a    VERS       newrap
FPSTEW     dfp         PROB1J     probjack
GAJORE     gajore      PROB1S     prob1a    WALDWOLF   waldwolf
GAMLOG     gamlog      PROB2A     prob1a    WEDDLE     weddle
GAULG1     quadr       PROB2AJ    probjack
GAULG2     quadr       PROBJACK   probjack
GAULG3     quadr       PROOTS     proots    WILCOXON   wilcoxon
GAUS       gaus        PRSP1A     prob1a    WMW        wmw
GAUSSEID   gausseid    PRSP2A     prob1a    YGEN       glob1
GAUS1A     bivar2      PRTGEN7    genran    XMB1       klsm1
GAUS1B     bivar2      PRT1A      glob2     XMOD       genran
GAUSA      quadr       PRT1B      glob2     XPROB      normprob
GAUSLA     gausla      PRT2A      glob2     ZNORM      gaus
GENALG     genalg      PRT2B      glob2     ZVAL       kerreg
GENALG1    genalg                           ZZD        matp
GENINT1    travsal
GENRAN     genran
GENVEC     travsal
GJR        regr




A number of test MAIN programs are also provided. Parentheses indicate the optimization methods or modules used:

Name         For testing

GQT1A   .FOR Estimation of a simple disequilibrium model (DISEQ1.FOR)
GQ4T5   .FOR Estimation of a Tobit model (PROB1A.FOR)
GQT8A   .FOR Optimization with POWELL, PATERN, RNSRCH
GQ4T10  .FOR Estimation of Logit model (PROB1A.FOR)
GQ4T11  .FOR Optimization with GRADX, DFP for Probit (GRADX,DFP,
             PROB1A) (RNSRCH.FOR) and Nelder-Mead Simplex
             (NMSIMP.FOR) algorithms
GQT13   .FOR Contour plotter (CNTR.FOR)
GQ4T17A .FOR Solving of equations
QUAD3A  .FOR Integration; testing QUADR
BIVAR3  .FOR Integration; testing BIVAR2
SIMTEST .FOR Simultaneous equations estimation
AUTOTEST.FOR Autocorrelation of residuals estimation
QUINT1  .FOR Trivariate integration
SHAPWLK1.FOR Shapiro-Wilk Statistic
CUMTST  .FOR Compute Cumulative sample distribution
TESTSORT.FOR Test sort algorithm
GAMLOGT .FOR Compute Smirnov limit probability
CHITST  .FOR Compute Chi Squared Probabilities
GLOB1A  .FOR Global optimization: To test GLOB1
GLOB2A  .FOR Global optimization: To test GLOB2
WEDDLETS.FOR Weddle-rule numerical integration
KNAPTST .FOR Integer programming
GAUSLAT .FOR Gauss-Laguerre integration
LINTESFS.FOR Linear programming
LINTESTA.FOR Linear programming
ASCITEST.FOR ASCII to integer conversion
XMBTEST .FOR Normal deviate generation
WMWTEST .FOR Wilcoxon-Mann-Whitney test
CHITST  .FOR Chi square distribution
XROOTS  .FOR Find the roots of a polynomial
XMATTST .FOR Invert matrix by several methods
XDENS4  .FOR Density estimation
XKERREG .FOR Kernel regression
XTIMSER .FOR Time series analysis (autocovariance, periodogram,
             spectrum)
POLTEST .FOR To test polychotomous variable estimation
XGAJORE .FOR Solve linear equation
XRAND   .FOR To test RANDOM
XDENSPL .FOR To test density plotting for an X and a Y variable
XDENSPL1.FOR The same
XRANDVAR.FOR To generate variates by various distributions
XNORMPRB.FOR To calculate the intercept of a plane such that the
             multivariate normal probability of being under it is a given
             number
YNORMPRB.FOR To caculate the probability from the multivariate normal
             of falling in the intersection of half-spaces
XGENALG .FOR To find an approximate global mininimum
XTRAVSAL.FOR To find an approximate solution to a traveling salesman problem
XPLOTCRV.FOR To plot a time series
XGAUSSEI.FOR To solve equations by Gauss-Seidel
XGENRAN .FOR To optimize functions using a genetic algorithm
XCONVOLV.FOR To compute the convolution of two distributions
XDISCCON.FOR To compute a discrete convolution
XKRUSKAL.FOR To compute the Kruskal-Wallis test
XWILCOX .FOR To compute the Wilcoxon test
XTESTMEA.FOR To test for significant differences between two means
XINVGAUS.FOR To invert the normal distribution
XTOBJACK.FOR For tobit jackknife
STIRTEST.FOR For the Stirling approcimation
XPROBJACK.FOR To compute a probit jackknife
XRECURS .FOR For recursive residuals
XPRINCMP.FOR To compute principal components
XRROT   .FOR To compute the robust rank order test
XCLUSTHI.FOR For hierarchical clustering
XCLUSTER.FOR For cluster analysis
XLOGJACK.FOR For the logit jackknife

1.0.2 Running GQOPT

The general procedure is for the user to compile his MAIN program and function subroutine and then link the resulting object codes with the appropriate parts of GQOPT. The name of the GQOPT Library depends on the particular version that is being used.

On a Sun workstation, the procedure is

f90 MAIN.F libgq710.a 

On an RS/6000 workstation, the procedure is

xlf  MAIN.F gqrs710.a

On a DEC workstation, the procedure is

f90 MAIN.F libdc710.a

The following table gives the list of object modules that are needed to run each particular algorithm. If the user wishes to run a program that calls two or more algorithms, the object modules needed are always the union of the object modules listed next to the name of each algorithm. In addition to the needed modules in the table below, the user should remember that if he/she uses SEQOPT, CONOPT, PROBIT, TOBIT, LOGIT, DISEQU, at least one optimizing algorithm (i.e, one of DFP, GRADX, POWELL, PATERN, MUKAI, RNSRCH, SSVM, NMSIMP) is also needed.

To Run Need Object Files

Algor- O C R M F L D G P S P R N M S C P M D N R S
ithm   P N A A P N F R O S A N M U E O R A I E E L
       T T N T   S P A W V T S S K Q N O T S W G V
         R D P   R   D E M E R I A O O B E E R F M
                     X L   R C M I P P 1 V Q A A I
                       L   N H P   T T A 2 1 P L N
DFP    x     x x x x
GRADX  x     x x x   x                   x
POWELL x     x   x     x
PATERN x                   x
NMSIMP x     x                 x
MUKAI  x     x x                 x
SSVM   x     x x         x
RNSRCH x   x                 x
CNTR   x x
SEQOPT x                           x
CONOPT x                             x
PROBIT x   x                           x
TOBIT  x   x                           x
LOGIT  x                               x
DISEQU x       x                           x
NEWRAP                                       x
REGFAL                                         x
SLVMIN x                                         x

Return to the Beginning