C *** BANK *** C C SUBROUTINE TO TRANSFORM DATA OR CREATE NEW VARIABLES. THIS ROUTINE C DOES THE WORK, THE TRANSLATION OF WHAT THE USER WISHES HAS C ALREADY BEEN PERFORMED IN BNK2.BAN C SUBROUTINE TRANS DIMENSION ID(126,72),D(126,72),LV(125),NNS(18,6),NUMV(50) EQUIVALENCE(ID,D),(MISS,AMISS),(LV,NNS) COMMON /GEN/ IPROJA,IPROGA,NV,NO,BNKNM,DATCR,NPROJR,NPORGR COMMON /DEV/IDLG,ICC,IBNK,IUPGR,ITMPRY COMMON /OBS/ LICOB,NHO,IO(2,20) COMMON /SEL/ NS,ISEL(5,20),IDATA(20,20) COMMON/TRNS/INST(25),IVAR1(25),IVAR2(25),CONST(25),SV(99),ITO(25) COMMON /ERROR/ LDBZ,LSQRN,LNL0,LL10,LASN,LIFX,LFLOAT,LALPHA COMMON /SET/ NHVSET,IVSET(2,30), NHOSET,IOSET(2,30) DOUBLE PRECISION BNKNM,TMPBK,DATCR DATA TMPBK /'TMP.DAT'/ DATA MISS/"400000000000/ CALL TIME(J,K) CALL SETRAN(K) NHV=0 K=2 LDBZ=0 LSQRN=0 LNL0=0 LL10=0 LASN=0 LIFX=0 LFLOAT=0 LALPHA=0 NOBASE=(NO+124)/125 101 IF(INST(K).EQ.9) GO TO 108 IF(INST(K).EQ.99) GO TO 107 IF(IVAR1(K).LE.0) GO TO 104 IF(NHV.LT.1) GO TO 103 DO 102 J=1,NHV IF(NUMV(J).NE.IVAR1(K)) GO TO 102 IVAR1(K)=J GO TO 104 102 CONTINUE 103 NHV=NHV+1 NUMV(NHV)=IVAR1(K) IVAR1(K)=NHV 104 IF(IVAR2(K).LE.0) GO TO 107 IF(NHV.LT.1) GO TO 106 DO 105 J=1,NHV IF(NUMV(J).NE.IVAR2(K)) GO TO 105 IVAR2(K)=J GO TO 107 105 CONTINUE 106 NHV=NHV+1 NUMV(NHV)=IVAR2(K) IVAR2(K)=NHV 107 K=K+1 GO TO 101 108 NINST=K-1 IF(ITO(K).LE.0) GO TO 109 NHV=NHV+1 NUMV(NHV)=ITO(K) ITO(K)=NHV 109 IBASE=((NO+124)/125)*NV+1 IRECO=0 IF(NHV.LT.1) GO TO 112 DO 110 J=1,NHV K=NUMV(J) IF(K.EQ.999999999) GO TO 113 IREC=(K-1)/6 IONE=K-IREC*6 IREC=IREC+IBASE+1 IF(IREC.EQ.IRECO) GO TO 111 READ(IBNK#IREC) LV IRECO=IREC 111 D(126,J)=NNS(10,IONE) GO TO 110 113 D(126,J)=2 110 CONTINUE 112 K=ITO(1) IF(K.GT.NV) GO TO 114 IREC=(K-1)/6 IONE=K-IREC*6 IREC=IREC+IBASE+1 READ(IBNK#IREC) LV D(126,71)=NNS(10,IONE) NAMES=NNS(1,IONE) C C CHECK TO SEE THAT ALL ALPHAS ARE LEGAL 114 IF(NHV.LT.1) GO TO 121 DO 116 J=1,NHV IF(D(126,J).NE.1) GO TO 116 IF(NINST.LT.2) GO TO 121 DO 117 K=2,NINST IF(IVAR2(K).NE.J) GO TO 120 119 WRITE(IDLG,118) 118 FORMAT(' ILLEGAL TO USE ALPH VARIABLES FOR CALCULATIONS') GO TO 999 120 IF(IVAR1(K).NE.J) GO TO 117 IF((INST(K).NE.21).AND.(INST(K).NE.22)) GO TO 119 117 CONTINUE 116 CONTINUE 121 IF(ITO(1).GT.NV) GO TO 300 C C TRANSFORM EXISTING VARIABLE C MODEFR=D(126,71) 131 MODETO=0 IF(ITO(NINST+1).GT.0)MODETO=D(126,ITO(NINST+1)) IF(NINST.LT.2) GO TO 130 IF(INST(NINST).EQ.21) MODETO=2 IF(INST(NINST).EQ.23) MODETO=1 130 ISW=0 IF((MODEFR.EQ.1).AND.(MODETO.NE.1)) ISW=3 IF((MODEFR.NE.1).AND.(MODETO.EQ.1)) ISW=3 IF((MODEFR.EQ.0).AND.(MODETO.EQ.2)) ISW=2 IF((MODEFR.EQ.2).AND.(MODETO.EQ.0)) ISW=1 NBL=(NO-1)/125+1 C C DO 150 I=1,NOBASE C C RECOVER DATA TO BE USED (IF ANY) C IF(NHV.LT.1) GO TO 170 DO 161 J=1,NHV IF(NUMV(J).EQ.999999999) GO TO 162 IREC=(NUMV(J)-1)*NOBASE+1+I READ(IBNK#IREC) (ID(K,J),K=1,125) GO TO 161 162 KVCH=(I-1)*125 KEND=125 IF((KVCH+125).GT.NO) KEND=NO-KVCH DO 163 K=1,KEND 163 ID(K,J)=KVCH+K IF(KEND.EQ.125) GO TO 161 DO 164 K=KEND+1,125 164 ID(K,J)=MISS 161 CONTINUE C C C 170 IF(NS.LT.1) GO TO 180 DO 171 J=1,NS IREC=(ISEL(2,J)-1)*NOBASE+1+I READ(IBNK#IREC) (ID(K,J+50),K=1,125) 171 CONTINUE C C C 180 IREC=(ITO(1)-1)*NOBASE+1+I READ(IBNK#IREC)(ID(K,71),K=1,125) IF(ISW.EQ.0) GO TO 190 IF(ISW.NE.1) GO TO 184 DO 183K=1,125 IF(D(K,71).NE.AMISS) D(K,71)=ID(K,71) 183 CONTINUE GO TO 190 184 IF(ISW.NE.2) GO TO 196 DO 185 K=1,125 IF(D(K,71).NE.AMISS)ID(K,71)=D(K,71) 185 CONTINUE GO TO 190 196 DO 186 K=1,125 186 D(K,71)=AMISS C C C 190 DO 191 K=1,125 191 D(K,72)=0 KMAX=I*125 KMIN=KMAX-124 DO 192 L=1,NHO ILOW=0 IUP=0 IF(IO(1,L).GT.KMAX) GO TO 195 IF(IO(2,L).LT.KMIN) GO TO 192 IF(IO(1,L).LE.KMIN) ILOW=1 IF(IO(2,L).GE.KMAX) IUP=125 IF(ILOW.EQ.0) ILOW=IO(1,L)-KMIN+1 IF(IUP.EQ.0) IUP=125-(KMAX-IO(2,L)) DO 193 K=ILOW,IUP 193 ID(K,72)=1 192 CONTINUE 195 DO 200 K=1,125 IF(ID(K,72).EQ.0) GO TO 200 IF(NS.LE.0) GO TO 219 C C SELECTION PORTION C J=1 207 IF(ISEL(3,J).NE.1) GO TO 203 DO 204 M=1,ISEL(5,J) IF(IDATA(J,M).EQ.MISS) GO TO 202 204 CONTINUE 203 IF(ID(K,J+50).EQ.MISS) GO TO 206 202 GO TO (211,212,213,214,215,216) ISEL(3,J) 211 DO 205 M=1,ISEL(5,J) IF(ID(K,J+50).EQ.IDATA(J,M)) GO TO 201 205 CONTINUE GO TO 206 212 IF(ID(K,J+50).LT.IDATA(J,1)) GO TO 201 GO TO 206 213 IF(ID(K,J+50).LE.IDATA(J,1)) GO TO 201 GO TO 206 214 IF(ID(K,J+50).GT.IDATA(J,1)) GO TO 201 GO TO 206 215 IF(ID(K,J+50).GE.IDATA(J,1)) GO TO 201 GO TO 206 216 IF(ID(K,J+50).NE.IDATA(J,1)) GO TO 201 GO TO 206 206 J=J+1 IF(J.GT.NS) GO TO 200 IF(ISEL(1,J).EQ.ISEL(1,J-1)) GO TO 207 GO TO 200 201 J=J+1 IF(J.GT.NS) GO TO 219 IF(ISEL(1,J).EQ.ISEL(1,J-1)) GO TO 201 GO TO 207 219 DO 220 J=1,NHV IF(ID(K,J).EQ.MISS) GO TO 230 220 CONTINUE KK=K CALL CALCU(D,KK,MODETO) GO TO 200 230 D(K,71)=AMISS 200 CONTINUE IREC=(ITO(1)-1)*NOBASE+1+I WRITE(IBNK#IREC)(ID(K,71),K=1,125) 150 CONTINUE IF(LDBZ.GT.0) WRITE(IDLG,252) LDBZ 252 FORMAT(I4,' OCCURANCES OF DIVISION BY ZERO - MISSING DATA') IF(LSQRN.GT.0) WRITE(IDLG,253) LSQRN 253 FORMAT(I4,' OCCURANCES OF SQRT OF A NEGATIVE - MISSING DATA') IF(LNL0.GT.0) WRITE(IDLG,254) LNL0 254 FORMAT(I4,' OCCURANCES OF LN OF NON-POSITIVES - MISSING DATA') IF(LL10.GT.0) WRITE(IDLG,255) LL10 255 FORMAT(I4,' OCCURANCES OF LOG10 OF NON-POSITIVES - MISSING DATA') IF(LASN.GT.0) WRITE(IDLG,256) LASN 256 FORMAT(I4,' OCCURANCES OF ILLEGAL ARCSIN - MISSING DATA') IF(LIFX.GT.0) WRITE(IDLG,257)LIFX 257 FORMAT(I4,' PROBLEMS GOING FROM ALPHA TO FIXED - MISSING DATA') IF(LFLOAT.GT.0) WRITE(IDLG,258) LFLOAT 258 FORMAT(I4,' PROBLEMS GOING FROM ALPHA TO FLOAT - MISSING DATA') IF(LALPHA.GT.0) WRITE(IDLG,259) LALPHA 259 FORMAT(I4,' PROBLEMS GOING FROM NUMERIC TO ALPHA - MISSING DATA') IF(MODETO.NE.MODEFR) GO TO 260 WRITE(IDLG,250) NAMES 250 FORMAT(' VARIABLE: ',A5,' TRANSFORMED') RETURN 260 MODT='FLOAT' IF(MODETO.EQ.1) MODT='ALPHA' IF(MODETO.EQ.2) MODT='FIXED' IF(MODEFR.EQ.99) GO TO 262 MODF='FLOAT' IF(MODEFR.EQ.1) MODF='ALPHA' IF(MODEFR.EQ.2) MODF='FIXED' WRITE(IDLG,251) NAMES,MODF,MODT 251 FORMAT(' VARIABLE: ',A5,' TRANSFORMED, MODE CHANGED FROM ' 1,A5,' TO ',A5) 261 K=ITO(1) IREC=(K-1)/6 IONE=K-IREC*6 IREC=IREC+IBASE+1 READ(IBNK#IREC) LV NNS(10,IONE)=MODETO WRITE(IBNK#IREC) LV 999 RETURN 262 WRITE(IDLG,263) INST(1),MODT 263 FORMAT(' VARIABLE: ',A5,' CREATED HAVING A ',A5,' MODE') GO TO 261 C C C C C NEW VARIABLE BEING CALCULATED C 300 MODEFR=99 IBASE=NOBASE*NV+1 NMBR=(NV+5)/6 C NOW MOVE HEADER RECORDS UP DO 302 I=NMBR,1,-1 READ(IBNK#(I+IBASE)) LV 302 WRITE(IBNK#(I+IBASE+NOBASE))LV C NOW FILL NEW VARIABLE WITH MISSING DATA DO 303 I=1,125 303 LV(I)=MISS DO 304 I=1,NOBASE 304 WRITE(IBNK#(IBASE+I)) LV IBASE=IBASE+NOBASE C NOW ENTER NAME AND DESCRIPTION BLOCK MMBR=(NV+6)/6 IONE=(NV+1)-(MMBR-1)*6 IF(MMBR.NE.NMBR) GO TO 305 READ(IBNK#(IBASE+NMBR)) LV GO TO 307 305 DO 306 I=1,6 306 NNS(1,I)=' ' 307 NNS(1,IONE)=INST(1) NNS(2,IONE)='CREAT' NNS(3,IONE)='ED BY' NNS(4,IONE)=' A TR' NNS(5,IONE)='ANSFO' NNS(6,IONE)='RMATI' NNS(7,IONE)='ON - ' CALL DATE(NNS(8,IONE)) NNS(10,IONE)=0 WRITE(IBNK#(IBASE+MMBR)) LV IF(NHVSET.NE.1) GO TO 308 IF((IVSET(1,1).EQ.1).AND.(IVSET(2,1).EQ.NV)) IVSET(2,1)= 1IVSET(2,1)+1 308 NV=NV+1 READ(IBNK#1)LV LV(1)=NV WRITE(IBNK#1) LV GO TO 131 END SUBROUTINE CALCU(D,K,MODETO) DIMENSION D(126,72),SEP(5) COMMON /TRNS/INST(25),IVAR1(25),IVAR2(25),CONST(25),SV(99),ITO(25) COMMON /ERROR/ LDBZ,LSQRN,LNL0,LL10,LASN,LIFX,LFLOAT,LALPHA EQUIVALENCE (WORD1,IWORD1),(WORD2,IWORD2),(AMISS,MISS) DATA MISS /"400000000000/ N=1 ISMD=0 1 N=N+1 INSOP=INST(N) INPUT=ITO(N) IF(INSOP.EQ.99) GO TO 1 GO TO (2,2,30,2,50,60,70,80,90,100,110,120,130,140,150,2, 12,180,190,200,210,220,230,240,250) ,INSOP 2 WRITE(IDLG,3) 3 FORMAT(' SYS PROB - CONTACT DICK HOUCHARD') CALL EXIT C C POWER C 30 IF(IVAR1(N))31,32,33 31 WORD1=SV(-IVAR1(N)) GO TO 34 32 WORD1=CONST(N) GO TO 34 33 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 34 IF(IVAR2(N)) 35,36,37 35 WORD2=SV(-IVAR2(N)) GOTO 38 36 WORD2=CONST(N) GO TO 38 37 WORD2=D(K,IVAR2(N)) IF(D(126,IVAR2(N)).EQ.2) WORD2=IWORD2 38 SV(INPUT)=WORD1**WORD2 GO TO 1 C C ADD C 50 IF(IVAR1(N))51,52,53 51 WORD1=SV(-IVAR1(N)) GO TO 54 52 WORD1=CONST(N) GO TO 54 53 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 54 IF(IVAR2(N))55,56,57 55 WORD2=SV(-IVAR2(N)) GO TO 58 56 WORD2=CONST(N) GO TO 58 57 WORD2=D(K,IVAR2(N)) IF(D(126,IVAR2(N)).EQ.2) WORD2=IWORD2 58 SV(INPUT)=WORD1+WORD2 GO TO 1 C C SUBTRACT C 60 IF(IVAR1(N)) 61,62,63 61 WORD1=SV(-IVAR1(N)) GO TO 64 62 WORD1=CONST(N) GO TO 64 63 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2)WORD1=IWORD1 64 IF(IVAR2(N)) 65,66,67 65 WORD2=SV(-IVAR2(N)) GOTO 68 66 WORD2=CONST(N) GOTO 68 67 WORD2=D(K,IVAR2(N)) IF(D(126,IVAR2(N)).EQ.2) WORD2=IWORD2 68 SV(INPUT)=WORD1-WORD2 GO TO 1 C C DIVIDE C 70 IF(IVAR1(N)) 71,72,73 71 WORD1=SV(-IVAR1(N)) GO TO 74 72 WORD1=CONST(N) GO TO 74 73 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 74 IF(IVAR2(N)) 75,76,77 75 WORD2=SV(-IVAR2(N)) GO TO 78 76 WORD2=CONST(N) GO TO 78 77 WORD2=D(K,IVAR2(N)) IF(D(126,IVAR2(N)).EQ.2) WORD2=IWORD2 78 IF(WORD2.NE.0) GO TO 79 D(K,71)=AMISS LDBZ=LDBZ+1 RETURN 79 SV(INPUT)=WORD1/WORD2 GO TO 1 C C MULTIPLY C 80 IF(IVAR1(N)) 81,82,83 81 WORD1=SV(-IVAR1(N)) GO TO 84 82 WORD1=CONST(N) GO TO 84 83 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 84 IF(IVAR2(N)) 85,86,87 85 WORD2=SV(-IVAR2(N)) GO TO 88 86 WORD2=CONST(N) GO TO 88 87 WORD2=D(K,IVAR2(N)) IF(D(126,IVAR2(N)).EQ.2) WORD2=IWORD2 88 SV(INPUT)=WORD1*WORD2 GO TO 1 C C END OF RUN C 90 IF(ITO(N)) 91,92,93 91 WORD1=SV(-ITO(N)) GO TO 94 92 WORD1=CONST(N) GO TO 94 93 D(K,71)=D(K,ITO(N)) RETURN 94 IF(MODETO.EQ.2) IWORD1=WORD1 D(K,71)=WORD1 RETURN C C SQRT C 100 IF(IVAR1(N)) 101,102,103 101 WORD1=SV(-IVAR1(N)) GO TO 104 102 WORD1=CONST(N) GO TO 104 103 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 104 IF(WORD1.LT.0) GO TO 105 SV(INPUT)=SQRT(WORD1) GO TO 1 105 LSQRN=LSQRN+1 D(K,71)=AMISS RETURN C C NATURAL LOG C 110 IF(IVAR1(N)) 111,112,113 111 WORD1=SV(-IVAR1(N)) GO TO 114 112 WORD1=CONST(N) GO TO 114 113 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 114 IF(WORD1.LE.0) GO TO 115 SV(INPUT)=ALOG(WORD1) GO TO 1 115 LNL0=LNL0+1 D(K,71)=AMISS RETURN C C EXP C 120 IF(IVAR1(N)) 121,122,123 121 WORD1=SV(-IVAR1(N)) GO TO 124 122 WORD1=CONST(N) GO TO 124 123 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD 124 SV(INPUT)=EXP(WORD1) GO TO 1 C C LOG10 C 130 IF(IVAR1(N)) 131,132,133 131 WORD1=SV(-IVAR1(N)) GO TO 134 132 WORD1=CONST(N) GO TO 134 133 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD 134 IF(WORD1.LE.0) GO TO 135 SV(INPUT)=ALOG10(WORD1) GOTO 1 135 D(K,71)=AMISS LL10=LL10+1 RETURN C C SIN C 140 IF(IVAR1(N)) 141,142,143 141 WORD1=SV(-IVAR1(N)) GO TO 144 142 WORD1=CONST(N) GOTO 144 143 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 144 SV(INPUT)=SIN(WORD1) GO TO 1 C C COS C 150 IF(IVAR1(N)) 151,152,153 151 WORD1=SV(-IVAR1(N)) GO TO 154 152 WORD1=CONST(N) GO TO 154 153 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 154 SV(INPUT)=COS(WORD1) GO TO 1 C C ARC TAN C 180 IF(IVAR1(N)) 181,182,183 181 WORD1=SV(-IVAR1(N)) GO TO 184 182 WORD1=CONST(N) GO TO 184 183 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 184 SV(INPUT)=ATAN(WORD1) GO TO 1 C C ARC SIN C 190 IF(IVAR1(N)) 191,192,193 191 WORD1=SV(-IVAR1(N)) GO TO 194 192 WORD1=CONST(N) GO TO 194 193 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 194 IF((WORD1.LT.-1).OR.(WORD1.GT.1)) GO TO 195 SV(INPUT)=ASIN(WORD1) GO TO 1 195 D(K,71)=AMISS LASN=LASN+1 RETURN C C ABSOLUTE C 200 IF(IVAR1(N)) 201,202,203 201 WORD1=SV(-IVAR1(N)) GO TO 204 202 WORD1=CONST(N) GO TO 204 203 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.2) WORD1=IWORD1 204 SV(INPUT)=WORD1 IF(WORD1.LT.0) SV(INPUT)=-WORD1 GO TO 1 C C IFIX C 210 IF(IVAR1(N)) 211,212,213 211 WORD1=SV(-IVAR1(N)) GO TO 219 212 WORD1=CONST(N) GO TO 219 213 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.0) GO TO 219 IF(D(126,IVAR1(N)).EQ.1) GO TO 214 WORD1=IWORD1 GO TO 219 214 DECODE(5,252,WORD1) SEP ISET=0 WORD1=0 DO 215 J=1,5 IF(SEP(J).EQ.'-') GO TO 215 IF(SEP(J).EQ.' ') GO TO 215 IF(SEP(J).EQ.'.') GO TO 215 ISET=1 IF((SEP(J).GE.'0').AND.(SEP(J).LE.'9')) GO TO 215 D(K,71)=AMISS LIFX=LIFX+1 RETURN 215 CONTINUE IF(ISET.EQ.0) GO TO 219 217 IF(SEP(5).NE.' ') GO TO 218 DO 216 J=5,2,-1 216 SEP(J)=SEP(J-1) SEP(1)=' ' GO TO 217 218 ENCODE(5,252,WORD2) SEP DECODE(5,253,WORD2) WORD1 219 IWORD1=WORD1 SV(INPUT)=IWORD1 GO TO 1 C C C FLOAT C 220 IF(IVAR1(N)) 221,222,223 221 WORD1=SV(-IVAR1(N)) GO TO 229 222 WORD1=CONST(N) GO TO 229 223 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.0) GO TO 229 IF(D(126,IVAR1(N)).EQ.1) GO TO 224 WORD1=IWORD1 GO TO 229 224 DECODE(5,252,WORD1) SEP ISET=0 WORD1=0 DO 225 J=1,5 IF(SEP(J).EQ.'-') GO TO 225 IF(SEP(J).EQ.' ') GO TO 225 IF(SEP(J).EQ.'.') GO TO 225 ISET=1 IF((SEP(J).GE.'0').AND.(SEP(J).LE.'9')) GO TO 225 D(K,71)=AMISS LFLOAT=LFLOAT+1 RETURN 225 CONTINUE IF(ISET.EQ.0) GO TO 229 227 IF(SEP(5).NE.' ') GO TO 228 DO 226 J=5,2,-1 226 SEP(J)=SEP(J-1) SEP(1)=' ' GO TO 227 228 ENCODE(5,252,WORD2) SEP DECODE(5,253,WORD2) WORD1 229 SV(INPUT)=WORD1 GO TO 1 C C ALPHANUMERIC C 230 IF(IVAR1(N)) 231,232,233 231 WORD1=SV(-IVAR1(N)) GO TO 235 232 WORD1=CONST(N) GO TO 235 233 WORD1=D(K,IVAR1(N)) IF(D(126,IVAR1(N)).EQ.1) GO TO 243 IF(D(126,IVAR1(N)).EQ.0) GO TO 235 236 IF((IWORD1.LT.99999).AND.(IWORD1.GT.-9999)) GO TO 234 LALPHA=LALPHA+1 D(K,71)=AMISS RETURN 234 WORD2=0 ENCODE(5,254,WORD2) IWORD1 GO TO 238 235 IF((WORD1.LT.9999.).AND.(WORD1.GT.-999.)) GO TO 237 IWORD1=WORD1 GO TO 236 243 WORD2=WORD1 GO TO 238 237 WORD2=0 ENCODE(5,253,WORD2) WORD1 238 DECODE(5,252,WORD2) SEP 239 IF(SEP(1).NE.' ') GO TO 242 DO 241 J=2,5 241 SEP(J-1)=SEP(J) SEP(5)=' ' GO TO 239 242 ENCODE(5,252,WORD2) SEP SV(INPUT)=WORD2 GO TO 1 C C RANDOM NUMBER 240 SV(INPUT)=RAN(X) GO TO 1 C C NORMALIZED RANDOM NUMBERS C 250 WORD1=0 DO 251 J=1,12 251 WORD1=WORD1+RAN(X) SV(INPUT)=WORD1-6. GO TO 1 252 FORMAT(5A1) 253 FORMAT(F5.0) 254 FORMAT(I5) END