Silverfrost Forums

Welcome to our forums

How to convert int into character

21 Dec 2009 5:27 #5588

How can I convert integer variable, say (integer :: i) into a character variable (character :: i)?

I know that any integer variable (integer :: i) can be converted into real variable (real :: i) by simply doing REAL(i). Is there any similar thing for integer to character variable conversion?

Many thanks,

pban92

21 Dec 2009 6:03 #5589

character*10 charvar integer integervar

write(charvar,'(i10)') intergervar

21 Dec 2009 9:24 #5595

i remmber doing this during my thesis time. I can't memorize but everything is available online. search the code in Google. 😃

23 Nov 2010 11:17 #7145

Hi pban92,

I have just found your question. Here is a function for your purpose:

!------------------------------------------------------------------------------- CHARACTER*20 FUNCTION cIntToChar(iVal) ! Convert one integer value to a leftbound character string

! COPYRIGHT: Dr. Erwin Kruck, Aalen, Germany, 2010

IMPLICIT NONE INTEGER iVal ! Given integer value INTEGER iNum ! Local iVal (counted down) INTEGER iMinus ! = ONE if iVal negative; else ZERO INTEGER iNull ! Characher value of Zero INTEGER nDigits ! Number of digits (without minus sign) INTEGER I, N, M

iNum = ABS(iVal) iNull = ICHAR('0') cIntToChar = ' '

iMinus = 0 IF (iVal .LT. 0) THEN iMinus = 1 cIntToChar(1:1) = '-' ENDIF nDigits = MAX (1+INT (LOG10 (FLOAT (MAX (1,iNum)))), 1) ! Number of digits

DO I= 1, nDigits N = nDigits -I +1 +iMinus M = iNum / 10 cIntToChar(N:N) = CHAR(iNull + iNum - M * 10) iNum = M ENDDO

RETURN END !-------------------------------------------------------------------------------

A function for a real value can be developed very similar. Erwin

Please login to reply.