* * $Id: charn.F,v 1.1.1.1 1996/02/15 17:47:50 mclareni Exp $ * * $Log: charn.F,v $ * Revision 1.1.1.1 1996/02/15 17:47:50 mclareni * Kernlib * * #include "kernbit/pilot.h" CHARACTER*(*) FUNCTION CHARN(N) * * CERN PROGLIB# M443 CHARN .VERSION KERNBIT 1.07 910711 * Author: Miguel Marquina 91/07/11 * * Build CHARACTER CHARN from INTEGER N * * Mods Date Comments * CHARACTER*1 NULL,MINUS DATA NULL/'0'/,MINUS/'-'/ ** LN=LEN(CHARN) CHARN=' ' NZERO=ICHAR(NULL) NP=1 IS=ISIGN(1,N) NB=ABS(N) IP=LN+1 10 CONTINUE NDIGIT=MOD(NB,10) IP=IP-1 IF(IP.LT.1) GOTO 20 CHARN(IP:IP)=CHAR(NDIGIT+NZERO) NB=NB/10 IF(NB.GT.0) GOTO 10 IF(IS.LT.0) THEN IP=IP-1 IF(IP.LT.1) GOTO 20 CHARN(IP:IP)=MINUS ENDIF RETURN 20 CONTINUE CHARN='*' PRINT 1000,N,LN 1000 FORMAT(' **** M443 CHARN: The number ',I10,' cannot be stored'/ + ' in CHARN (declared length:',I4,')') END