1      FUNCTION YUP(I,M,NY)
2C
3C     ----FUNCTION TO LOCATE AND UNPACK Y(I,J,K,L)
4C     ----M CONTAINS NX2,NX1,NX3,NX4,I1,I3,I4 IN THAT ORDER.
5C     ----ROUTINE UNPACKS 2 FLOATING POINT NUMBERS WITH 3 SIGNIFICANT
6C     ----DIGITS EACH.
7C
8      LOGICAL FIRST
9      DIMENSION M(7),NY(1)
10      LRAW=I
11      IF(M(1).GT.0)GO TO 1000
12      M1=IABS(M(1))
13      M12=M1*M(2)
14      M123=M12*M(3)
15      IF(M(2).NE.0)LRAW=LRAW+M1*(M(5)-1)
16      IF(M(3).NE.0)LRAW=LRAW+M12*(M(6)-1)
17      IF(M(4).NE.0)LRAW=LRAW+M123*(M(7)-1)
18 1000 LT=LRAW/2
19      IF(LRAW.NE.2*LT)GO TO 1010
20C
21C     ----KEEP LAST NUMBER IN PACKED WORD.
22C
23      FIRST=.FALSE.
24      GO TO 1020
25 1010 LT=LT+1
26C
27C     ----KEEP FIRST NUMBER IN PACKED WORD.
28C
29      FIRST=.TRUE.
30 1020 N=NY(LT)
31C
32C     ----UNPACK
33C
34      NS1=1
35      IF(N.LT.0)NS1=-1
36      N=IABS(N)
37      NOT3=N/1000
38      ND2=N-1000*NOT3
39      NOT6=NOT3/1000
40      ND1=NOT3-1000*NOT6
41      NOT7=NOT6/10
42      NP2=NOT6-10*NOT7
43      NOT8=NOT7/10
44      NP1=NOT7-10*NOT8
45      NOT9=NOT8/10
46      NSPS=NOT8-10*NOT9
47      NOT10=NOT9/10
48      NS2=NOT9-10*NOT10
49C
50C     ----INTERPRET.
51C
52      D1=ND1
53      IF(NS1.LT.0)D1=-D1
54      D2=ND2
55      IF(NS2.EQ.1)D2=-D2
56      IF(NSPS.EQ.0)GO TO 1060
57      IF(NSPS.EQ.1)GO TO 1030
58      GO TO 1050
59 1030 NP1=-NP1
60 1040 NP2=-NP2
61      GO TO 1060
62 1050 IF(NSPS.EQ.2)GO TO 1040
63      NP1=-NP1
64 1060 D2=D2*10.**NP2
65      D1=D1*10.**NP1
66      IF(FIRST)GO TO 1070
67      YA=D2
68      GO TO 1080
69 1070 YA=D1
70 1080 YUP=YA
71      RETURN
72      END
73