private pure function str_a_I4P(n, no_sign, separator, delimiters) result(str)
Convert integer array to string.
use penf
print "(A)" , str ( n = [ 1_I4P , - 2_I4P ])
use penf
print "(A)" , str ( n = [ 1_I4P , 2_I4P ], no_sign = . true .)
use penf
print "(A)" , str ( n = [ 1_I4P , - 2_I4P ], separator = '|' )
use penf
print "(A)" , str ( n = [ 1_I4P , - 2_I4P ], delimiters = [ '(' , ')' ])
Arguments
Type Intent Optional Attributes Name
integer(kind=I4P),
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_i4p~~CallsGraph
proc~str_a_i4p
str_a_I4P
proc~str_i4p
str_I4P
proc~str_a_i4p->proc~str_i4p
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Called by
proc~~str_a_i4p~~CalledByGraph
proc~str_a_i4p
str_a_I4P
interface~str
str
interface~str->proc~str_a_i4p
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
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
pure function str_a_I4P ( n , no_sign , separator , delimiters ) result ( str )
!< Convert integer array to string.
!<
!<```fortran
!< use penf
!< print "(A)", str(n=[1_I4P, -2_I4P])
!<```
!=> +1,-2 <<<
!<
!<```fortran
!< use penf
!< print "(A)", str(n=[1_I4P, 2_I4P], no_sign=.true.)
!<```
!=> 1,2 <<<
!<
!<```fortran
!< use penf
!< print "(A)", str(n=[1_I4P, -2_I4P], separator='|')
!<```
!=> +1|-2 <<<
!<
!<```fortran
!< use penf
!< print "(A)", str(n=[1_I4P, -2_I4P], delimiters=['(', ')'])
!<```
!=> (+1,-2) <<<
integer ( I4P ), 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 ( DI4P ) :: 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_I4P ( no_sign = no_sign , n = n ( i ))
str = str // sep // trim ( strn )
enddo
else
do i = 1 , size ( n )
strn = str_I4P ( 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_I4P