C====================================================================== INTEGER FUNCTION TOWOFF(ICODE,TOWIND) C====================================================================== C C===Description: C C This routine calculate the offset in TOWE bank for a C certain CALL bank content. C C===Modulename: C C C$JET:TOWOFF.CDF C C===Input Arguments: C C ICODE : address given in CALL bank. C TOWIND : the TOWE bank first data address. C C===Output Arguments: C C TOWOFF: Offset in the TOWE bank corresponding to the above address. C C===Author: C C S. Kim C C===Revision History: C C 25-NOV-1986 Original Creation C C====================================================================== C C===Implicit None Declaration: C implicit none C C===Argument Decalarations: C INTEGER ICODE, TOWIND C C===Global Parameter Declarations: C #include "inc/btmask.inc" #include "inc/erlevl.inc" #include "ybos/errcod.inc" #include "inc/dscals.inc" #include "inc/dstowe.inc" #include "inc/bcs.inc" #include "inc/jobsta.inc" C C===Local Variable Declarations: C INTEGER INDBNK,IADDR INTEGER IETA, JCODE, LENBLK, TOWTYP INTEGER IFIRST, INEXT C C C====================================================================== C C===Start of Code: C C C C IPHI = IAND(ICODE,MASK7) C IETA = IAND(ISHFT(ICODE,-7),MASK7) TOWTYP = TETTYP(IETA) C LENBLK = TETBLK(TOWTYP) ! block length for this tower type IFIRST = IW(TOWIND + TENTOW +IETA) +TOWIND INEXT = IW(TOWIND + TENTOW +IETA +1) +TOWIND C IF(IFIRST.GE.INEXT) GOTO 1100 ! no data for this ring IADDR = IFIRST C C-- Jump here for next tower C 1099 CONTINUE C C-- Loop over tower blocks C JCODE = IAND(IW(IADDR),MASK14) ! mask off address IF( JCODE.EQ.ICODE ) THEN TOWOFF = IADDR - TOWIND RETURN ENDIF C C-- new address location of tower block IADDR = IADDR + LENBLK C C-- see if we are finished with this annulus IF(IADDR.LT.INEXT-1) GOTO 1099 C 1100 CONTINUE C C---- Here for tower not present in TOWE C TOWOFF = 0 C C---------------------------------------------------------------------- C C===Return to Caller: C RETURN END