| 
| character(string) function  | roundnum (num) | 
|   | 
Definition at line 86 of file dc_string.f90.
 
◆ roundnum()
  
  
      
        
          | character(string) function dc_string::roundnum::roundnum  | 
          ( | 
          character(*), intent(in)  | 
          num | ) | 
           | 
         
       
   | 
  
private   | 
  
 
Definition at line 1408 of file dc_string.f90.
 1412     character(*), 
intent(in):: num
  1413     character(STRING):: nrv, enrv
  1414     integer:: i, moving_up, nrvi, dig, zero_stream
  1419     if ( scan(
'.', trim(num) ) == 0  ) 
then  1429     i = scan(nrv, 
"eE", back=.true.)
  1433     elseif ( i == 1 ) 
then  1442     if ( index( trim( nrv ), 
'.') - len_trim( nrv ) < -7 ) 
then  1443       do while ( index(
'567890.', nrv(len_trim(nrv):len_trim(nrv)) ) == 0 )
  1444         if ( len_trim(nrv) < 2 ) 
exit  1445         nrv = nrv(1:len_trim(nrv)-1)
  1453     if ( index( trim( nrv ), 
'.') - len_trim( nrv ) < -7 ) 
then  1454       dig = index( trim( nrv ), 
'.') + 1
  1456       do while ( dig < len_trim( nrv ) )
  1457         if ( nrv(dig:dig) == 
"0" ) 
then  1458           zero_stream = zero_stream + 1
  1462         if ( zero_stream > 7 ) 
then  1463           nrv(dig:len_trim(nrv)) = 
'0'  1474     if ( index( trim( nrv ), 
'.') /= 0 ) 
then  1475       do while ( index(
'123456789.', nrv(len_trim(nrv):len_trim(nrv)) ) == 0 )
  1476         if ( len_trim(nrv) < 2 ) 
exit  1477         nrv = nrv(1:len_trim(nrv)-1)
  1486     if ( index( trim( nrv ), 
'.') - len_trim( nrv ) < -7 ) 
then  1487       do while ( index(
'12345690.', nrv(len_trim(nrv):len_trim(nrv)) ) == 0 )
  1488         if ( len_trim(nrv) < 2 ) 
exit  1489         nrv = nrv(1:len_trim(nrv)-1)
  1498     if ( moving_up > 0 ) 
then  1499       do while ( index(
'012345678.', nrv(len_trim(nrv):len_trim(nrv)) ) == 0 )
  1500         if ( len_trim(nrv) < 2 ) 
exit  1501         nrv = nrv(1:len_trim(nrv)-1)
  1506     do while ( moving_up > 0 .and. i > 0 )
  1507       if ( index(
'.', nrv(i:i)) /= 0 ) 
then  1511       nrvi = 
stoi( nrv(i:i) ) + moving_up
  1513       if ( nrvi < 10 ) 
then  1514         nrv(i:i) = trim( 
tochar( nrvi ) )
  1526       if ( len_trim(nrv) < 2 ) 
exit  1527       nrv = nrv(1:len_trim(nrv)-1)
  1534     if ( index( trim( nrv ), 
'.') /= 0 ) 
then  1535       do while ( index(
'123456789.', nrv(len_trim(nrv):len_trim(nrv)) ) == 0 )
  1536         if ( len_trim(nrv) < 2 ) 
exit  1537         nrv = nrv(1:len_trim(nrv)-1)
  1544     if ( len_trim(enrv) > 0 ) 
then  1545       nrv = trim(nrv) // enrv
 
 
 
 
The documentation for this interface was generated from the following file: