str_a_I8P Function

private pure function str_a_I8P(n, no_sign, separator, delimiters) result(str)

Convert integer array to string.

 use penf
 print "(A)", str(n=[1_I8P, -2_I8P])
 use penf
 print "(A)", str(n=[1_I8P, 2_I8P], no_sign=.true.)
 use penf
 print "(A)", str(n=[1_I8P, -2_I8P], separator='|')
 use penf
 print "(A)", str(n=[1_I8P, -2_I8P], delimiters=['(', ')'])

Arguments

TypeIntentOptionalAttributesName
integer(kind=I8P), 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, intent(in), optional :: delimiters(1:2)

Eventual delimiters of array values.

Return Value character(len=:),allocatable

Returned string containing input number.


Calls

proc~~str_a_i8p~~CallsGraph proc~str_a_i8p str_a_I8P proc~str_i8p str_I8P proc~str_a_i8p->proc~str_i8p

Called by

proc~~str_a_i8p~~CalledByGraph proc~str_a_i8p str_a_I8P interface~str str interface~str->proc~str_a_i8p proc~bctoi_i1p bctoi_I1P proc~bctoi_i1p->interface~str program~volatile_doctest~25 volatile_doctest program~volatile_doctest~25->interface~str program~volatile_doctest~49 volatile_doctest program~volatile_doctest~49->interface~str program~volatile_doctest~17 volatile_doctest program~volatile_doctest~17->interface~str program~volatile_doctest~41 volatile_doctest program~volatile_doctest~41->interface~str program~volatile_doctest~65 volatile_doctest program~volatile_doctest~65->interface~str program~volatile_doctest~73 volatile_doctest program~volatile_doctest~73->interface~str program~volatile_doctest~81 volatile_doctest program~volatile_doctest~81->interface~str program~volatile_doctest~20 volatile_doctest program~volatile_doctest~20->interface~str program~volatile_doctest~28 volatile_doctest program~volatile_doctest~28->interface~str program~volatile_doctest~36 volatile_doctest program~volatile_doctest~36->interface~str program~volatile_doctest~44 volatile_doctest program~volatile_doctest~44->interface~str program~volatile_doctest~52 volatile_doctest program~volatile_doctest~52->interface~str program~volatile_doctest~68 volatile_doctest program~volatile_doctest~68->interface~str program~volatile_doctest~76 volatile_doctest program~volatile_doctest~76->interface~str program~volatile_doctest~84 volatile_doctest program~volatile_doctest~84->interface~str program~volatile_doctest~79 volatile_doctest program~volatile_doctest~79->interface~str program~volatile_doctest~87 volatile_doctest program~volatile_doctest~87->interface~str program~volatile_doctest~3 volatile_doctest program~volatile_doctest~3->interface~str program~volatile_doctest~15 volatile_doctest program~volatile_doctest~15->interface~str program~volatile_doctest~23 volatile_doctest program~volatile_doctest~23->interface~str program~volatile_doctest~31 volatile_doctest program~volatile_doctest~31->interface~str program~volatile_doctest~39 volatile_doctest program~volatile_doctest~39->interface~str program~volatile_doctest~47 volatile_doctest program~volatile_doctest~47->interface~str program~volatile_doctest~55 volatile_doctest program~volatile_doctest~55->interface~str program~volatile_doctest~63 volatile_doctest program~volatile_doctest~63->interface~str program~volatile_doctest~71 volatile_doctest program~volatile_doctest~71->interface~str program~volatile_doctest~91 volatile_doctest program~volatile_doctest~91->interface~str program~volatile_doctest~10 volatile_doctest program~volatile_doctest~10->interface~str program~volatile_doctest~18 volatile_doctest program~volatile_doctest~18->interface~str program~volatile_doctest~34 volatile_doctest program~volatile_doctest~34->interface~str program~volatile_doctest~42 volatile_doctest program~volatile_doctest~42->interface~str program~volatile_doctest~50 volatile_doctest program~volatile_doctest~50->interface~str program~volatile_doctest~74 volatile_doctest program~volatile_doctest~74->interface~str proc~bctoi_i8p bctoi_I8P proc~bctoi_i8p->interface~str program~volatile_doctest~5 volatile_doctest program~volatile_doctest~5->interface~str program~volatile_doctest~45 volatile_doctest program~volatile_doctest~45->interface~str program~volatile_doctest~53 volatile_doctest program~volatile_doctest~53->interface~str program~volatile_doctest~61 volatile_doctest program~volatile_doctest~61->interface~str program~volatile_doctest~69 volatile_doctest program~volatile_doctest~69->interface~str program~volatile_doctest~85 volatile_doctest program~volatile_doctest~85->interface~str program~volatile_doctest~89 volatile_doctest program~volatile_doctest~89->interface~str proc~bctoi_i2p bctoi_I2P proc~bctoi_i2p->interface~str program~volatile_doctest~16 volatile_doctest program~volatile_doctest~16->interface~str program~volatile_doctest~40 volatile_doctest program~volatile_doctest~40->interface~str program~volatile_doctest~48 volatile_doctest program~volatile_doctest~48->interface~str program~volatile_doctest~56 volatile_doctest program~volatile_doctest~56->interface~str program~volatile_doctest~64 volatile_doctest program~volatile_doctest~64->interface~str program~volatile_doctest~80 volatile_doctest program~volatile_doctest~80->interface~str program~volatile_doctest~11 volatile_doctest program~volatile_doctest~11->interface~str program~volatile_doctest~19 volatile_doctest program~volatile_doctest~19->interface~str program~volatile_doctest~43 volatile_doctest program~volatile_doctest~43->interface~str program~volatile_doctest~75 volatile_doctest program~volatile_doctest~75->interface~str program~volatile_doctest~2 volatile_doctest program~volatile_doctest~2->interface~str proc~bctoi_i4p bctoi_I4P proc~bctoi_i4p->interface~str program~volatile_doctest~14 volatile_doctest program~volatile_doctest~14->interface~str program~volatile_doctest~22 volatile_doctest program~volatile_doctest~22->interface~str program~volatile_doctest~38 volatile_doctest program~volatile_doctest~38->interface~str program~volatile_doctest~46 volatile_doctest program~volatile_doctest~46->interface~str program~volatile_doctest~54 volatile_doctest program~volatile_doctest~54->interface~str interface~bcton bcton interface~bcton->proc~bctoi_i1p interface~bcton->proc~bctoi_i8p interface~bcton->proc~bctoi_i2p interface~bcton->proc~bctoi_i4p program~volatile_doctest volatile_doctest program~volatile_doctest->interface~bcton program~volatile_doctest~35 volatile_doctest program~volatile_doctest~35->interface~bcton program~volatile_doctest~37 volatile_doctest program~volatile_doctest~37->interface~bcton program~volatile_doctest~13 volatile_doctest program~volatile_doctest~13->interface~bcton program~volatile_doctest~26 volatile_doctest program~volatile_doctest~26->interface~bcton program~volatile_doctest~82 volatile_doctest program~volatile_doctest~82->interface~bcton program~volatile_doctest~90 volatile_doctest program~volatile_doctest~90->interface~bcton

Contents

Source Code


Source Code

   pure function str_a_I8P(n, no_sign, separator, delimiters) result(str)
   !< Convert integer array to string.
   !<
   !<```fortran
   !< use penf
   !< print "(A)", str(n=[1_I8P, -2_I8P])
   !<```
   !=> +1,-2 <<<
   !<
   !<```fortran
   !< use penf
   !< print "(A)", str(n=[1_I8P, 2_I8P], no_sign=.true.)
   !<```
   !=> 1,2 <<<
   !<
   !<```fortran
   !< use penf
   !< print "(A)", str(n=[1_I8P, -2_I8P], separator='|')
   !<```
   !=> +1|-2 <<<
   !<
   !<```fortran
   !< use penf
   !< print "(A)", str(n=[1_I8P, -2_I8P], delimiters=['(', ')'])
   !<```
   !=> (+1,-2) <<<
   integer(I8P), 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(DI8P)                    :: 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_I8P(no_sign=no_sign, n=n(i))
       str = str//sep//trim(strn)
     enddo
   else
     do i=1,size(n)
       strn = str_I8P(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_I8P