#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  INPUT define.f dnrm2.f done.f equal.f fcn.f getss.f
#   getss.intel.f global.intel.f init.f maxlen.f optim.f pds.f reads.f
#   result.f right.f scaled.f shrink.f swap.intel.f
# Wrapped by root@thule on Mon May 18 16:40:54 1992
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'INPUT' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'INPUT'\"
else
echo shar: Extracting \"'INPUT'\" \(49 characters\)
sed "s/^X//" >'INPUT' <<'END_OF_FILE'
X  2
X  1.0D-3
X  50
X  -1.2 1.0
X  2
X  1.0
X  0
X  256
END_OF_FILE
if test 49 -ne `wc -c <'INPUT'`; then
    echo shar: \"'INPUT'\" unpacked with wrong size!
fi
# end of 'INPUT'
fi
if test -f 'define.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'define.f'\"
else
echo shar: Extracting \"'define.f'\" \(7443 characters\)
sed "s/^X//" >'define.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)define.F 1.1 3/16/92
XC
X      SUBROUTINE DEFINE(N,TOL,MAXITR,S,TYPE,SCALE,DEBUG,SSS,IN)
XC
XC     SERVICE ROUTINE USED TO READ IN THE INFORMATION NECESSARY TO
XC     DEFINE THE PROBLEM TO BE SOLVED.  THIS IS A "BARE BONES" ROUTINE;
XC     NO ATTEMPT IS MADE TO VERIFY THAT THE USER'S INPUT IS CORRECT.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N, MAXITR, TYPE, DEBUG, SSS, IN
X      DOUBLE PRECISION TOL, S(N,N+1), SCALE
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     OUTPUT (TO DEFINE THE PROBLEM)
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        TOL           TOLERANCE USED TO CHECK FOR CONVERGENCE (THIS IS
XC                      ESSENTIALLY A STEP TOLERANCE TEST)
XC        MAXITR        MAXIMUM NUMBER OF ITERATIONS ALLOWED
XC        S             AN N BY N+1 MATRIX WHICH CONTAINS AT LEAST THE 
XC                      INITIAL GUESS IN THE FIRST COLUMN.  IF THE USER
XC                      SPECIFIES THE ENTIRE INITIAL SIMPLEX, THE
XC                      REMAINING N VERTICES SHOULD BE IN THE REMAINING
XC                      N COLUMNS OF S.  IF THE USER WISHES FOR THE REST
XC                      OF THE VERTICES IN THE INITIAL SIMPLEX TO BE
XC                      CONSTRUCTED, THE REMAINING N COLUMNS ARE
XC                      CONSIDERED TO BE UNINITIALIZED.
XC        TYPE          SPECIFIES THE TYPE OF INITIAL SIMPLEX
XC                         0   USER PROVIDED THE INITIAL SIMPLEX
XC                         1   RIGHT-ANGLED SIMPLEX (TO BE CONSTRUCTED)
XC                         2   REGULAR SIMPLEX (TO BE CONSTRUCTED)
XC                         3   SCALED RIGHT-ANGLED SIMPLEX (CONSTRUCTED)
XC        SCALE         IF THE SIMPLEX IS TO BE CONSTRUCTED, SCALE SHOULD
XC                      CONTAIN BOTH THE BASE LENGTH AND ORIENTATION OF
XC                      THE EDGES
XC        DEBUG         FLAG TO SIGNAL WHETHER OR NOT TO DUMP DEBUGGING
XC                      INFORMATION TO A FILE
XC                         0   NO DEBUGGING OUTPUT
XC                         1   LOG THE ITERATION COUNT, THE BEST VERTEX
XC                             AND ITS FUNCTION VALUE
XC                         2   INCLUDE THE SIMPLEX AND FLAG WHETHER OR
XC                             NOT STRICT DECREASE WAS OBTAINED
XC                         3   INCLUDE ALL VERTICES CONSTRUCTED AND THEIR
XC                             FUNCTION VALUES
XC                         4   INCLUDE THE POINTS THAT DEFINE THE SEARCH
XC                             SCHEME
XC        SSS           SIZE OF THE SEARCH STRATEGY (THE NUMBER OF POINTS
XC                      TO BE CONSIDERED AT EACH ITERATION)
XC        IN            UNIT NUMBER FOR THE FILE CONTAINING THE INPUT
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          I
XC
XC     READ IN THE DIMENSION OF THE PROBLEM TO BE SOLVED, THE STOPPING
XC     TOLERANCE FOR THE STEP SIZE, AND THE MAXIMUM NUMBER OF ITERATIONS
XC     ALLOWED.
X      READ(IN,*) N
X      READ(IN,*) TOL
X      READ(IN,*) MAXITR
XC
XC     READ IN AN INITIAL GUESS AT THE SOLUTION.
X      READ(IN,*) (S(I,1), I = 1, N)
XC
XC     READ IN THE SPECIFICATIONS FOR THE INITIAL SIMPLEX.
XC     IF SIGNALLED BY THE USER, READ IN THE REMAINING N VERTICES OF THE
XC     SIMPLEX.  OTHERWISE, READ IN THE "SCALE" FACTOR TO BE USED TO
XC     CONSTRUCT THE SIMPLEX.
X      READ(IN,*) TYPE
XC
X      IF (TYPE .EQ. 0) THEN
X         SCALE = -1.D0
X         CALL READS(N,IN,S)
X      ELSE
X         READ(IN,*) SCALE
X      ENDIF
XC
XC     READ IN THE VALUE OF THE "DEBUG" FLAG AND THE SIZE OF THE
XC     SEARCH STRATEGY TO BE EMPLOYED.
X      READ(IN,*) DEBUG
X      READ(IN,*) SSS
XC
X      RETURN
X      END
END_OF_FILE
if test 7443 -ne `wc -c <'define.f'`; then
    echo shar: \"'define.f'\" unpacked with wrong size!
fi
# end of 'define.f'
fi
if test -f 'dnrm2.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'dnrm2.f'\"
else
echo shar: Extracting \"'dnrm2.f'\" \(3826 characters\)
sed "s/^X//" >'dnrm2.f' <<'END_OF_FILE'
X      double precision function dnrm2 ( n, dx, incx)
X      integer          n, incx
X      integer          i, j, next, nn
X      double precision   dx(*), cutlo, cuthi, hitest, sum, xmax,zero,one
X      data   zero, one /0.0d0, 1.0d0/
Xc
Xc     euclidean norm of the n-vector stored in dx() with storage
Xc     increment incx .
Xc     if    n .le. 0 return with result = 0.
Xc     if n .ge. 1 then incx must be .ge. 1
Xc
Xc           c.l.lawson, 1978 jan 08
Xc
Xc     four phase method     using two built-in constants that are
Xc     hopefully applicable to all machines.
Xc         cutlo = maximum of  dsqrt(u/eps)  over all known machines.
Xc         cuthi = minimum of  dsqrt(v)      over all known machines.
Xc     where
Xc         eps = smallest no. such that eps + 1. .gt. 1.
Xc         u   = smallest positive no.   (underflow limit)
Xc         v   = largest  no.            (overflow  limit)
Xc
Xc     brief outline of algorithm..
Xc
Xc     phase 1    scans zero components.
Xc     move to phase 2 when a component is nonzero and .le. cutlo
Xc     move to phase 3 when a component is .gt. cutlo
Xc     move to phase 4 when a component is .ge. cuthi/m
Xc     where m = n for x() real and m = 2*n for complex.
Xc
Xc     values for cutlo and cuthi..
Xc     from the environmental parameters listed in the imsl converter
Xc     document the limiting values are as follows..
Xc     cutlo, s.p.   u/eps = 2**(-102) for  honeywell.  close seconds are
Xc                   univac and dec at 2**(-103)
Xc                   thus cutlo = 2**(-51) = 4.44089e-16
Xc     cuthi, s.p.   v = 2**127 for univac, honeywell, and dec.
Xc                   thus cuthi = 2**(63.5) = 1.30438e19
Xc     cutlo, d.p.   u/eps = 2**(-67) for honeywell and dec.
Xc                   thus cutlo = 2**(-33.5) = 8.23181d-11
Xc     cuthi, d.p.   same as s.p.  cuthi = 1.30438d19
Xc     data cutlo, cuthi / 8.232d-11,  1.304d19 /
Xc     data cutlo, cuthi / 4.441e-16,  1.304e19 /
X      data cutlo, cuthi / 8.232d-11,  1.304d19 /
Xc
X      if(n .gt. 0) go to 10
X         dnrm2  = zero
X         go to 300
Xc
X   10 assign 30 to next
X      sum = zero
X      nn = n * incx
Xc                                                 begin main loop
X      i = 1
X   20    go to next,(30, 50, 70, 110)
X   30 if( dabs(dx(i)) .gt. cutlo) go to 85
X      assign 50 to next
X      xmax = zero
Xc
Xc                        phase 1.  sum is zero
Xc
X   50 if( dx(i) .eq. zero) go to 200
X      if( dabs(dx(i)) .gt. cutlo) go to 85
Xc
Xc                                prepare for phase 2.
X      assign 70 to next
X      go to 105
Xc
Xc                                prepare for phase 4.
Xc
X  100 i = j
X      assign 110 to next
X      sum = (sum / dx(i)) / dx(i)
X  105 xmax = dabs(dx(i))
X      go to 115
Xc
Xc                   phase 2.  sum is small.
Xc                             scale to avoid destructive underflow.
Xc
X   70 if( dabs(dx(i)) .gt. cutlo ) go to 75
Xc
Xc                     common code for phases 2 and 4.
Xc                     in phase 4 sum is large.  scale to avoid overflow.
Xc
X  110 if( dabs(dx(i)) .le. xmax ) go to 115
X         sum = one + sum * (xmax / dx(i))**2
X         xmax = dabs(dx(i))
X         go to 200
Xc
X  115 sum = sum + (dx(i)/xmax)**2
X      go to 200
Xc
Xc
Xc                  prepare for phase 3.
Xc
X   75 sum = (sum * xmax) * xmax
Xc
Xc
Xc     for real or d.p. set hitest = cuthi/n
Xc     for complex      set hitest = cuthi/(2*n)
Xc
X   85 hitest = cuthi/float( n )
Xc
Xc                   phase 3.  sum is mid-range.  no scaling.
Xc
X      do 95 j =i,nn,incx
X      if(dabs(dx(j)) .ge. hitest) go to 100
X   95    sum = sum + dx(j)**2
X      dnrm2 = dsqrt( sum )
X      go to 300
Xc
X  200 continue
X      i = i + incx
X      if ( i .le. nn ) go to 20
Xc
Xc              end of main loop.
Xc
Xc              compute square root and adjust for scaling.
Xc
X      dnrm2 = xmax * dsqrt(sum)
X  300 continue
X      return
X      end
END_OF_FILE
if test 3826 -ne `wc -c <'dnrm2.f'`; then
    echo shar: \"'dnrm2.f'\" unpacked with wrong size!
fi
# end of 'dnrm2.f'
fi
if test -f 'done.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'done.f'\"
else
echo shar: Extracting \"'done.f'\" \(5825 characters\)
sed "s/^X//" >'done.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)done.F 1.3 5/18/92
XC
X      LOGICAL FUNCTION DONE(MAXITR,COUNT,N,TOL,LENGTH,V0)
XC
XC     THIS IS A SERVICE FUNCTION USED TO TEST FOR CONVERGENCE OF THE
XC     PARALLEL DIRECT SEARCH METHODS.
XC
XC     THIS FUNCTION FIRST TESTS FOR CONVERGENCE BY CHECKING WHETHER THE
XC     NUMBER OF ITERATIONS HAS REACHED THE MAXIMUM SET BY THE USER.  IF
XC     NOT, IT THEN CHECKS TO SEE WHETHER OR NOT THE FOLLOWING STEP
XC     TOLERANCE CRITERION HAS BEEN MET:
XC
XC             (1 / DELTA) * {    MAX     ||V - V || },
XC                                I,J        I   J  2
XC     WHERE
XC              DELTA = MAX(1, ||V || ),
XC                                0  2
XC
XC     IS LESS THAN SOME USER-SPECIFIED TOLERANCE.
XC
XC     THE RETURN VALUES ARE:
XC
XC        TRUE    IF EITHER OF THE CONVERGENCE CRITERIA HAS BEEN MET
XC        FALSE   OTHERWISE
XC
XC     WRITTEN BY VIRGINIA TORCZON
XC
XC     LAST MODIFICATION:  MAY 4, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          MAXITR, COUNT, N
X      DOUBLE PRECISION TOL, LENGTH, V0(N)
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        MAXITR        MAXIMUM NUMBER OF ITERATIONS ALLOWED
XC                      (AS SPECIFIED BY THE USER DURING INITIALIZATION)
XC        COUNT         NUMBER OF ITERATIONS COMPLETED
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        TOL           STEP TOLERANCE CRITERION FOR COMPLETING THE
XC                      SEARCH USING THE TEST DESCRIBED ABOVE (ALSO
XC                      SPECIFIED BY THE USER DURING INITIALIZATION)
XC        LENGTH        LENGTH OF THE LONGEST EDGE IN THE CURRENT SIMPLEX
XC        V0            CURRENT BEST VERTEX
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      DOUBLE PRECISION NORM, DELTA
XC
XC     LOCAL FUNCTIONS  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
XC     INTRINSIC        MAX
X      DOUBLE PRECISION DNRM2
XC
X      IF (COUNT .EQ. MAXITR) THEN
X         DONE = .TRUE.
X      ELSE
X         NORM = DNRM2(N,V0,1)
X         DELTA = MAX(1.D0, NORM)
X         DONE = (LENGTH / DELTA) .LE. TOL
X      ENDIF
XC
X      RETURN
X      END
END_OF_FILE
if test 5825 -ne `wc -c <'done.f'`; then
    echo shar: \"'done.f'\" unpacked with wrong size!
fi
# end of 'done.f'
fi
if test -f 'equal.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'equal.f'\"
else
echo shar: Extracting \"'equal.f'\" \(7386 characters\)
sed "s/^X//" >'equal.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)equal.F 1.3 5/18/92
XC
X      SUBROUTINE EQUAL(N,SCALE,S)
XC
XC     THIS IS A SERVICE SUBROUTINE USED TO CONSTRUCT AN INITIAL SIMPLEX
XC     WHEN ONE IS NOT PROVIDED BY THE USER.  THIS ROUTINE CONSTRUCTS A
XC     REGULAR SIMPLEX (I.E., ONE IN WHICH ALL OF THE EDGES ARE OF EQUAL
XC     LENGTH) FOLLOWING AN ALGORITHM GIVEN BY JACOBY, KOWALIK, AND PIZZO
XC     IN "ITERATIVE METHODS FOR NONLINEAR OPTIMIZATION PROBLEMS,"
XC     PRENTICE-HALL (1972).  THIS ALGORITHM ALSO APPEARS IN SPENDLEY,
XC     HEXT, AND HIMSWORTH, "SEQUENTIAL APPLICATION OF SIMPLEX DESIGNS IN
XC     OPTIMISATION AND EVOLUTIONARY OPERATION," TECHNOMETRICS, VOL. 4,
XC     NO. 4, NOVEMBER 1962, PAGES 441--461.
XC
XC     NOTE THAT THE USER MUST PROVIDE AN INITIAL GUESS AT THE SOLUTION,
XC     WHICH IS USED AS THE BASE VERTEX V0, AS WELL AS THE VARIABLE
XC     `SCALE', WHICH SPECIFIES THE LENGTH OF THE EDGES IN THE INITIAL
XC     SIMPLEX.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MAY 4, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N
X      DOUBLE PRECISION SCALE, S(N,N+1)
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        SCALE         DUAL PURPOSE; IF
XC                         0    THEN USER SUPPLIED THE SIMPLEX TO BE
XC                              USED TO START THE SEARCH AND
XC                              THIS SUBROUTINE WILL NOT BE CALLED
XC                         ELSE THIS SUBROUTINE CONSTRUCTS A REGULAR 
XC                              SIMPLEX WITH EDGES OF LENGTH `SCALE'
XC        S             TWO-DIMENSIONAL ARRAY CONTAINING THE VERTEX
XC                      SPECIFIED BY THE USER TO BEGIN THE SEARCH
XC     OUTPUT
XC        S             TWO-DIMENSIONAL ARRAY CONTAINING THE N+1 VERTICES
XC                      OF THE SIMPLEX TO BE USED TO START THE SEARCH.
XC                      THIS SIMPLEX WILL BE A REGULAR SIMPLEX WITH
XC                      EDGES OF LENGTH `SCALE'.
XC     REMARKS
XC        THE WORKSPACE FOR THE SIMPLEX IS DECLARED IN THE MAIN PROGRAM
XC        TO BE A ONE-DIMENSIONAL VECTOR `SIMPLEX'; HOWEVER, ALL
XC        SUBROUTINE CALLS REDEFINE THE ONE-DIMENSIONAL VECTOR `SIMPLEX'
XC        TO BE A TWO-DIMENSIONAL ARRAY `S' OF DIMENSION N BY N+1.  NOTE
XC        ALSO THAT THE N+1 VERTICES OF THE SIMPLEX ARE STORED BY COLUMN.
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          I, J
X      DOUBLE PRECISION P, Q, TEMP
XC
XC     LOCAL FUNCTIONS  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
XC     INTRINSIC        SQRT
XC
XC     CALCULATE THE AUXILIARY VALUES 'P' AND 'Q' AS FOLLOWS:
XC
XC                   SQRT(N + 1) - 1 + N
XC            P  =  --------------------- * SCALE
XC                       N * SQRT(2)
XC
XC                     SQRT(N + 1) - 1
XC            Q  =    ----------------- * SCALE
XC                       N * SQRT(2)
XC
X      TEMP = N + 1.D0
X      Q = ((SQRT(TEMP) - 1.D0) / (N * SQRT(2.D0))) * SCALE
X      P = Q + ((1.D0 / SQRT(2.D0)) * SCALE)
XC
XC     NOW CALCULATE THE COORDINATES OF THE REMAINING VERTICES OF THE
XC     SIMPLEX AS FOLLOWS:
XC
XC       S(*,1)   = (S(1,1),     S(2,1),     S(3,1),     ..., S(N,1))
XC       S(*,2)   = (S(1,1) + P, S(2,1) + Q, S(3,1) + Q, ..., S(N,1) + Q)
XC                .
XC                .
XC                .
XC       S(*,N+1) = (S(1,1) + Q, S(2,1) + Q, S(3,1) + Q, ..., S(N,1) + P)
XC
X      DO 3000 J = 2, N+1
X         DO 1000 I = 1, J-2
X            S(I,J) = S(I,1) + Q
X 1000    CONTINUE
X         I = J - 1
X         S(I,J) = S(I,1) + P
X         DO 2000 I = J, N
X            S(I,J) = S(I,1) + Q
X 2000    CONTINUE
X 3000 CONTINUE
XC
X      RETURN
X      END
END_OF_FILE
if test 7386 -ne `wc -c <'equal.f'`; then
    echo shar: \"'equal.f'\" unpacked with wrong size!
fi
# end of 'equal.f'
fi
if test -f 'fcn.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fcn.f'\"
else
echo shar: Extracting \"'fcn.f'\" \(6203 characters\)
sed "s/^X//" >'fcn.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)fcn.F 1.1 3/16/92
XC
X      SUBROUTINE FCN(N,X,F)
XC
XC     COMPUTES THE EXTENDED ROSENBROCK FUNCTION FOR ANY EVEN VALUE OF N.
XC     SOURCES:  H. H. ROSENBROCK.  AN AUTOMATIC METHOD FOR FINDING
XC               THE GREATEST OR LEAST VALUE OF A FUNCTION.
XC               THE COMPUTER JOURNAL, VOL. 3, NO. 3, OCTOBER 1960,
XC               PAGES 175--184.
XC
XC               J. J. MORE, B. S. GARBOW AND K. E. HILLSTROM.
XC               TESTING UNCONSTRAINED OPTIMIZATION SOFTWARE.
XC               ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE,
XC               VOL. 7, NO. 1, MARCH 1981, PAGES 17--41.
XC
XC     (21) EXTENDED ROSENBROCK FUNCTION
XC
XC          (A) N VARIABLE BUT EVEN
XC                                   2
XC          (B) F    (X) = 10(X   - X    )
XC               2I-1          2I    2I-1
XC
XC              F  (X) = 1 - X
XC               2I           2I-1
XC                                                    2         2
XC              F(X) = SUM FROM I = 1 TO N/2 (F    (X)  + F  (X) ).
XC                                             2I-1        2I
XC
XC          (C) X  = (EPSILON ) WHERE EPSILON    = -1.2, EPSILON  = 1
XC               0           I               2I-1               2I
XC
XC          (D) F(X ) = 0 AT X  = (1,...,1)
XC                 *          *
XC
XC     WRITTEN BY VIRGINIA TORCZON
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N
X      DOUBLE PRECISION X(N), F
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        X             POINT AT WHICH THE FUNCTION IS TO BE EVALUATED
XC     OUTPUT
XC        F             FUNCTION VALUE AT X
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL CONSTANTS
X      LOGICAL          KLUDGE
X      PARAMETER       (KLUDGE = .FALSE.)
XC
XC     LOCAL VARIABLES
X      INTEGER          I
X      DOUBLE PRECISION D, F1, F2, X1, X2
XC
XC     PRIVATE IS A SEQUENT COMPILER DIRECTIVE INDICATING THAT THE 
XC     VARIABLES IN THIS PROCEDURE SHOULD BE LOCAL FOR PARALLEL
XC     EXECUTION.
XC
XCSEQUENT C$    PRIVATE
XC
XC     COMPUTE THE FUNCTION VALUE.
X      F = 0.D0
XC
X      DO 1000 I = 1, N/2
X         X1 = X(2*I-1)
X         X2 = X(2*I)
XC
X         F1 = 10.D0 * (X2 - X1*X1)
X         F2 = 1.D0 - X1
XC
X         F = F + F1*F1 + F2*F2
X 1000 CONTINUE
XC
XC     FOR PREFORMANCE EVALUATION PURPOSES ONLY.
X      IF (KLUDGE) THEN
X         D = 0.0D0
X         DO 2000 I = 1, 1000
X            D = D + 1.0D0
X 2000    CONTINUE
X      ENDIF
XC
X      RETURN
X      END
END_OF_FILE
if test 6203 -ne `wc -c <'fcn.f'`; then
    echo shar: \"'fcn.f'\" unpacked with wrong size!
fi
# end of 'fcn.f'
fi
if test -f 'getss.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'getss.f'\"
else
echo shar: Extracting \"'getss.f'\" \(7869 characters\)
sed "s/^X//" >'getss.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)getss.F 1.1 3/16/92
XC
X      SUBROUTINE GETSS(N,IN,SSS,SCHEME,FACTOR,RESIZE,ERROR)
XC
XC     THIS IS THE SUBROUTINE USED TO READ IN THE SEARCH SCHEME FOR THE
XC     PARALLEL DIRECT SEARCH METHODS.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N, IN, SSS, SCHEME(-1:N,SSS), RESIZE, ERROR
X      DOUBLE PRECISION FACTOR
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        IN            UNIT NUMBER FROM WHICH THE SCHEME IS TO BE READ
XC        SSS           SIZE OF THE SEARCH SCHEME (THE NUMBER OF POINTS
XC                      TO BE CONSIDERED AT EACH ITERATION)
XC     OUTPUT
XC        SSS           IF THE SEARCH IS TO BE CONDUCTED IN PARALLEL ON
XC                      AN INTEL DISTRIBUTED MEMORY MACHINE, THIS NOW
XC                      CONTAINS THE NUMBER OF POINTS "MY" NODE IS TO
XC                      COMPUTE BEFORE ENGAGING IN THE GLOBAL
XC                      COMMUNICATION/SYNCHRONIZATION CONDUCTED AT EACH
XC                      ITERATION
XC        SCHEME        THE INTEGER TUPLES USED TO DEFINE EACH POINT IN
XC                      THE SEARCH SCHEME
XC        FACTOR        THE SCALING FACTOR USED TO GENERATE THE SEARCH
XC                      SCHEME; NOTE THAT THIS SCALING FACTOR IS
XC                      NECESSARY TO RECONSTRUCT THE REAL (OR DOUBLE
XC                      PRECISION) COUNTERPARTS TO THE INTEGER TUPLES
XC        RESIZE        THE SIZE OF THE SMALLEST (COMPLETE) SHRINK STEP
XC                      SEEN DURING A SINGLE ITERATION WHEN USING A
XC                      SEARCH SCHEME OF THIS SIZE (THIS FACTOR IS USED
XC                      TO ACCELERATE THE SHRINKING PROCESS IF NO
XC                      IMPROVEMENT IS SEEN DURING THE COURSE OF A SINGLE
XC                      ITERATION)
XC        ERROR         FLAG TO SIGNAL WHETHER OR NOT THE SCHEME FILE WAS
XC                      INCOMPATIBLE WITH THE PROBLEM SPECIFIED BY THE
XC                      USER.  RETURN CODES ARE:
XC                         0   NO INCOMPATIBILITY DETECTED
XC                         1   DIMENSION MISMATCH
XC                         2   THE NUMBER OF POINTS IN THE SCHEME FILE IS
XC                             LESS THAN THE NUMBER REQUESTED BY THE USER
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL CONSTANTS  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
X      LOGICAL          HASTEN
X      PARAMETER       (HASTEN = .TRUE.)
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          BASE, BETA, NUM, TEMP, TOTAL
X      INTEGER          I, J
XC
XC     MAKE SURE THE SEARCH SCHEME IS FOR A PROBLEM OF THE SAME DIMENSION
X      READ(IN) BASE
X      IF (BASE .EQ. N) THEN
XC        MAKE SURE THE SIZE OF THE SEARCH SCHEME REQUESTED DOES NOT
XC        EXCEED THE TOTAL NUMBER OF POINTS GENERATED.
X         READ(IN) TOTAL
X         IF (SSS .LE. TOTAL) THEN
XC           READ FACTOR USED TO CONSTRUCT THE SEARCH SCHEME IN INTEGER
XC           ARITHMETIC.  NOTE THAT THIS FACTOR IS STORED AS AN INTEGER
XC           BUT WILL BE USED AS A FLOATING POINT NUMBER, THUS `FACTOR'
XC           IS ASSIGNED AS SUCH.
X            READ(IN) TEMP
X            FACTOR = FLOAT(TEMP)
XC
XC           READ IN THE CONTRACTION FACTOR USED TO CONSTRUCT THE SEARCH
XC           SCHEME.
X            READ(IN) BETA
XC
XC           READ IN SEARCH SCHEME.
X            DO 2000 J = 1, SSS
X               DO 1000 I = -1, N
X                  READ(IN) SCHEME(I,J)
X 1000          CONTINUE
X 2000       CONTINUE
XC
XC           DETERMINE THE SHRINK FACTOR.
X            IF (HASTEN) THEN
XC              FIND THE SMALLEST CONTRACTION FACTOR AND MAKE SURE IT IS
XC              COMPLETED.
X               CALL SHRINK(N,SSS,SCHEME,RESIZE,NUM)
XC              IF THE SMALLEST CONTRACTION IS NOT COMPLETE, I.E., NUM IS
XC              NOT EQUAL TO N, THEN TAKE THE NEXT SMALLEST CONTRACTION.
X               IF (NUM .LT. N) RESIZE = RESIZE * BETA
X            ELSE
X               RESIZE = BETA
X            ENDIF
X         ELSE
X            ERROR = 2
X         ENDIF
X      ELSE
X         ERROR = 1
X      ENDIF
X      RETURN
X      END
END_OF_FILE
if test 7869 -ne `wc -c <'getss.f'`; then
    echo shar: \"'getss.f'\" unpacked with wrong size!
fi
# end of 'getss.f'
fi
if test -f 'getss.intel.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'getss.intel.f'\"
else
echo shar: Extracting \"'getss.intel.f'\" \(8666 characters\)
sed "s/^X//" >'getss.intel.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)getss.intel.F 1.1 3/16/92
XC
X      SUBROUTINE GETSS(N,IN,SSS,SCHEME,FACTOR,RESIZE,ERROR)
XC
XC     INTEL VERSION
XC
XC     THIS IS THE SUBROUTINE THAT IS USED TO READ IN THE SEARCH SCHEME
XC     FOR THE PARALLEL DIRECT SEARCH METHODS.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N, IN, SSS, SCHEME(-1:N,SSS), RESIZE, ERROR
X      DOUBLE PRECISION FACTOR
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        IN            UNIT NUMBER FROM WHICH THE SCHEME IS TO BE READ
XC        SSS           SIZE OF THE SEARCH SCHEME (THE NUMBER OF POINTS
XC                      TO BE CONSIDERED AT EACH ITERATION)
XC     OUTPUT
XC        SSS           IF THE SEARCH IS TO BE CONDUCTED IN PARALLEL ON
XC                      AN INTEL DISTRIBUTED MEMORY MACHINE, THIS NOW
XC                      CONTAINS THE NUMBER OF POINTS "MY" NODE IS TO
XC                      COMPUTE BEFORE ENGAGING IN THE GLOBAL
XC                      COMMUNICATION/SYNCHRONIZATION CONDUCTED AT EACH
XC                      ITERATION
XC        SCHEME        THE INTEGER TUPLES USED TO DEFINE EACH POINT IN
XC                      THE SEARCH SCHEME
XC        FACTOR        THE SCALING FACTOR USED TO GENERATE THE SEARCH
XC                      SCHEME; NOTE THAT THIS SCALING FACTOR IS
XC                      NECESSARY TO RECONSTRUCT THE REAL (OR DOUBLE
XC                      PRECISION) COUNTERPARTS TO THE INTEGER TUPLES
XC        RESIZE        THE SIZE OF THE SMALLEST (COMPLETE) SHRINK STEP
XC                      SEEN DURING A SINGLE ITERATION WHEN USING A
XC                      SEARCH SCHEME OF THIS SIZE (THIS FACTOR IS USED
XC                      TO ACCELERATE THE SHRINKING PROCESS IF NO
XC                      IMPROVEMENT IS SEEN DURING THE COURSE OF A SINGLE
XC                      ITERATION)
XC        ERROR         FLAG TO SIGNAL WHETHER OR NOT THE SCHEME FILE WAS
XC                      INCOMPATIBLE WITH THE PROBLEM SPECIFIED BY THE
XC                      USER.  RETURN CODES ARE:
XC                         0   NO INCOMPATIBILITY DETECTED
XC                         1   DIMENSION MISMATCH
XC                         2   THE NUMBER OF POINTS IN THE SCHEME FILE IS
XC                             LESS THAN THE NUMBER REQUESTED BY THE USER
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL CONSTANTS  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
X      INTEGER          INT, MODE
X      PARAMETER       (INT = 4, MODE = 0)
X      LOGICAL          HASTEN
X      PARAMETER       (HASTEN = .TRUE.)
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          BASE, BETA, NUM, TEMP, TOTAL
X      INTEGER          MINE, NID, P, REST, SIZE
XC
XC     FUNCTIONS        FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
XC     INTRINSIC        MOD
X      INTEGER          MYNODE, NUMNODES
XC
XC     MAKE SURE THE SEARCH SCHEME IS FOR A PROBLEM OF THE SAME DIMENSION
X      CALL CREAD(IN,BASE,INT)
X      IF (BASE .EQ. N) THEN
XC        MAKE SURE THE SIZE OF THE SEARCH SCHEME REQUESTED DOES NOT
XC        EXCEED THE TOTAL NUMBER OF POINTS GENERATED.
X         CALL CREAD(IN,TOTAL,INT)
X         IF (SSS .LE. TOTAL) THEN
XC           READ FACTOR USED TO CONSTRUCT THE SEARCH SCHEME IN INTEGER
XC           ARITHMETIC.  NOTE THAT THIS FACTOR IS STORED AS AN INTEGER
XC           BUT WILL BE USED AS A FLOATING POINT NUMBER, THUS `FACTOR'
XC           IS ASSIGNED AS SUCH.
X            CALL CREAD(IN,TEMP,INT)
X            FACTOR = FLOAT(TEMP)
XC
XC           READ IN THE CONTRACTION FACTOR USED TO CONSTRUCT THE SEARCH
XC           SCHEME.
X            CALL CREAD(IN,BETA,INT)
XC
XC           READ IN SEARCH SCHEME---OR AT LEAST THE PIECE MY NODE NEEDS.
XC
X            P = NUMNODES()
X            TEMP = SSS/P
X            REST = MOD(SSS,P)
X            NID = MYNODE()
X            IF (NID .LT. REST) TEMP = TEMP + 1
X            SSS = TEMP
X            CALL SETIOMODE(IN,MODE)
X            SIZE = (N+2)*SSS*INT
X            CALL LSEEK(IN,(NID*SIZE)+(4*INT),0)
X            CALL CREAD(IN,SCHEME,SIZE)
XC
XC           DETERMINE THE SHRINK FACTOR.
X            IF (HASTEN) THEN
XC              FIND THE SMALLEST CONTRACTION FACTOR ON MY NODE.
X               CALL SHRINK(N,SSS,SCHEME,RESIZE,NUM)
X               MINE = RESIZE
XC              FIND THE SMALLEST CONTRACTION FACTOR ACROSS ALL NODES.
X               CALL GILOW(RESIZE,1,TEMP)
XC              FIGURE OUT IF THE SMALLEST CONTRACTION IS COMPLETED.
X               IF (MINE .NE. RESIZE) NUM = 0
X               CALL GISUM(NUM,1,TEMP)
XC              IF THE SMALLEST CONTRACTION IS NOT COMPLETE, I.E., NUM IS
XC              NOT EQUAL TO N, THEN TAKE THE NEXT SMALLEST CONTRACTION.
X               IF (NUM .LT. N) RESIZE = RESIZE * BETA
X            ELSE
X               RESIZE = BETA
X            ENDIF
X         ELSE
X            ERROR = 2
X         ENDIF
X      ELSE
X         ERROR = 1
X      ENDIF
X      RETURN
X      END
END_OF_FILE
if test 8666 -ne `wc -c <'getss.intel.f'`; then
    echo shar: \"'getss.intel.f'\" unpacked with wrong size!
fi
# end of 'getss.intel.f'
fi
if test -f 'global.intel.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'global.intel.f'\"
else
echo shar: Extracting \"'global.intel.f'\" \(7395 characters\)
sed "s/^X//" >'global.intel.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)global.intel.F 1.1 3/16/92
XC
X      SUBROUTINE GLOBAL(N,MYBEST,YOURBEST,DEBUG,LPR)
XC
XC     UNIQUE TO INTEL DISTRIBUTED MEMORY MACHINES
XC
XC     THIS IS A (THE!) ROUTINE USED TO EFFECT THE GLOBAL COMMUNICATION
XC     NEEDED TO RUN THE PARALLEL DIRECT SEARCH SCHEMES ON AN INTEL
XC     DISTRIBUTED MEMORY MACHINE.  NOTE THAT THIS ROUTINE IGNORES THE
XC     STRUCTURE OF THE INTERCONNECT AND THUS RUNS ON EITHER A HYPERCUBE
XC     OR A MESH.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N, DEBUG, LPR
X      DOUBLE PRECISION MYBEST(-3:N+1), YOURBEST(-3:N+1)
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        MYBEST        VECTOR CONTAINING THE VERTEX COMPUTED BY MY NODE
XC                      DURING THIS ITERATION WITH THE LOWEST FUNCTION
XC                      VALUE.  NOTE THAT THE VERTEX IS CONTAINED IN
XC                      POSITIONS 1 THROUGH N; IT'S FUNCTION VALUE IS
XC                      CONTAINED IN POSITION N+1; POSITIONS -3 THROUGH
XC                      0 ARE USED TO PASS ADDITIONAL INFORMATION.
XC        YOURBEST      A WORK VECTOR, WHICH MUST BE OF THE SAME LENGTH
XC                      AS `MYBEST', THAT IS USED TO RECEIVE THE
XC                      CONTRIBUTIONS FROM OTHER NODES.
XC        DEBUG         FLAG TO SIGNAL DEBUGGING OUTPUT
XC        LPR           UNIT NUMBER FOR DEBUGGING OUTPUT
XC
XC     OUTPUT
XC        MYBEST        VECTOR CONTAINING THE VERTEX WITH THE LEAST
XC                      FUNCTION VALUE TO BE FOUND ACROSS ALL PROCESSORS.
XC                      NOTE THAT IT ALSO CONTAINS THE SCALAR `ALPHA' AND
XC                      THE POINTER `BEST' NEEDED TO RECONSTRUCT THE 
XC                      ASSOCIATED SIMPLEX, AS WELL AS THE ACTUAL
XC                      FUNCTION VALUE.
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL CONSTANTS  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
X      INTEGER          PRECISION
X      PARAMETER       (PRECISION = 8)
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          J, SIZEE
XC
XC     LOCAL FUNCTIONS  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
X      EXTERNAL         SWAP
X      INTEGER          MYNODE
XC
XC     INITIALIZE THE MESSAGE BUFFER WITH THE DIMENSION OF THE PROBLEM
XC     AND THE NUMBER OF "MY" NODE---INFORMATION NEEDED DURING THE GLOBAL
XC     EXCHANGE.
X      MYBEST(-3) = N
X      MYBEST(-2) = MYNODE()
XC
X      IF (DEBUG .GT. 1) THEN
X         WRITE(LPR, '('' GLOBAL '')')
X         WRITE(LPR,100)
X 100     FORMAT(' GLOBAL   START THE GLOBAL EXCHANGE WITH:')
X         DO 120 J = -1, N+1
X            WRITE(LPR,110) J, MYBEST(J)
X 110        FORMAT(' GLOBAL   ', I2, F30.16)
X 120     CONTINUE
X      ENDIF
XC
XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
XC     EXECUTE THE GLOBAL EXCHANGE OF INFORMATION BY USING THE INTEL
XC     GLOBAL COMMUNICATION FUNCTION `GOPF' TO HANDLE THE MESSAGE PASSING
XC     AND THE FUNCTION `SWAP' WHICH ALLOWS FOR COMPARISON ON THE
XC     FUNCTION VALUE ONLY, BUT SWAPS THE VERTEX, THE FUNCTION VALUE AND
XC     THE SCALAR AND POINTER NECESSARY TO UPDATE THE SIMPLEX.
X      SIZEE = (N + 5) * PRECISION
X      CALL GOPF(MYBEST,SIZEE,YOURBEST,SWAP)
XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
XC
X      IF (DEBUG .GT. 1) THEN
X         WRITE(LPR, '('' GLOBAL '')')
X         WRITE(LPR,200)
X 200     FORMAT(' GLOBAL   FINISH THE GLOBAL EXCHANGE WITH:')
X         DO 220 J = -1, N+1
X            WRITE(LPR,210) J, MYBEST(J)
X 210        FORMAT(' GLOBAL   ', I2, F30.16)
X 220     CONTINUE
X      ENDIF
XC
X      RETURN
X      END
END_OF_FILE
if test 7395 -ne `wc -c <'global.intel.f'`; then
    echo shar: \"'global.intel.f'\" unpacked with wrong size!
fi
# end of 'global.intel.f'
fi
if test -f 'init.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'init.f'\"
else
echo shar: Extracting \"'init.f'\" \(7085 characters\)
sed "s/^X//" >'init.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)init.F 1.1 3/16/92
XC
X      SUBROUTINE INIT(N,TYPE,FCN,SCALE,EDGE,S,LENGTH,INDEX,FBEST)
XC
XC     THIS IS A SERVICE SUBROUTINE USED TO FINISH CONSTRUCTING THE
XC     INITIAL SIMPLEX (IF ONE HAS NOT BEEN ENTERED BY THE USER), TO
XC     DETERMINE THE LENGTH OF THE LONGEST EDGE IN THE INITIAL SIMPLEX
XC     (A VALUE MAINTAINED THROUGHOUT THE SEARCH AND USED TO TEST FOR
XC     CONVERGENCE), TO COMPUTE THE FUNCTION VALUE AT THE N+1 VERTICES
XC     IN THE INITIAL SIMPLEX, AND TO DETERMINE A "BEST" VERTEX (I.E.,
XC     ONE WITH THE LEAST FUNCTION VALUE).
XC
XC     WRITTEN BY VIRGINIA TORCZON
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N, TYPE, INDEX(N+1)
X      DOUBLE PRECISION SCALE, EDGE(N), S(N,N+1), LENGTH, FBEST
X      EXTERNAL         FCN
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        TYPE          TYPE OF SIMPLEX CHOSEN BY THE USER:
XC                         0      USER-DEFINED (ENTERED DIRECTLY BY USER)
XC                         1      RIGHT-ANGLED
XC                         2      REGULAR (EDGES OF EQUAL LENGTH)
XC                         3      SCALED RIGHT-ANGLED
XC        FCN           NAME OF SUBROUTINE TO EVALUATE THE FUNCTION
XC        SCALE         SCALE FACTOR USED IF THE SIMPLEX IS TO BE
XC                      CONSTRUCTED (AS SPECIFIED DURING INITIALIZATION)
XC        EDGE          ONE-DIMENSIONAL WORKSPACE VECTOR OF LENGTH N
XC        S             TWO-DIMENSIONAL ARRAY CONTAINING THE VERTEX
XC                      SPECIFIED BY THE USER TO BEGIN THE SEARCH (AS
XC                      WELL AS THE REMAINING N VERTICES OF THE INITIAL
XC                      SIMPLEX IF THEY HAVE ALREADY BEEN ENTERED BY THE
XC                      USER)
XC     OUTPUT
XC        S             TWO-DIMENSIONAL ARRAY CONTAINING THE N+1 VERTICES
XC                      OF THE SIMPLEX TO BE USED TO START THE SEARCH
XC        LENGTH        LENGTH OF THE LONGEST EDGE IN THE INITIAL SIMPLEX
XC        INDEX         PERMUTATION ARRAY USED TO KEEP TRACK OF THE 
XC                      CURRENT BEST VERTEX IN THE SIMPLEX
XC        FBEST         THE FUNCTION VALUE AT THE BEST VERTEX
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          J, V0
X      DOUBLE PRECISION TEMP
XC
XC     LOCAL FUNCTIONS  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
X      DOUBLE PRECISION MAXLEN
XC
XC     CONSTRUCT THE SIMPLEX, IF NECESSARY.
X      IF (TYPE .EQ. 1) THEN
X         CALL RIGHT(N,SCALE,S)
X      ELSE IF (TYPE .EQ. 2) THEN
X         CALL EQUAL(N,SCALE,S)
X      ELSE IF (TYPE .EQ. 3) THEN
X         CALL SCALED(N,SCALE,S)
X      ENDIF
XC
XC     DETERMINE THE LENGTH OF THE LONGEST EDGE IN THE SIMPLEX.
X      LENGTH = MAXLEN(N,TYPE,S,SCALE,EDGE)
XC
XC     COMPUTE THE FUNCTION VALUES AT ALL THE VERTICES OF THE SIMPLEX,
XC     INITIALIZE THE INDEX ARRAY, AND DETERMINE THE "BEST" VERTEX---ONE
XC     WITH THE LEAST FUNCTION VALUE.
X      V0 = 1
X      CALL FCN(N,S(1,V0),FBEST)
X      INDEX(1) = V0
X      DO 1000 J = 2, N+1
X         CALL FCN(N,S(1,J),TEMP)
X         INDEX(J) = J
X         IF (TEMP .LT. FBEST) THEN
X            V0 = J
X            FBEST = TEMP
X         ENDIF
X 1000 CONTINUE
XC
XC     UPDATE `INDEX' TO INDICATE THE NEW "BEST" VERTEX.
X      INDEX(1) = V0
X      INDEX(V0) = 1
XC
X      RETURN
X      END
END_OF_FILE
if test 7085 -ne `wc -c <'init.f'`; then
    echo shar: \"'init.f'\" unpacked with wrong size!
fi
# end of 'init.f'
fi
if test -f 'maxlen.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'maxlen.f'\"
else
echo shar: Extracting \"'maxlen.f'\" \(6014 characters\)
sed "s/^X//" >'maxlen.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)maxlen.F 1.3 5/18/92
XC
X      DOUBLE PRECISION FUNCTION MAXLEN(N,TYPE,S,SCALE,WORK)
XC
XC     THIS IS A SERVICE FUNCTION USED TO DETERMINE THE LENGTH OF THE
XC     LONGEST EDGE IN THE INITIAL SIMPLEX.  NOTE THAT THE JOB IS MADE
XC     CONSIDERABLY EASIER IF THE USER SPECIFIED EITHER A RIGHT-ANGLED OR
XC     REGULAR SIMPLEX.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MAY 18, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N, TYPE
X      DOUBLE PRECISION S(N,N+1), SCALE, WORK(N)
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        TYPE          TYPE OF SIMPLEX SPECIFIED BY THE USER
XC        S             CONTAINS THE N+1 VERTICES IN THE INITIAL SIMPLEX
XC                      (STORED BY COLUMN)
XC        SCALE         (RELATIVE) LENGTH OF EDGES IN THE INITIAL SIMPLEX
XC                      IF THE USER REQUESTED THAT THE SIMPLEX BE 
XC                      CONSTRUCTED (RATHER THAN ENTERED DIRECTLY)
XC        WORK          ONE-DIMENSIONAL WORK ARRAY OF LENGTH N USED TO
XC                      COMPUTE THE DIFFERENCE BETWEEN VERTICES
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          I, J, K
X      DOUBLE PRECISION TEMP
XC
XC     LOCAL FUNCTIONS  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
XC     INTRINSIC        ABS, SQRT
X      DOUBLE PRECISION DNRM2
XC
X      IF (TYPE .EQ. 1) THEN
XC        THE USER CHOSE A SIMPLE RIGHT-ANGLED SIMPLEX SO THE MAXIMUM
XC        LENGTH IS EASY TO COMPUTE.
X         MAXLEN = ABS(SCALE)*SQRT(2.D0)
X      ELSE IF (TYPE .EQ. 2) THEN
XC        THE USER CHOSE A REGULAR SIMPLEX; I.E., THE LENGTH OF EVERY
XC        EDGE IN THE SIMPLEX IS SPECIFIED BY THE CHOICE OF SCALE.
X         MAXLEN = ABS(SCALE)
X      ELSE
XC        THE USER EITHER ENTERED THE SIMPLEX OR CHOSE A SCALED RIGHT-
XC        ANGLED SIMPLEX.  COMPUTE THE LENGTHS OF ALL THE EDGES.
X         MAXLEN = 0.D0
X         DO 3000 I = 1, N
X            DO 2000 J = I+1, N+1
X               DO 1000 K = 1, N
X                  WORK(K) = S(K,J) - S(K,I)
X 1000          CONTINUE
X               TEMP = DNRM2(N,WORK,1)
X               IF (TEMP .GT. MAXLEN) MAXLEN = TEMP
X 2000       CONTINUE
X 3000    CONTINUE
X      ENDIF
XC
X      RETURN
X      END
END_OF_FILE
if test 6014 -ne `wc -c <'maxlen.f'`; then
    echo shar: \"'maxlen.f'\" unpacked with wrong size!
fi
# end of 'maxlen.f'
fi
if test -f 'optim.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'optim.f'\"
else
echo shar: Extracting \"'optim.f'\" \(9352 characters\)
sed "s/^X//" >'optim.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)optim.F 1.1 3/16/92
XC
X      PROGRAM OPTIM
XC
XC     SAMPLE PROGRAM TO SOLVE AN UNCONSTRAINED OPTIMIZATION PROBLEM
XC     USING THE PARALLEL DIRECT SEARCH METHODS.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     CONSTANTS        CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
X      INTEGER          DIM, MAX, LIMIT, IN, LPR
X      PARAMETER       (DIM = 10, MAX = 2000, LIMIT=(DIM+2)*MAX)
X      PARAMETER       (IN = 4, LPR = 1)
XC
XC     VARIABLES        VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          COUNT, DEBUG, ERROR, INDEX(DIM+1), MAXITR, N,
X     >                 RESIZE, SSS, SCHEME(LIMIT), TYPE
X      DOUBLE PRECISION FACTOR, FBEST, LENGTH, S(DIM*(DIM+1)), SCALE,
X     >                 TOL, WORK(DIM), WORK1(-3:DIM+1), WORK2(-3:DIM+1)
X      EXTERNAL         FCN
XC
XC     WE INCLUDE HERE A DESCRIPTION OF THE WORKSPACE ALLOCATED IN THE
XC     DRIVER SO THAT IT WILL BE CLEAR HOW TO INCREASE OR DECREASE THIS
XC     WORKSPACE AS REQUIRED BY THE APPLICATION.
XC
XC     THE VECTOR `SCHEME' IS ACTUALLY REPARTITIONED INTO A MATRIX OF THE
XC     FOLLOWING FORM UPON ENTRY INTO ANY OF THE SUBROUTINES BELOW
XC                INTEGER          SCHEME(-1:N,SSS)
XC     SINCE IT IS ONLY NECESSARY TO HOLD THE `SSS' POINTS SPECIFIED BY
XC     THE USER, EACH POINT CONSISTING OF A COLUMN WITH N+2 ENTRIES. 
XC     THUS ONE WORD OF WARNING TO ANYONE MODIFYING THE PROGRAM FOR THEIR
XC     APPLICATION:  BE SURE TO ALLOCATE ENOUGH SPACE TO HOLD THE NUMBER
XC     OF POINTS IN THE SEARCH SCHEME(S) THAT WILL BE SPECIFIED OR YOU
XC     WILL GET A SEGMENTATION VIOLATION.  
XC
XC     FOR THE MOST EFFICIENT USE OF SPACE---WHICH MAY BECOME AN ISSUE
XC     WHEN USING VERY LARGE SEARCH SCHEMES ON A PROCESS OR WITH A
XC     LIMITED AMOUNT OF MEMORY, THE CONSTANT `DIM' CAN BE SET EQUAL TO
XC     THE  DIMENSION OF THE PROBLEM(S) TO BE SOLVED AND THE CONSTANT
XC     `MAX' CAN BE SET EQUAL TO THE MAXIMUM SIZE OF THE SEARCH SCHEME TO
XC     BE USED SO THAT THE ACTUAL AMOUNT OF SPACE FOR `SCHEME' BECOMES
XC                INTEGER         SCHEMES(-1:DIM,MAX)
XC     NOTE THAT THE CONSTANT `LIMIT' AUTOMATICALLY TAKES CARE OF THIS IN
XC     THE DRIVER.
XC
XC     SIMILARLY, THE WORKSPACE TO HOLD THE N+1 VERTICES OF THE INITIAL 
XC     SIMPLEX IS THE VARIABLE `S' WHICH IS DECLARED IN THE MAIN PROGRAM
XC     AS A VECTOR BUT WHICH IS PARTITIONED IN THE SUBROUTINES CALLED
XC     BELOW INTO A MATRIX OF THE FOLLOWING FORM
XC                DOUBLE PRECISION S(N,N+1)
XC     (THE VERTICES OF THE SIMPLEX ARE STORED BY COLUMN.)
XC
XC     AGAIN, SETTING `DIM' EQUAL TO THE DIMENSION OF THE PROBLEM(S) TO BE
XC     SOLVED WILL MAKE THE MOST EFFICIENT USE OF THE SPACE ALLOCATED.
XC
XC     FINALLY, THERE ARE THREE WORK ARRAYS USED PRIMARILY AS AUXILIARY
XC     WORKSPACE VECTORS OF O(N).  NOTE HOWEVER, THAT TWO OF THESE
XC     ARRAYS HAVE "HIDDEN" SPACE IN THE -3 THROUGH 0 POSITIONS.  THIS IS
XC     BECAUSE THESE TWO VECTORS ARE USED DURING THE GLOBAL EXCHANGE
XC     REQUIRED FOR EXECUTION ON THE INTEL DISTRIBUTED MEMORY MACHINES.
XC     THE "EXTRA" SPACE IS USED TO HOLD ADDITIONAL INFORMATION NECESSARY
XC     FOR THE SWAP TO COMPLETE SUCCESSFULLY.  FURTHERMORE, BOTH HAVE AN
XC     EXTRA SPACE IN THE N+1 POSITION TO HOLD THE FUNCTION VALUE OF THE
XC     INTERMEDIATE VERTICES BEGIN COMPUTED AND STORED IN THESE ARRAYS.
XC
XC     AGAIN, SETTING `DIM' EQUAL TO THE DIMENSION OF THE PROBLEM(S) TO BE
XC     SOLVED WILL MAKE THE MOST EFFICIENT USE OF THE SPACE ALLOCATED.
XC
XC
XC     READ IN THE INFORMATION NEEDED TO DEFINE THE PROBLEM TO BE SOLVED.
X      OPEN (UNIT = IN, FILE = 'INPUT', STATUS = 'UNKNOWN',
X     >                                               FORM = 'FORMATTED')
X      CALL DEFINE(N,TOL,MAXITR,S,TYPE,SCALE,DEBUG,SSS,IN)
X      CLOSE(IN)
XC
XC     OPEN A FILE FOR THE SEARCH SCHEME.
X      OPEN (UNIT = IN, FILE = 'SCHEME', STATUS = 'UNKNOWN',
X     >                                             FORM = 'UNFORMATTED')
XC
XC     READ IN THE SEARCH SCHEME AND DETERMINE THE "SHRINK" FACTOR (WHICH
XC     DEPENDS ON THE SIZE OF THE SEARCH SCHEME THAT HAS BEEN SPECIFIED).
X      CALL GETSS(N,IN,SSS,SCHEME,FACTOR,RESIZE,ERROR)
XC
XC     CLOSE THE FILE FOR THE SEARCH SCHEME.
X      CLOSE(IN)
XC
X      OPEN(UNIT = IN, FILE = 'RESULT', STATUS = 'UNKNOWN',
X     >                                               FORM = 'FORMATTED')
X      IF (ERROR .EQ. 0) THEN
XC
XC        IF SO DESIRED, OPEN A FILE FOR DEBUGGING INFORMATION.
X         IF (DEBUG .GT. 0) OPEN(UNIT = LPR, FILE = 'DEBUG###',
X     >                           STATUS = 'UNKNOWN', FORM = 'FORMATTED')
XC
XC        OPTIMIZE.
X         CALL PDS(N,LPR,TYPE,SCALE,DEBUG,TOL,MAXITR,SSS,FCN,FACTOR,
X     >        SCHEME,RESIZE,S,INDEX,FBEST,LENGTH,COUNT,WORK,WORK1,WORK2)
XC
XC        CLOSE THE FILE THE DEBUGGING.
X         IF (DEBUG .GT. 0) CLOSE(LPR)
XC
XC        WRITE FINAL RESULT TO A FILE.
X         CALL RESULT(N,COUNT,S,FBEST,INDEX,IN)
X      ELSE IF (ERROR .EQ. 1) THEN
X         WRITE(IN,'(''                                             '')')
X         WRITE(IN,'(''                                             '')')
X         WRITE(IN,'('' SEARCH SCHEME WAS OF THE WRONG DIMENSION.'')')
X         WRITE(IN,'('' EXITED WITHOUT CALLING PDS.'')')
X         WRITE(IN,'(''                                             '')')
X         WRITE(IN,'(''         '')')
X      ELSE IF (ERROR .EQ. 2) THEN
X         WRITE(IN,'(''                                             '')')
X         WRITE(IN,'(''                                             '')')
X         WRITE(IN,'('' INSUFFICIENT NUMBER OF POINTS IN SCHEME.'')')
X         WRITE(IN,'('' EXITED WITHOUT CALLING PDS.'')')
X         WRITE(IN,'(''                                             '')')
X         WRITE(IN,'(''         '')')
X      ENDIF
X      CLOSE(IN)
XC
X      END
END_OF_FILE
if test 9352 -ne `wc -c <'optim.f'`; then
    echo shar: \"'optim.f'\" unpacked with wrong size!
fi
# end of 'optim.f'
fi
if test -f 'pds.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'pds.f'\"
else
echo shar: Extracting \"'pds.f'\" \(15301 characters\)
sed "s/^X//" >'pds.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)pds.F 1.3 5/18/92
XC
X      SUBROUTINE PDS(N,LPR,TYPE,SCALE,DEBUG,TOL,MAXITR,SSS,FCN,FACTOR,
X     >             SCHEME,RESIZE,S,INDEX,FBEST,LENGTH,COUNT,EDGE,C,PLUS)
XC
XC     THIS IS THE CONTROLLING ROUTINE FOR THE ACTUAL OPTIMIZATION.
XC     FOR A FURTHER DESCRIPTION OF THE PARALLEL DIRECT SEARCH METHODS
XC     SEE J. E. DENNIS, JR. AND VIRGINIA TORCZON, "DIRECT SEARCH METHODS
XC     ON PARALLEL MACHINES," SIAM J. OPTIMIZATION, VOL. 1, NO. 4,
XC     PP. 448--474, NOVEMBER 1991.
XC
XC     WRITTEN BY VIRGINIA TORCZON
XC
XC     LAST MODIFICATION:  MAY 4, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N, LPR, TYPE, DEBUG, MAXITR, SSS,
X     >                 SCHEME(-1:N,SSS), RESIZE, INDEX(N+1), COUNT
X      DOUBLE PRECISION SCALE, TOL, FACTOR, S(N,N+1), FBEST, LENGTH,
X     >                 EDGE(N), C(-3:N+1), PLUS(-3:N+1)
X      EXTERNAL         FCN
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        LPR           UNIT NUMBER FOR THE DEBUGGING FILE(S)
XC        TYPE          TYPE OF INITIAL SIMPLEX CHOSEN BY THE USER:
XC                         0   USER-DEFINED (ENTERED DIRECTLY BY THE USER)
XC                         1   RIGHT-ANGLED
XC                         2   REGULAR (EDGES OF EQUAL LENGTH)
XC                         3   SCALED RIGHT-ANGLED
XC        SCALE         SCALE FACTOR USED IF THE SIMPLEX IS TO BE
XC                      CONSTRUCTED (AS SPECIFIED DURING INITIALIZATION)
XC        DEBUG         FLAG TO SIGNAL WHETHER OR NOT TO DUMP DEBUGGING
XC                      INFORMATION TO A FILE
XC                         0   NO DEBUGGING OUTPUT
XC                         1   LOG STARTING SIMPLEX AND EACH ITERATE (V0)
XC                         2   INCLUDE SOME INTERMEDIATE DEBUGGING
XC                         3   INCLUDE ALMOST ALL INTERMEDIATE DEBUGGING
XC                         4   INCLUDE ALL DEBUGGING (INCLUDING SCHEME)
XC        TOL           TOLERANCE USED TO CHECK FOR CONVERGENCE (THIS IS
XC                      ESSENTIALLY A STEP TOLERANCE TEST)
XC        MAXITR        MAXIMUM NUMBER OF ITERATIONS ALLOWED
XC        SSS           SIZE OF THE SEARCH STRATEGY (THE NUMBER OF POINTS
XC                      TO BE CONSIDERED AT EACH ITERATION)
XC        FCN           EXTERNAL SUBROUTINE TO EVALUATE THE FUNCTION
XC        FACTOR        THE SCALING FACTOR USED TO RECONSTRUCT THE REAL
XC                      (OR DOUBLE PRECISION) COUNTERPARTS TO THE INTEGER
XC                      TUPLES
XC        SCHEME        THE INTEGER TUPLES USED TO DEFINE EACH POINT IN
XC                      THE SEARCH STRATEGY
XC        RESIZE        THE SIZE OF THE SMALLEST (COMPLETE) SHRINK STEP
XC                      SEEN DURING A SINGLE ITERATION WHEN USING A
XC                      SEARCH STRATEGY OF THIS SIZE (THIS FACTOR IS USED
XC                      TO ACCELERATE THE SHRINKING PROCESS IF NO
XC                      IMPROVEMENT IS SEEN DURING THE COURSE OF A SINGLE
XC                      ITERATION)
XC        S             AN N BY N+1 MATRIX CONTAINING THE N+1 VERTICES
XC                      THAT DEFINE THE SIMPLEX TO BE USED TO START THE
XC                      SEARCH
XC        INDEX         A PERMUTATION ARRAY USED TO TRACK THE BEST VERTEX
XC                      IN THE SIMPLEX (I.E., V0 = S(*,INDEX(1)))
XC        FBEST         THE FUNCTION VALUE AT THE BEST VERTEX IN THE
XC                      INITIAL SIMPLEX
XC        LENGTH        LENGTH OF THE LONGEST EDGE IN THE INITIAL SIMPLEX
XC
XC     WORKSPACE
XC        EDGE          WORKSPACE USED TO COMPUTE THE LENGTH OF ANY EDGE
XC                      IN THE SIMPLEX
XC        C             WORKSPACE USED BOTH TO COMPUTE THE CURRENT POINT
XC                      IN THE LIST ON EACH PROCESSOR AND, ON THE INTEL
XC                      MACHINES, TO PROVIDE WORKSPACE FOR THE GLOBAL
XC                      COMMUNICATION CALL
XC        PLUS          WORKSPACE USED TO CONTAIN THE BEST POINT SEEN
XC                      DURING THE CURRENT ITERATION AND, ON THE INTEL
XC                      MACHINES, USED AS THE MESSAGE BUFFER FOR THE
XC                      GLOBAL COMMUNICATION CALL
XC     OUTPUT
XC        S             THE BEST VERTEX IS CONTAINED IN S(*,INDEX(1))
XC        INDEX         PERMUTATION ARRAY POINTING TO THE CURRENT BEST
XC                      VERTEX
XC        FBEST         THE FUNCTION VALUE AT THE BEST VERTEX
XC        LENGTH        LENGTH OF THE LONGEST EDGE IN THE FINAL SIMPLEX
XC        COUNT         NUMBER OF ITERATIONS COMPLETED
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          BEST, I, J, K, TEMP, V0, VJ
X      DOUBLE PRECISION ALPHA
XC
XC     LOCAL FUNCTIONS  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
XC     INTRINSIC        ABS, FLOAT, NINT
X      LOGICAL          DONE
XC
X      IF (DEBUG .GT. 3) THEN
X         WRITE(LPR, '('' PDS '')')
X         DO 130 K = 1, SSS
X            WRITE(LPR,100) K
X 100        FORMAT(' PDS      THE SEARCH SCHEME FOR POINT ', I3, ' IS:')
X            DO 120 I = -1, N
X               WRITE(LPR,110) I, SCHEME(I,K)
X 110           FORMAT(' PDS      ', I2, I16)
X 120        CONTINUE
X 130     CONTINUE
X      ENDIF
XC
XC     FINISH INITIALIZING SIMPLEX (IF NECESSARY), FIND THE LENGTH OF THE
XC     LONGEST EDGE IN THE SIMPLEX, AND DETERMINE THE BEST VERTEX AND ITS
XC     FUNCTION VALUE.
X      CALL INIT(N,TYPE,FCN,SCALE,EDGE,S,LENGTH,INDEX,FBEST)
XC
X      IF (DEBUG .EQ. 1) THEN
X         WRITE(LPR,'('' PDS '')')
X         WRITE(LPR,'('' PDS      COUNT =       0'')')
X         WRITE(LPR,200)
X 200     FORMAT(' PDS      THE BEST VERTEX IS:')
X         DO 220 I = 1, N
X            WRITE(LPR,210) S(I,INDEX(1))
X 210        FORMAT(' PDS     ', F30.14)
X 220     CONTINUE
X         WRITE(LPR,230) FBEST
X 230     FORMAT(' PDS      WITH FUNCTION VALUE:', F30.14)
X      ELSE IF (DEBUG .GT. 1) THEN
X         WRITE(LPR,'('' PDS '')')
X         WRITE(LPR,'('' PDS      COUNT =       0'')')
X         WRITE(LPR,'('' PDS '')')
X         WRITE(LPR,300) FBEST
X 300     FORMAT(' PDS      THE FUNCTION VALUE AT V0 IS:', F30.14)
X         DO 340 J = 1, N+1
X            WRITE(LPR,310) J-1
X 310        FORMAT(' PDS      THE COORDINATES OF VERTEX ', I3, ' ARE:')
X            DO 330 I = 1, N
X               WRITE(LPR,320) S(I,INDEX(J))
X 320           FORMAT(' PDS      ', F30.14)
X 330        CONTINUE
X 340     CONTINUE
X      ENDIF
XC
XC     INITIALIZE THE ITERATION COUNTER.
X      COUNT = 0
XC
X 1000 IF (.NOT. DONE(MAXITR,COUNT,N,TOL,LENGTH,S(1,INDEX(1)))) THEN
XC
X         COUNT = COUNT + 1
XC
X         IF (DEBUG .GE. 1) THEN
X            WRITE(LPR,'('' PDS '')')
X            WRITE(LPR,400) COUNT
X 400        FORMAT(' PDS      COUNT =', I8)
X         ENDIF
XC
XC        CALCULATE "MY" VERTICES.
X         V0 = INDEX(1)
X         BEST = 1
X         PLUS(N+1) = FBEST
XC
XCSEQUENT C$DOACROSS SHARE (N, S, V0, INDEX, SCHEME, FACTOR),
XCSEQUENT C$&        LOCAL (I, J, C, EDGE, ALPHA)
XC
X         DO 7000 K = 1, SSS
XC
X            IF (DEBUG .GT. 2) THEN
X               WRITE(LPR,'('' PDS '')')
X               WRITE(LPR,500) K
X 500           FORMAT(' PDS      VERTEX ', I4, ':')
X            ENDIF
XC
X            DO 2000 I = 1, N
X               C(I) = S(I,V0)
X 2000       CONTINUE
XC
X            DO 5000 J = 1, N
X               DO 3000 I = 1, N
X                  EDGE(I) = S(I,INDEX(J+1)) - S(I,V0)
X 3000          CONTINUE
X               ALPHA = FLOAT(SCHEME(J,K))/FACTOR
X               DO 4000 I = 1, N
X                  C(I) = C(I) + ALPHA*EDGE(I)
X 4000          CONTINUE
X 5000       CONTINUE
XC
X            IF (DEBUG .GT. 2) THEN
X               DO 610 I = 1, N
X                  WRITE(LPR,600) C(I)
X 600              FORMAT(' PDS      ', F30.14)
X 610           CONTINUE
X            ENDIF
XC
XC           CALCULATE THE CURRENT VERTEX'S FUNCTION VALUE.
X            CALL FCN(N,C(1),C(N+1))
X            IF (DEBUG .GT. 2) THEN
X               WRITE(LPR,700) C(N+1)
X 700           FORMAT(' PDS      WITH FUNCTION VALUE:' F30.14)
X            ENDIF
XC
XC           DETERMINE WHO HAS THE NEW BEST VERTEX.
XCSEQUENT C$          CALL M_LOCK
X            IF (C(N+1) .LT. PLUS(N+1)) THEN
X               BEST = K
X               PLUS(-1) = SCHEME(-1,BEST)
X               PLUS(0) = SCHEME(0,BEST)
X               DO 6000 I = 1, N+1
X                  PLUS(I) = C(I)
X 6000          CONTINUE
X            ENDIF
XCSEQUENT C$          CALL M_UNLOCK
X 7000    CONTINUE
XC
XCINTEL         CALL GLOBAL(N,PLUS,C,DEBUG,LPR)
XC
XC        MAKE SURE THAT THE FUNCTION VALUE OF MY BEST (NEW) VERTEX IS
XC        BETTER THAN THE FUNCTION VALUE AT THE CURRENT BEST VERTEX.
X         IF (PLUS(N+1) .LT. FBEST) THEN
X            IF (DEBUG .GT. 1) THEN
X               WRITE(LPR,'('' PDS '')')
X               WRITE(LPR,'('' PDS      REPLACED THE BEST VERTEX.'')')
X               WRITE(LPR,'('' PDS '')')
X            ENDIF
XC
XC           REINITIALIZE FBEST, ALPHA, AND BEST.
X            FBEST = PLUS(N+1)
X            ALPHA = PLUS(-1)/FACTOR
X            BEST = NINT(PLUS(0))
XC
XC           UPDATE THE SIMPLEX.  NOTE THAT WE USE THE EDGES IN THE 
XC           ORIGINAL SIMPLEX TO PERFORM THE UPDATE FROM THE NEW BEST
XC           VERTEX.
X            DO 9000 J = 0, BEST - 1
X               VJ = INDEX(J+1)
X               DO 8000 I = 1, N
X                  S(I,VJ) = PLUS(I) + ALPHA *
X     >                                   (S(I,VJ) - S(I,INDEX(BEST+1)))
X 8000          CONTINUE
X 9000       CONTINUE
X            DO 11000 J = BEST + 1, N
X               VJ = INDEX(J+1)
X               DO 10000 I = 1, N
X                  S(I,VJ) = PLUS(I) + ALPHA *
X     >                                   (S(I,VJ) - S(I,INDEX(BEST+1)))
X10000          CONTINUE
X11000       CONTINUE
XC           NOW, COPY THE NEW BEST VERTEX INTO THE SIMPLEX.
X            DO 12000 I = 1, N
X               S(I,INDEX(BEST+1)) = PLUS(I)
X12000       CONTINUE
XC           SWAP POINTERS TO INDICATE THE NEW BEST VERTEX.
X            TEMP = INDEX(1)
X            INDEX(1) = INDEX(BEST+1)
X            INDEX(BEST+1) = TEMP
X         ELSE
XC           THE BEST VERTEX HAS NOT BEEN REPLACED.  SHRINK THE SIMPLEX.
XC           NOTE THAT THE SHRINK SIMPLEX IS CONSTRUCTED USING
XC           `RESIZE'.
X            IF (DEBUG .GT. 1) THEN
X               WRITE(LPR,'('' PDS '')')
X               WRITE(LPR,'('' PDS      DID NOT REPLACE V0.'')')
X               WRITE(LPR,'('' PDS '')')
X            ENDIF
X            ALPHA = FLOAT(RESIZE)/FACTOR
X            DO 14000 J = 2, N+1
X               DO 13000 I = 1, N
X                  S(I,INDEX(J)) = (1.D0 - ALPHA)*S(I,INDEX(1)) + 
X     >                                             (ALPHA)*S(I,INDEX(J))
X13000          CONTINUE
X14000       CONTINUE
X         ENDIF
XC
XC        UPDATE THE LENGTH OF THE LONGEST EDGE FOR THE CONVERGENCE TEST.
X         LENGTH = ABS(ALPHA)*LENGTH
XC
X         IF (DEBUG .EQ. 1) THEN
X            WRITE(LPR,800)
X 800        FORMAT(' PDS      THE BEST VERTEX IS:')
X            DO 820 I = 1, N
X               WRITE(LPR,810) S(I,INDEX(1))
X 810           FORMAT(' PDS     ', F30.14)
X 820        CONTINUE
X            WRITE(LPR,830) FBEST
X 830        FORMAT(' PDS      WITH FUNCTION VALUE:', F30.14)
X         ELSE IF (DEBUG .GT. 1) THEN
X            WRITE(LPR,900) FBEST
X 900        FORMAT(' PDS      THE FUNCTION VALUE AT V0 IS:', F30.14)
X            DO 940 J = 1, N+1
X               WRITE(LPR,910) J-1
X 910           FORMAT(' PDS      THE COORDINATES OF VERTEX ',I3,' ARE:')
X               DO 930 I = 1, N
X                  WRITE(LPR,920) S(I,INDEX(J))
X 920              FORMAT(' PDS      ', F30.14)
X 930           CONTINUE
X 940        CONTINUE
X         ENDIF
XC
XC        TEST FOR CONVERGENCE.
X         GOTO 1000
XC
X      ENDIF
XC
X      RETURN
X      END
END_OF_FILE
if test 15301 -ne `wc -c <'pds.f'`; then
    echo shar: \"'pds.f'\" unpacked with wrong size!
fi
# end of 'pds.f'
fi
if test -f 'reads.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'reads.f'\"
else
echo shar: Extracting \"'reads.f'\" \(5203 characters\)
sed "s/^X//" >'reads.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)reads.F 1.1 3/16/92
XC
X      SUBROUTINE READS(N,IN,S)
XC
XC     THIS IS A SERVICE SUBROUTINE USED TO READ IN THE REMAINING N
XC     VERTICES OF THE INITIAL SIMPLEX SHOULD THE USER DECIDE TO ENTER
XC     THEM DIRECTLY RATHER THAN TO ALLOW THE PROGRAM TO CONSTRUCT THEM.
XC
XC     WRITTEN BY VIRGINIA TORCZON
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N, IN
X      DOUBLE PRECISION S(N,N+1)
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        IN            UNIT NUMBER FOR INPUT
XC        S             TWO-DIMENSIONAL ARRAY CONTAINING THE VERTEX 
XC                      SPECIFIED BY THE USER TO BEGIN THE SEARCH
XC     OUTPUT
XC        S             TWO-DIMENSIONAL ARRAY CONTAINING THE N+1 VERTICES
XC                      OF THE SIMPLEX TO BE USED TO START THE SEARCH
XC     REMARKS
XC        THE WORKSPACE FOR THE SIMPLEX IS DECLARED IN THE MAIN PROGRAM
XC        TO BE A ONE-DIMENSIONAL VECTOR `SIMPLEX'; HOWEVER, ALL 
XC        SUBROUTINE CALLS REDEFINE THE ONE-DIMENSIONAL VECTOR `SIMPLEX'
XC        TO BE A TWO-DIMENSIONAL ARRAY `S' OF DIMENSION N BY N+1.  NOTE
XC        ALSO THAT THE N+1 VERTICES OF THE SIMPLEX ARE STORED BY COLUMN.
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          I, J
XC
X      DO 1000 J = 2, N+1
X         READ(IN, *) (S(I,J), I = 1, N)
X 1000 CONTINUE
XC
X      RETURN
X      END
END_OF_FILE
if test 5203 -ne `wc -c <'reads.f'`; then
    echo shar: \"'reads.f'\" unpacked with wrong size!
fi
# end of 'reads.f'
fi
if test -f 'result.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'result.f'\"
else
echo shar: Extracting \"'result.f'\" \(5128 characters\)
sed "s/^X//" >'result.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)result.F 1.1 3/16/92
XC
X      SUBROUTINE RESULT(N,COUNT,S,FBEST,INDEX,OUT)
XC
XC     SERVICE ROUTINE USED TO PRINT OUT THE FINAL RESULT OF THE SEARCH.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N, COUNT, INDEX(N+1), OUT
X      DOUBLE PRECISION S(N,N+1), FBEST
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM SOLVED
XC        COUNT         NUMBER OF COMPLETED ITERATIONS
XC        S             AN N BY N+1 MATRIX CONTAINING THE BEST VERTEX IN
XC                      S(*,INDEX(1))
XC        FBEST         THE FUNCTION VALUE AT THE BEST VERTEX
XC        INDEX         A PERMUTATION ARRAY USED TO KEEP TRACK OF THE
XC                      BEST VERTEX
XC        OUT           THE UNIT NUMBER TO WHICH OUTPUT IS TO BE WRITTEN
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          I, V0
XC
X      WRITE(OUT,'(''                                   '')')
X      WRITE(OUT,100) COUNT
X 100  FORMAT(' FINISHED WITH TOTAL NUMBER OF ITERATIONS:',I12)
XC
X      WRITE(OUT,200)
X 200  FORMAT(' THE BEST VERTEX IS:')
X      V0 = INDEX(1)
X      DO 400 I = 1, N
X         WRITE(OUT,300) S(I,V0)
X 300     FORMAT(F28.14)
X 400  CONTINUE
XC
X      WRITE(OUT,500) FBEST
X 500  FORMAT(' WITH FUNCTION VALUE', F28.14)
XC
X      RETURN
X      END
END_OF_FILE
if test 5128 -ne `wc -c <'result.f'`; then
    echo shar: \"'result.f'\" unpacked with wrong size!
fi
# end of 'result.f'
fi
if test -f 'right.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'right.f'\"
else
echo shar: Extracting \"'right.f'\" \(6042 characters\)
sed "s/^X//" >'right.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)right.F 1.1 3/16/92
XC
X      SUBROUTINE RIGHT(N,SCALE,S)
XC
XC     THIS IS A SERVICE SUBROUTINE USED TO CONSTRUCT AN INITIAL SIMPLEX
XC     WHEN ONE IS NOT PROVIDED BY THE USER.  THIS ROUTINE CONSTRUCTS A
XC     RIGHT-ANGLE SIMPLEX (I.E., ONE IN WHICH ALL OF THE VERTICES ARE OF
XC     EQUAL DISPLACEMENT ALONG THE COORDINATE AXES.
XC
XC     NOTE THAT THE USER MUST PROVIDE THE VARIABLE `SCALE', WHICH
XC     SPECIFIES THE LENGTH OF THE DISPLACEMENT, AS WELL AS THE INITIAL
XC     VERTEX USED TO START THE SEARCH.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N
X      DOUBLE PRECISION SCALE, S(N,N+1)
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        SCALE         DUAL PURPOSE; IF
XC                         0    THEN USER SUPPLIED THE SIMPLEX TO BE
XC                              USED TO START THE SEARCH AND
XC                              THIS SUBROUTINE WILL NOT BE CALLED
XC                         ELSE THIS SUBROUTINE CONSTRUCTS A RIGHT-ANGLE 
XC                              SIMPLEX WITH EDGES OF LENGTH `SCALE'
XC        S             TWO-DIMENSIONAL ARRAY CONTAINING THE VERTEX
XC                      SPECIFIED BY THE USER TO BEGIN THE SEARCH
XC     OUTPUT
XC        S             TWO-DIMENSIONAL ARRAY CONTAINING THE N+1 VERTICES
XC                      OF THE SIMPLEX TO BE USED TO START THE SEARCH.
XC                      THIS SIMPLEX WILL BE A RIGHT-ANGLE SIMPLEX WITH
XC                      DISPLACEMENTS ALONG THE COORDINATE AXES OF LENGTH
XC                      (AND ORIENTATION) OF `SCALE'.
XC     REMARKS
XC        THE WORKSPACE FOR THE SIMPLEX IS DECLARED IN THE MAIN PROGRAM
XC        TO BE A ONE-DIMENSIONAL VECTOR `SIMPLEX'; HOWEVER, ALL
XC        SUBROUTINE CALLS REDEFINE THE ONE-DIMENSIONAL VECTOR `SIMPLEX'
XC        TO BE A TWO-DIMENSIONAL ARRAY `S' OF DIMENSION N BY N+1.  NOTE
XC        ALSO THAT THE N+1 VERTICES OF THE SIMPLEX ARE STORED BY COLUMN.
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          I, J
XC
X      DO 2000 J = 2, N+1
X         DO 1000 I = 1, N
X            S(I,J) = S(I,1)
X 1000    CONTINUE
X         S(J-1,J) = S(J-1,J) + SCALE
X 2000 CONTINUE
XC
X      RETURN
X      END
END_OF_FILE
if test 6042 -ne `wc -c <'right.f'`; then
    echo shar: \"'right.f'\" unpacked with wrong size!
fi
# end of 'right.f'
fi
if test -f 'scaled.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'scaled.f'\"
else
echo shar: Extracting \"'scaled.f'\" \(6467 characters\)
sed "s/^X//" >'scaled.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)scaled.F 1.1 3/16/92
XC
X      SUBROUTINE SCALED(N,SCALE,S)
XC
XC     THIS IS A SERVICE SUBROUTINE USED TO CONSTRUCT AN INITIAL SIMPLEX
XC     WHEN ONE IS NOT PROVIDED BY THE USER.  THIS ROUTINE CONSTRUCTS A
XC     SCALED RIGHT-ANGLE SIMPLEX (I.E., ONE IN WHICH THE EDGES ARE SCALED
XC     BY THE VALUE OF THE ORIGINAL COORDINATES TO GIVE THE DISPLACEMENT
XC     ALONG THE COORDINATE AXES.
XC
XC     NOTE THAT THE USER MUST PROVIDE THE VARIABLE `SCALE', WHICH
XC     SPECIFIES THE ORIGINAL LENGTH (AND ORIENTATION) OF THE DISPLACEMENT,
XC     AS WELL AS THE INITIAL VERTEX USED TO START THE SEARCH (AND SCALE
XC     THE ACTUAL DISPLACEMENTS).
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N
X      DOUBLE PRECISION SCALE, S(N,N+1)
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        SCALE         DUAL PURPOSE; IF
XC                         0    THEN USER SUPPLIED THE SIMPLEX TO BE
XC                              USED TO START THE SEARCH AND
XC                              THIS SUBROUTINE WILL NOT BE CALLED
XC                         ELSE THIS SUBROUTINE CONSTRUCTS A SCALED
XC                              RIGHT-ANGLE SIMPLEX WITH EDGES OF LENGTH
XC                              `SCALE'*X0(I).
XC        S             TWO-DIMENSIONAL ARRAY CONTAINING THE VERTEX
XC                      SPECIFIED BY THE USER TO BEGIN THE SEARCH
XC     OUTPUT
XC        S             TWO-DIMENSIONAL ARRAY CONTAINING THE N+1 VERTICES
XC                      OF THE SIMPLEX TO BE USED TO START THE SEARCH.
XC                      THIS SIMPLEX WILL BE A SCALED RIGHT-ANGLE SIMPLEX
XC                      WITH DISPLACEMENTS ALONG THE COORDINATE AXES WITH
XC                      BASE LENGTH (AND ORIENTATION) OF `SCALE', FURTHER
XC                      SCALED BY THE COORDINATE OF V0.
XC     REMARKS
XC        THE WORKSPACE FOR THE SIMPLEX IS DECLARED IN THE MAIN PROGRAM
XC        TO BE A ONE-DIMENSIONAL VECTOR `SIMPLEX'; HOWEVER, ALL
XC        SUBROUTINE CALLS REDEFINE THE ONE-DIMENSIONAL VECTOR `SIMPLEX'
XC        TO BE A TWO-DIMENSIONAL ARRAY `S' OF DIMENSION N BY N+1.  NOTE
XC        ALSO THAT THE N+1 VERTICES OF THE SIMPLEX ARE STORED BY COLUMN.
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          I, J
XC
X      DO 2000 J = 2, N+1
X         DO 1000 I = 1, N
X            S(I,J) = S(I,1)
X 1000    CONTINUE
XC        MAKE SURE THAT YOU DO NOT SCALE BY ZERO!
X         IF ((1.D0 + S(J-1,1)) .NE. 1.D0) THEN
X            S(J-1,J) = S(J-1,J) + SCALE*S(J-1,1)
X         ELSE
X            S(J-1,J) = S(J-1,J) + SCALE
X         ENDIF
X 2000 CONTINUE
XC
X      RETURN
X      END
END_OF_FILE
if test 6467 -ne `wc -c <'scaled.f'`; then
    echo shar: \"'scaled.f'\" unpacked with wrong size!
fi
# end of 'scaled.f'
fi
if test -f 'shrink.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'shrink.f'\"
else
echo shar: Extracting \"'shrink.f'\" \(6328 characters\)
sed "s/^X//" >'shrink.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)shrink.F 1.3 5/18/92
XC
X      SUBROUTINE SHRINK(N,SSS,SCHEME,RESIZE,NUM)
XC
XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
XC
XC     IF THE BEST VERTEX IS NOT REPLACED AT THE CURRENT STEP, THE
XC     CONVERGENCE THEOREM REQUIRES US TO SHRINK THE SIMPLEX TOWARDS THE
XC     BEST VERTEX.  SINCE THE CHOICE OF SEARCH SCHEMES MAY ALLOW US TO
XC     TO "LOOK-AHEAD" SEVERAL ITERATIONS, WE WOULD LIKE TO KNOW THE SIZE
XC     OF THE SMALLEST SIMPLEX SEEN DURING THE STEP (WHICH, BY THE WAY
XC     THE SCHEME IS GENERATED, IS GUARANTEED TO BE A CONTRACTION TOWARDS
XC     THE BEST VERTEX) AND USE THIS SMALLEST SIMPLEX TO START THE SEARCH
XC     AT THE NEXT ITERATION SO THAT WE AVOID AS MUCH AS POSSIBLE
XC     NEEDLESS REPETITION OF POINTS ALREADY INVESTIGATED DURING THE
XC     CURRENT ITERATION.
XC
XC     THIS IS EASILY ACCOMPLISHED BY SIMPLY SEARCHING THE LIST OF
XC     SCALARS NECESSARY TO RECONSTRUCT THE SIMPLEX ASSOCIATED WITH A
XC     GIVEN POINT I (CONTAINED IN THE -1 ROW OF `SCHEME') FOR THE
XC     SMALLEST VALUE.  WE ALSO COUNT THE NUMBER OF TIMES THIS SMALLEST
XC     VALUE HAS BEEN SEEN TO INSURE THAT THE ENTIRE SHRINK WAS COMPUTED.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MAY 18, 1992.
XC
XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      INTEGER          N, SSS, SCHEME(-1:N,SSS), RESIZE, NUM
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        N             DIMENSION OF THE PROBLEM TO BE SOLVED
XC        SSS           SIZE OF THE SEARCH SCHEME
XC        SCHEME        MATRIX USED TO HOLD THE PROCESSOR'S PIECE OF THE
XC                      TEMPLATE TO BE USED FOR THE SEARCH SCHEME
XC     OUTPUT
XC        RESIZE        THE SIZE OF THE SMALLEST SHRINK FACTOR FOUND IN
XC                      THE GIVEN SEARCH SCHEME (AT LEAST ON THIS
XC                      PROCESSOR)
XC        NUM           THE NUMBER OF TIMES THIS SHRINK FACTOR WAS SEEN
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL CONSTANTS  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
X      INTEGER          A
X      PARAMETER       (A = -1)
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          I
XC
XC     FIRST, SEARCH FOR THE SMALLEST RESCALING FACTOR AMONG THE
XC     POINTS ON MY NODE.
X      RESIZE = ABS(SCHEME(A,1))
X      NUM = 1
X      DO 1000 I = 2, SSS
X         IF (ABS(SCHEME(A,I)) .LT. RESIZE) THEN
X            RESIZE = ABS(SCHEME(A,I))
X            NUM = 1
X         ELSE IF (ABS(SCHEME(A,I)) .EQ. RESIZE) THEN
X            NUM = NUM + 1
X         ENDIF
X 1000 CONTINUE
XC
X      RETURN
X      END
END_OF_FILE
if test 6328 -ne `wc -c <'shrink.f'`; then
    echo shar: \"'shrink.f'\" unpacked with wrong size!
fi
# end of 'shrink.f'
fi
if test -f 'swap.intel.f' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'swap.intel.f'\"
else
echo shar: Extracting \"'swap.intel.f'\" \(5639 characters\)
sed "s/^X//" >'swap.intel.f' <<'END_OF_FILE'
XC     Copyright (C) 1992 Virginia Torczon.  All rights reserved.
XC     See below for limited use and distribution authorization.
XC
XC     PDS, the collection of sofware for executing the parallel direct
XC     search methods, was written by Dr. Virginia Torczon, Department 
XC     of Mathematical Sciences, Rice University, Houston, Texas.  The
XC     two versions of Quicksort included in this release were written
XC     by Dr. Robert Michael Lewis, Department of Mathematical Sciences,
XC     Rice University, Houston, Texas.  This software is distributed by
XC     CITI, the Computer and Information Technology Institute of Rice
XC     University.  CITI Catalog Number PD92005, released for distribution
XC     March 16, 1992.
XC     
XC     Subject to the terms below, this software may be copied,
XC     distributed, or modified in any way desired without permission
XC     from the author(s) or from Rice University.  
XC     
XC     If the software is distributed in complete, unmodified form, no
XC     charge may be made for any copies so distributed, except that a
XC     nominal fee not exceeding the reasonable cost of distribution may
XC     be charged.  In addition, this legend must be included in all
XC     such complete, unmodified copies so distributed (but otherwise no
XC     reference may be made to the author(s) or to Rice University or
XC     CITI).
XC     
XC     Neither the author(s)' names nor that of their affiliated insti-
XC     tutions (if any), nor the names of Rice University or CITI, may
XC     be used by any person or entity, in any manner, without his/her/
XC     its express prior written consent.
XC     
XC     This software was created in the course of academic and/or re-
XC     search endeavors and not as a commercial package.  Its present
XC     version (which may still be in development) is distributed for a
XC     nominal fee to cover the cost of distribution and administrative
XC     costs, "AS IS, WITH ALL DEFECTS."   By using the software, each
XC     user agrees to assume all responsibility for any and all such
XC     use.  The author(s) and Rice University are not aware that the
XC     software or the use thereof infringe any proprietary right be-
XC     longing to a third party.  However, NO WARRANTY OR REPRESENTA-
XC     TION OF ANY KIND, EXPRESS OR IMPLIED, is made about the software,
XC     including without limitation any warranty of title, noninfringe-
XC     ment, merchantability, or fitness for a particular purpose, by
XC     the author(s) or by Rice University.  
XC     
XC     Independent of the foregoing disclaimer of warranties, the user
XC     agrees, by using the software, that NEITHER RICE UNIVERSITY NOR
XC     THE AUTHOR(S) SHALL BE LIABLE FOR ANY INCIDENTAL OR CONSEQUENTIAL
XC     DAMAGES IN CONNECTION WITH THE USE OF THIS SOFTWARE, INCLUDING
XC     WITHOUT LIMITATION LOST PROFITS OR INJURY TO BUSINESS, WHETHER OR
XC     NOT RICE UNIVERSITY AND/OR THE AUTHOR(S) KNOW OR HAVE REASON TO
XC     KNOW OF THE POSSIBILITY OF SUCH DAMAGES.
XC     
XC     By using this software, the user agrees to indemnify and defend
XC     Rice University and the author(s) and their affiliated institu-
XC     tions (if any), or any of them, against any loss, expense, claim,
XC     damage, or liability of any kind arising from or connected with
XC     the licensee's use of the software, and to hold them or any of
XC     them harmless from any of the same, WHETHER OR NOT ARISING IN
XC     WHOLE OR IN PART FROM THE NEGLIGENCE OR GROSS NEGLIGENCE OF RICE
XC     UNIVERSITY OR ANY OF THE AUTHOR(S) OR THEIR AFFILIATED INSTITU-
XC     TIONS (IF ANY).
XC     
XC     @(#)swap.intel.F 1.1 3/16/92
XC
X      DOUBLE PRECISION FUNCTION SWAP(MYBEST,YOURBEST)
XC
XC     UNIQUE TO INTEL DISTRIBUTED MEMORY MACHINES
XC
XC     THIS IS THE FUNCTION USED TO ALLOW US TO COMPARE THE TWO VECTORS
XC     `MYBEST' AND `YOURBEST' BY LOOKING ONLY AT THE FUNCTION VALUE
XC     STORED IN POSITION N+1, BUT IT IS ALSO USED TO ALLOW US TO
XC     EXCHANGE THE ENTIRE VECTOR FROM POSITIONS -1 TO N+1 IF WE HAVE
XC     RECEIVED A VERTEX WITH A LOWER FUNCTION VALUE.
XC
XC     WRITTEN BY VIRGINIA TORCZON.
XC
XC     LAST MODIFICATION:  MARCH 11, 1992.
XC
XC     PARAMETERS       PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
X      DOUBLE PRECISION MYBEST(-3:*), YOURBEST(-3:*)
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     INPUT
XC        MYBEST        VECTOR CONTAINING THE VERTEX COMPUTED BY MY NODE
XC                      DURING THIS ITERATION WITH THE LOWEST FUNCTION
XC                      VALUE.  NOTE THAT THE VERTEX IS CONTAINED IN
XC                      POSITIONS 1 THROUGH N; IT'S FUNCTION VALUE IS
XC                      CONTAINED IN POSITION N+1; POSITION -3 HOLDS THE
XC                      DIMENSION N, THROUGH
XC                      0 ARE USED TO PASS ADDITIONAL INFORMATION.
XC        YOURBEST      A WORK VECTOR, WHICH MUST BE OF THE SAME LENGTH
XC                      AS `MYBEST', THAT IS USED TO RECEIVE THE
XC                      CONTRIBUTIONS FROM OTHER NODES.
XC
XCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
XC
XC     LOCAL VARIABLES  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
X      INTEGER          J, N
XC
X      N = NINT(MYBEST(-3))
XC
X      IF (MYBEST(N+1) .GT. YOURBEST(N+1)) THEN
X         DO 1000 J = -1, N+1
X            MYBEST(J) = YOURBEST(J)
X 1000    CONTINUE
X      ELSE IF ((MYBEST(N+1) .EQ. YOURBEST(N+1)) .AND.
X     >                              (YOURBEST(-2) .LT. MYBEST(-2))) THEN
XC        TIES BROKEN IN FAVOR OF THE LOWER NODE NUMBER!
X         DO 2000 J = -1, N+1
X            MYBEST(J) = YOURBEST(J)
X 2000    CONTINUE
X      ENDIF
XC
X      RETURN
X      END
END_OF_FILE
if test 5639 -ne `wc -c <'swap.intel.f'`; then
    echo shar: \"'swap.intel.f'\" unpacked with wrong size!
fi
# end of 'swap.intel.f'
fi
echo shar: End of shell archive.
exit 0
