C Library Functions  - anyscalar_to_string (3)

NAME

anyscalar_to_string(3f) - [M_anything] converts up to twenty standard scalar type values to a string (LICENSE:MIT)

CONTENTS

Synopsis
Description
Options
Returns
Examples
Author
License

SYNOPSIS

Syntax:

     pure function anyscalar_to_string(g0,g1,g2,g3,g4,g5,g6,g7,g8,g9,&
     & ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,sep)
     class(*),intent(in),optional  :: g0,g1,g2,g3,g4,g5,g6,g7,g8,g9
     class(*),intent(in),optional  :: ga,gb,gc,gd,ge,gf,gg,gh,gi,gj
     character(len=*),intent(in),optional :: sep
     character,len=(:),allocatable :: anyscalar_to_string

DESCRIPTION

anyscalar_to_string(3f) builds a space-separated string from up to twenty scalar values.

OPTIONS

g[0-9a-j]
  optional value to print the value of after the message. May be of type INTEGER, LOGICAL, REAL, DOUBLEPRECISION, COMPLEX, or CHARACTER.

Optionally, all the generic values can be single-dimensioned arrays. Currently, mixing scalar arguments and array arguments is not supported.

sep separator string used between values. Defaults to a space.

RETURNS

anyscalar_to_string
  a representation of the input as a string

EXAMPLES

Sample program:

   program demo_anyscalar_to_string
   use M_anything, only : anyscalar_to_string
   implicit none
   character(len=:),allocatable :: pr
   character(len=:),allocatable :: frmt
   integer                      :: biggest

pr=anyscalar_to_string(’HUGE(3f) integers’,huge(0),& &’and real’,huge(0.0),’and double’,huge(0.0d0)) write(*,’(a)’)pr pr=anyscalar_to_string(’real :’,huge(0.0),0.0,12345.6789,tiny(0.0) ) write(*,’(a)’)pr pr=anyscalar_to_string(’doubleprecision :’,huge(0.0d0),0.0d0,12345.6789d0,tiny(0.0d0) ) write(*,’(a)’)pr pr=anyscalar_to_string(’complex :’,cmplx(huge(0.0),tiny(0.0)) ) write(*,’(a)’)pr

! create a format on the fly biggest=huge(0) frmt=anyscalar_to_string(’(*(i’,int(log10(real(biggest))),’:,1x))’,sep=’’) write(*,*)’format=’,frmt

! although it will often work, using anyscalar_to_string(3f) ! in an I/O statement is not recommended ! because if an error occurs anyscalar_to_string(3f) will try ! to write while part of an I/O statement ! which not all compilers can handle and is currently non-standard write(*,*)anyscalar_to_string(’program will now stop’)

end program demo_anyscalar_to_string

Output

   HUGE(3f) integers 2147483647 and real 3.40282347E+38
   and double 1.7976931348623157E+308
   real            : 3.40282347E+38 0.00000000 12345.6787 1.17549435E-38
   doubleprecision : 1.7976931348623157E+308 0.0000000000000000
   12345.678900000001 2.2250738585072014E-308
   complex         : (3.40282347E+38,1.17549435E-38)
    format=(*(i9:,1x))
    program will now stop

AUTHOR

John S. Urban

LICENSE

    MIT


Nemo Release 3.1 anyscalar_to_string (3) July 22, 2023
Generated by manServer 1.08 from 97f89535-aa8a-43d3-bf5f-ac27cdddd614 using man macros.