c===============================GETUNIT.FOR=============================
c
C---GETS FIRST UNIT IN ARG WITH POWER. REPLACES CORRESPONDING
C ELEMENTS IN ARG WITH BLANKS.
C ARG: STING OF UNITS
C U: A SINGLE CHARACTER UNIT
C POW: THE POWER ASSOCIATED WITH THE UNIT
C SIGN: THE SIGN OF THIS UNIT TO GET. MUST GIVEN AS INPUT.
C J: THE LENGTH OF THE UNIT. /DEE 1-89
c
SUBROUTINE GETUNIT(ARG,U,POW,SIGN,J)
PARAMETER (MAXPOW=5, MAXUNIT=7, MAXARG=70)
CHARACTER*(*) ARG
CHARACTER*(*) U
INTEGER POW, SIGN
CHARACTER*(MAXPOW) SPOW
I=1
J=1
POW=1
NSIGN = 0
10 IF (I .GT. MAXARG) GOTO 16
IF (ARG(I:I) .EQ. ' ') GOTO 15
IF (ARG(I:I) .EQ. '*') GOTO 11
IF (ARG(I:I) .EQ. '/') GOTO 12
IF (ARG(I:I) .EQ. '^') GOTO 13
c
U(J:J) = ARG(I:I)
ARG(I:I) = ' '
J=J+1
GOTO 15
c
11 NSIGN=1
ARG(I:I)=' '
GOTO 16
12 NSIGN = -1
ARG(I:I)= ' '
GOTO 16
13 K=1
131 ARG(I:I)=' '
I=I+1
IF (I .GT. MAXARG) GOTO 132
IF (ARG(I:I) .EQ. ' ') GOTO 131
IF ((ARG(I:I) .EQ. '*') .OR. (ARG(I:I) .EQ. '/')) GOTO 132
SPOW(K:K) = ARG(I:I)
K=K+1
GOTO 131
132 CALL CTOI(SPOW, POW, K-1)
GOTO 10
15 I=I+1
GOTO 10
16 POW=POW*SIGN
SIGN=SIGN*NSIGN
IF (J .EQ. 1) SIGN = 99
J=J-1
RETURN
END