SUBROUTINE VCVT(VALUE, POS,FMT,DIR) REAL*4 VALUE INTEGER*2 POS,DIR LOGICAL*1 FMT(2) INTEGER*2 PSPP,PBUFL,PCY,PCYSPP,PBY,POFBY REAL*4 PBPIY,PBPCY,PBPIX COMMON/VPDP/PSPP,PBUFL,PCY,PCYSPP,PBY,POFBY,PBPIY,PBPCY,PBPIX LOGICAL*1 PNTBUF(2),PLTBUF(2),PLTYGB(2) INTEGER*2 RPSPP COMMON/VPNTBF/RPSPP,PNTBUF COMMON/VPLTBF/PLTBUF COMMON/VPLTYG/PLTYGB LOGICAL*1 BUF(15) INTEGER*2 BLANK DATA BLANK/"40/ IPOS=POS DO 1005 I=1,15 1005 BUF(I)=BLANK ENCODE(15,FMT,BUF)VALUE C MAKE SURE G CONVERSION ROUTINES ARE PRESENT 999 FORMAT(1PG9.2) C FIND BEG AND END DO 4010 IB=1,15 IF(BUF(IB).NE.BLANK)GO TO 4020 4010 CONTINUE 4020 DO 4030 IEE=1,15 IE=15-(IEE-1) IF(BUF(IE).NE.BLANK)GO TO 4040 4030 CONTINUE 4040 IF(DIR.LT.0)GO TO 4200 IF((IPOS.LE.0).OR.((IPOS+IE-IB).GT.PCY))GO TO 5000 DO 4110 I=IB,IE PNTBUF(IPOS)=BUF(I) 4110 IPOS=IPOS+1 GO TO 5000 4200 IF((IPOS.GT.PCY).OR.((IPOS-IE+IB).LE.0))GO TO 5000 DO 4210 II=IB,IE I=IE-(II-IB) PNTBUF(IPOS)=BUF(I) 4210 IPOS=IPOS-1 5000 CONTINUE RETURN END