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.
: 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