      Subroutine POINT(Ivalue,Number,Iarray)
c
c **********************************************************************
c *                                                                    *
c *        SUBROUTINE POINT - To compute the location of a point,      *
c *        where the point number is equal to the sum of Iarray(I-1)+1 *
c *                                                                    *
c *        Input values:                                               *
c *                                                                    *
c *        Iarray - Array containing numbers that are to be summed     *
c *        Number - The element number of Iarray to sum up to          *
c *                                                                    *
c *        Output value:                                               *
c *                                                                    *
c *        Ivalue -  The sum of Iarray, from 1 to Number-1, plus 1     *
c *                                                                    *
c *          Programmed by Steven C. Fisher, DTNSRDC Code 1522         *
c *                                                                    *
c **********************************************************************
c
      Dimension Iarray(1)
      Ivalue = 1
      Do 10 I=2,Number
         Ivalue = Ivalue+Iarray(I-1)
10    Continue
      Return
      End
      Subroutine Instrg(String,Nochar,Choice)
c
c **********************************************************************
c *                                                                    *
c *       Subroutine INSTRG - to determine if a desired character was  *
c *       read in                                                      *
c *                                                                    *
c *       Input Values:                                                *
c *                                                                    *
c *       String  - Character string containing the desired characters *
c *                 to scan for                                        *
c *       Nochar  - Number of characters in "String"                   *
c *                                                                    *
c *       Output Value:                                                *
c *                                                                    *
c *       Choice  - Position of the input character within "String"    *
c *                 (integer)                                          *
c *                                                                    *
c *       Programmed by Steven C. Fisher, DTNSRDC Code 1522            *
c *                                                                    *
c **********************************************************************
c
      Byte String(Nochar),Char
      Integer Choice
      Include 'Cflags'
10    Continue
c
c           Get the users input
c
      Read(5,100,END=30,ERR=30) Char
100   Format(1A1)
      I = Char
      If (I .EQ. 3 .AND. Iabort .EQ. 0) Then
         Call Abort
         Go To 10
      End If
      Choice = 0
c
c           See if the input character is in the string
c
      Do 20 I=1,Nochar
         If (Char .EQ. String(I)) Choice = I
20    Continue
c
c           If found, return
c
      If (Choice .NE. 0) Return
 30   Continue
      Write(7,200)
200   Format(' Please try again')
      Go To 10
      End
      Subroutine Name(Segmnt,Icolmn,String,Ipoint)
c
c ***********************************************************************
c *                                                                     *
c *         Subroutine Name - To get a segment from a longer string     *
c *                                                                     *
c *         Input values:                                               *
c *                                                                     *
c *         Icolmn  - The segment number desired                        *
c *         String  - The character string containing all of the        *
c *                     segments                                        *
c *         Ipoint  - Array containing the lengths of each segment      *
c *                                                                     *
c *         Output values:                                              *
c *                                                                     *
c *         Segmnt  - The desired segment                               *
c *                                                                     *
c *         Programmed by Steven C. Fisher, DTNSRDC Code 1522           *
c *                                                                     *
c ***********************************************************************
c
      Byte Segmnt(1),String(1)
      DImension Ipoint(1)
c
c        Find the starting point of the string
c
      Call Point(Istart,Icolmn,Ipoint)
c
c        Fill the segment with the characters
c
      Do 10 I=1,Ipoint(Icolmn)
         Segmnt(I) = String(I+Istart-1)
10    Continue
      Return
      End
c
      Subroutine Inchek(Ifirst,Ilast,Ivalue)
c
c ***********************************************************************
c *                                                                     *
c *        Subroutine INCHEK - To check keyboard input to ensure that   *
c *        a read error does not occur, and to ensure that the value    *
c *        is within a certain limit                                    *
c *                                                                     *
c *        Input Values:                                                *
c *                                                                     *
c *        Ifirst  - The minimum permissable value for Ivalue           *
c *        Ilast   - The maximum permissable value for Ivalue           *
c *                                                                     *
c *        Output Value:                                                *
c *                                                                     *
c *        Ivalue  - The desired value to read                          *
c *                                                                     *
c *            Programmed by Steven C. Fisher, DTNSRDC Code 1522        *
c *                                                                     *
c ***********************************************************************
c
10    Continue
c
c             Read in a value
c
      Call Indata(1,'I',Ivalue)
c
c             See if the value lies within the a given range
c
      If (Ivalue .GE. Ifirst .AND. Ivalue .LE. Ilast) Return
c
c             It didn't - so try again
c
      Write(7,100) Ifirst,Ilast
100   Format(' Value is out of range - try again'/
     $       ' Enter numeric value between',I3,' and',I4,':  ',$)
      Go To 10
      End
