Convert integer array to string.
use penf
print "(A)", str(n=[1_I2P, -2_I2P])
use penf
print "(A)", str(n=[1_I2P, 2_I2P], no_sign=.true.)
use penf
print "(A)", str(n=[1_I2P, -2_I2P], separator='|')
use penf
print "(A)", str(n=[1_I2P, -2_I2P], delimiters=['(', ')'])
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=I2P), | intent(in) | :: | n(:) |
Integer array to be converted. |
||
logical, | intent(in), | optional | :: | no_sign |
Flag for leaving out the sign. |
|
character(len=1), | intent(in), | optional | :: | separator |
Eventual separator of array values. |
|
character(len=*), | intent(in), | optional | :: | delimiters(1:2) |
Eventual delimiters of array values. |
Returned string containing input number.
pure function str_a_I2P(n, no_sign, separator, delimiters) result(str) !< Convert integer array to string. !< !<```fortran !< use penf !< print "(A)", str(n=[1_I2P, -2_I2P]) !<``` !=> +1,-2 <<< !< !<```fortran !< use penf !< print "(A)", str(n=[1_I2P, 2_I2P], no_sign=.true.) !<``` !=> 1,2 <<< !< !<```fortran !< use penf !< print "(A)", str(n=[1_I2P, -2_I2P], separator='|') !<``` !=> +1|-2 <<< !< !<```fortran !< use penf !< print "(A)", str(n=[1_I2P, -2_I2P], delimiters=['(', ')']) !<``` !=> (+1,-2) <<< integer(I2P), intent(in) :: n(:) !< Integer array to be converted. logical, intent(in), optional :: no_sign !< Flag for leaving out the sign. character(1), intent(in), optional :: separator !< Eventual separator of array values. character(*), intent(in), optional :: delimiters(1:2) !< Eventual delimiters of array values. character(len=:), allocatable :: str !< Returned string containing input number. character(DI2P) :: strn !< String containing of element of input array number. character(len=1) :: sep !< Array values separator integer :: i !< Counter. str = '' sep = ',' if(present(separator)) sep = separator if (present(no_sign)) then do i=1,size(n) strn = str_I2P(no_sign=no_sign, n=n(i)) str = str//sep//trim(strn) enddo else do i=1,size(n) strn = str_I2P(n=n(i)) str = str//sep//trim(strn) enddo endif str = trim(str(2:)) if (present(delimiters)) str = delimiters(1)//str//delimiters(2) endfunction str_a_I2P