* * $Id: iwd16cdc.F,v 1.1.1.1 1996/03/08 15:21:53 mclareni Exp $ * * $Log: iwd16cdc.F,v $ * Revision 1.1.1.1 1996/03/08 15:21:53 mclareni * Epio * * #include "epio/pilot.h" #if defined(CERNLIB_CDC) FUNCTION IWD16(A,N) C. ++++++ CDC VERSION +++++ C. FUNCTION RETURNS THE 16 BIT WORD NO. N OF STRING A. C. THE FIRST 16 BIT WORD COINCIDES WITH THE START OF A. DIMENSION A(N) DATA IMWD/60/ DATA IUSWD/16/ C--- MACHINE WORD WHERE USER WORD STARTS NW=(IUSWD*(N-1))/IMWD+1 C--- LEFT SHIFT IN ORDER TO GET USER WORD RIGHT ADJUSTED C--- ( NEGATIVE LEFT SHIFT MEANS RIGHT SHIFT ) KL=N*IUSWD-NW*IMWD M=SHIFT(A(NW),KL) IF(KL.LE.0) GOTO 1 C--- STILL KL BITS IN NEXT MACHINE WORD M=OR(AND(MASK(IMWD-KL),M),SHIFT(AND(MASK(KL),A(NW+1)),KL)) 1 CONTINUE IWD16=AND(COMPL(MASK(IMWD-IUSWD)),M) RETURN END #endif