|
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: