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