compact_real_string Subroutine

private pure subroutine compact_real_string(string)

Compact a string representing a real number, so that the same value is displayed with fewer characters.

Note

No need to add doctest: this is tested by a lot of doctests of other TBPs.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: string

string representation of a real number.


Called by

proc~~compact_real_string~~CalledByGraph proc~compact_real_string compact_real_string proc~str_r16p str_R16P proc~str_r16p->proc~compact_real_string proc~str_r4p str_R4P proc~str_r4p->proc~compact_real_string proc~str_r8p str_R8P proc~str_r8p->proc~compact_real_string interface~str str interface~str->proc~str_r4p interface~str->proc~str_r8p proc~str_a_r4p str_a_R4P interface~str->proc~str_a_r4p proc~str_a_r8p str_a_R8P interface~str->proc~str_a_r8p proc~str_a_r16p str_a_R16P proc~str_a_r16p->proc~str_r16p proc~str_a_r4p->proc~str_r4p proc~str_a_r8p->proc~str_r8p proc~alloc_var_i1p_1d alloc_var_I1P_1D proc~alloc_var_i1p_1d->interface~str proc~alloc_var_i1p_2d alloc_var_I1P_2D proc~alloc_var_i1p_2d->interface~str proc~alloc_var_i1p_3d alloc_var_I1P_3D proc~alloc_var_i1p_3d->interface~str proc~alloc_var_i1p_4d alloc_var_I1P_4D proc~alloc_var_i1p_4d->interface~str proc~alloc_var_i1p_5d alloc_var_I1P_5D proc~alloc_var_i1p_5d->interface~str proc~alloc_var_i1p_6d alloc_var_I1P_6D proc~alloc_var_i1p_6d->interface~str proc~alloc_var_i1p_7d alloc_var_I1P_7D proc~alloc_var_i1p_7d->interface~str proc~alloc_var_i2p_1d alloc_var_I2P_1D proc~alloc_var_i2p_1d->interface~str proc~alloc_var_i2p_2d alloc_var_I2P_2D proc~alloc_var_i2p_2d->interface~str proc~alloc_var_i2p_3d alloc_var_I2P_3D proc~alloc_var_i2p_3d->interface~str proc~alloc_var_i2p_4d alloc_var_I2P_4D proc~alloc_var_i2p_4d->interface~str proc~alloc_var_i2p_5d alloc_var_I2P_5D proc~alloc_var_i2p_5d->interface~str proc~alloc_var_i2p_6d alloc_var_I2P_6D proc~alloc_var_i2p_6d->interface~str proc~alloc_var_i2p_7d alloc_var_I2P_7D proc~alloc_var_i2p_7d->interface~str proc~alloc_var_i4p_1d alloc_var_I4P_1D proc~alloc_var_i4p_1d->interface~str proc~alloc_var_i4p_2d alloc_var_I4P_2D proc~alloc_var_i4p_2d->interface~str proc~alloc_var_i4p_3d alloc_var_I4P_3D proc~alloc_var_i4p_3d->interface~str proc~alloc_var_i4p_4d alloc_var_I4P_4D proc~alloc_var_i4p_4d->interface~str proc~alloc_var_i4p_5d alloc_var_I4P_5D proc~alloc_var_i4p_5d->interface~str proc~alloc_var_i4p_6d alloc_var_I4P_6D proc~alloc_var_i4p_6d->interface~str proc~alloc_var_i4p_7d alloc_var_I4P_7D proc~alloc_var_i4p_7d->interface~str proc~alloc_var_i8p_1d alloc_var_I8P_1D proc~alloc_var_i8p_1d->interface~str proc~alloc_var_i8p_2d alloc_var_I8P_2D proc~alloc_var_i8p_2d->interface~str proc~alloc_var_i8p_3d alloc_var_I8P_3D proc~alloc_var_i8p_3d->interface~str proc~alloc_var_i8p_4d alloc_var_I8P_4D proc~alloc_var_i8p_4d->interface~str proc~alloc_var_i8p_5d alloc_var_I8P_5D proc~alloc_var_i8p_5d->interface~str proc~alloc_var_i8p_6d alloc_var_I8P_6D proc~alloc_var_i8p_6d->interface~str proc~alloc_var_i8p_7d alloc_var_I8P_7D proc~alloc_var_i8p_7d->interface~str proc~alloc_var_r16p_1d alloc_var_R16P_1D proc~alloc_var_r16p_1d->interface~str proc~alloc_var_r16p_2d alloc_var_R16P_2D proc~alloc_var_r16p_2d->interface~str proc~alloc_var_r16p_3d alloc_var_R16P_3D proc~alloc_var_r16p_3d->interface~str proc~alloc_var_r16p_4d alloc_var_R16P_4D proc~alloc_var_r16p_4d->interface~str proc~alloc_var_r16p_5d alloc_var_R16P_5D proc~alloc_var_r16p_5d->interface~str proc~alloc_var_r16p_6d alloc_var_R16P_6D proc~alloc_var_r16p_6d->interface~str proc~alloc_var_r16p_7d alloc_var_R16P_7D proc~alloc_var_r16p_7d->interface~str proc~alloc_var_r4p_1d alloc_var_R4P_1D proc~alloc_var_r4p_1d->interface~str proc~alloc_var_r4p_2d alloc_var_R4P_2D proc~alloc_var_r4p_2d->interface~str proc~alloc_var_r4p_3d alloc_var_R4P_3D proc~alloc_var_r4p_3d->interface~str proc~alloc_var_r4p_4d alloc_var_R4P_4D proc~alloc_var_r4p_4d->interface~str proc~alloc_var_r4p_5d alloc_var_R4P_5D proc~alloc_var_r4p_5d->interface~str proc~alloc_var_r4p_6d alloc_var_R4P_6D proc~alloc_var_r4p_6d->interface~str proc~alloc_var_r4p_7d alloc_var_R4P_7D proc~alloc_var_r4p_7d->interface~str proc~alloc_var_r8p_1d alloc_var_R8P_1D proc~alloc_var_r8p_1d->interface~str proc~alloc_var_r8p_2d alloc_var_R8P_2D proc~alloc_var_r8p_2d->interface~str proc~alloc_var_r8p_3d alloc_var_R8P_3D proc~alloc_var_r8p_3d->interface~str proc~alloc_var_r8p_4d alloc_var_R8P_4D proc~alloc_var_r8p_4d->interface~str proc~alloc_var_r8p_5d alloc_var_R8P_5D proc~alloc_var_r8p_5d->interface~str proc~alloc_var_r8p_6d alloc_var_R8P_6D proc~alloc_var_r8p_6d->interface~str proc~alloc_var_r8p_7d alloc_var_R8P_7D proc~alloc_var_r8p_7d->interface~str proc~bctoi_i1p bctoi_I1P proc~bctoi_i1p->interface~str proc~bctoi_i2p bctoi_I2P proc~bctoi_i2p->interface~str proc~bctoi_i4p bctoi_I4P proc~bctoi_i4p->interface~str proc~bctoi_i8p bctoi_I8P proc~bctoi_i8p->interface~str program~volatile_doctest~10 volatile_doctest program~volatile_doctest~10->interface~str program~volatile_doctest~107 volatile_doctest program~volatile_doctest~107->interface~str program~volatile_doctest~109 volatile_doctest program~volatile_doctest~109->interface~str program~volatile_doctest~112 volatile_doctest program~volatile_doctest~112->interface~str program~volatile_doctest~113 volatile_doctest program~volatile_doctest~113->interface~str program~volatile_doctest~121 volatile_doctest program~volatile_doctest~121->interface~str program~volatile_doctest~126 volatile_doctest program~volatile_doctest~126->interface~str program~volatile_doctest~13 volatile_doctest program~volatile_doctest~13->interface~str program~volatile_doctest~135 volatile_doctest program~volatile_doctest~135->interface~str program~volatile_doctest~136 volatile_doctest program~volatile_doctest~136->interface~str program~volatile_doctest~138 volatile_doctest program~volatile_doctest~138->interface~str program~volatile_doctest~14 volatile_doctest program~volatile_doctest~14->interface~str program~volatile_doctest~140 volatile_doctest program~volatile_doctest~140->interface~str program~volatile_doctest~141 volatile_doctest program~volatile_doctest~141->interface~str program~volatile_doctest~151 volatile_doctest program~volatile_doctest~151->interface~str program~volatile_doctest~154 volatile_doctest program~volatile_doctest~154->interface~str program~volatile_doctest~159 volatile_doctest program~volatile_doctest~159->interface~str program~volatile_doctest~17 volatile_doctest program~volatile_doctest~17->interface~str program~volatile_doctest~170 volatile_doctest program~volatile_doctest~170->interface~str program~volatile_doctest~171 volatile_doctest program~volatile_doctest~171->interface~str program~volatile_doctest~174 volatile_doctest program~volatile_doctest~174->interface~str program~volatile_doctest~176 volatile_doctest program~volatile_doctest~176->interface~str program~volatile_doctest~179 volatile_doctest program~volatile_doctest~179->interface~str program~volatile_doctest~18 volatile_doctest program~volatile_doctest~18->interface~str program~volatile_doctest~181 volatile_doctest program~volatile_doctest~181->interface~str program~volatile_doctest~187 volatile_doctest program~volatile_doctest~187->interface~str program~volatile_doctest~194 volatile_doctest program~volatile_doctest~194->interface~str program~volatile_doctest~202 volatile_doctest program~volatile_doctest~202->interface~str program~volatile_doctest~203 volatile_doctest program~volatile_doctest~203->interface~str program~volatile_doctest~205 volatile_doctest program~volatile_doctest~205->interface~str program~volatile_doctest~207 volatile_doctest program~volatile_doctest~207->interface~str program~volatile_doctest~208 volatile_doctest program~volatile_doctest~208->interface~str program~volatile_doctest~26 volatile_doctest program~volatile_doctest~26->interface~str program~volatile_doctest~27 volatile_doctest program~volatile_doctest~27->interface~str program~volatile_doctest~29 volatile_doctest program~volatile_doctest~29->interface~str program~volatile_doctest~3 volatile_doctest program~volatile_doctest~3->interface~str program~volatile_doctest~32 volatile_doctest program~volatile_doctest~32->interface~str program~volatile_doctest~33 volatile_doctest program~volatile_doctest~33->interface~str program~volatile_doctest~36 volatile_doctest program~volatile_doctest~36->interface~str program~volatile_doctest~39 volatile_doctest program~volatile_doctest~39->interface~str program~volatile_doctest~48 volatile_doctest program~volatile_doctest~48->interface~str program~volatile_doctest~58 volatile_doctest program~volatile_doctest~58->interface~str program~volatile_doctest~61 volatile_doctest program~volatile_doctest~61->interface~str program~volatile_doctest~65 volatile_doctest program~volatile_doctest~65->interface~str program~volatile_doctest~68 volatile_doctest program~volatile_doctest~68->interface~str program~volatile_doctest~75 volatile_doctest program~volatile_doctest~75->interface~str program~volatile_doctest~76 volatile_doctest program~volatile_doctest~76->interface~str program~volatile_doctest~77 volatile_doctest program~volatile_doctest~77->interface~str program~volatile_doctest~80 volatile_doctest program~volatile_doctest~80->interface~str program~volatile_doctest~81 volatile_doctest program~volatile_doctest~81->interface~str program~volatile_doctest~86 volatile_doctest program~volatile_doctest~86->interface~str program~volatile_doctest~89 volatile_doctest program~volatile_doctest~89->interface~str program~volatile_doctest~91 volatile_doctest program~volatile_doctest~91->interface~str program~volatile_doctest~96 volatile_doctest program~volatile_doctest~96->interface~str program~volatile_doctest~97 volatile_doctest program~volatile_doctest~97->interface~str program~volatile_doctest~99 volatile_doctest program~volatile_doctest~99->interface~str interface~allocate_variable allocate_variable interface~allocate_variable->proc~alloc_var_i1p_1d interface~allocate_variable->proc~alloc_var_i1p_2d interface~allocate_variable->proc~alloc_var_i1p_3d interface~allocate_variable->proc~alloc_var_i1p_4d interface~allocate_variable->proc~alloc_var_i1p_5d interface~allocate_variable->proc~alloc_var_i1p_6d interface~allocate_variable->proc~alloc_var_i1p_7d interface~allocate_variable->proc~alloc_var_i2p_1d interface~allocate_variable->proc~alloc_var_i2p_2d interface~allocate_variable->proc~alloc_var_i2p_3d interface~allocate_variable->proc~alloc_var_i2p_4d interface~allocate_variable->proc~alloc_var_i2p_5d interface~allocate_variable->proc~alloc_var_i2p_6d interface~allocate_variable->proc~alloc_var_i2p_7d interface~allocate_variable->proc~alloc_var_i4p_1d interface~allocate_variable->proc~alloc_var_i4p_2d interface~allocate_variable->proc~alloc_var_i4p_3d interface~allocate_variable->proc~alloc_var_i4p_4d interface~allocate_variable->proc~alloc_var_i4p_5d interface~allocate_variable->proc~alloc_var_i4p_6d interface~allocate_variable->proc~alloc_var_i4p_7d interface~allocate_variable->proc~alloc_var_i8p_1d interface~allocate_variable->proc~alloc_var_i8p_2d interface~allocate_variable->proc~alloc_var_i8p_3d interface~allocate_variable->proc~alloc_var_i8p_4d interface~allocate_variable->proc~alloc_var_i8p_5d interface~allocate_variable->proc~alloc_var_i8p_6d interface~allocate_variable->proc~alloc_var_i8p_7d interface~allocate_variable->proc~alloc_var_r4p_1d interface~allocate_variable->proc~alloc_var_r4p_2d interface~allocate_variable->proc~alloc_var_r4p_3d interface~allocate_variable->proc~alloc_var_r4p_4d interface~allocate_variable->proc~alloc_var_r4p_5d interface~allocate_variable->proc~alloc_var_r4p_6d interface~allocate_variable->proc~alloc_var_r4p_7d interface~allocate_variable->proc~alloc_var_r8p_1d interface~allocate_variable->proc~alloc_var_r8p_2d interface~allocate_variable->proc~alloc_var_r8p_3d interface~allocate_variable->proc~alloc_var_r8p_4d interface~allocate_variable->proc~alloc_var_r8p_5d interface~allocate_variable->proc~alloc_var_r8p_6d interface~allocate_variable->proc~alloc_var_r8p_7d interface~bcton bcton interface~bcton->proc~bctoi_i1p interface~bcton->proc~bctoi_i2p interface~bcton->proc~bctoi_i4p interface~bcton->proc~bctoi_i8p proc~assign_allocatable_i1p_1d assign_allocatable_I1P_1D proc~assign_allocatable_i1p_1d->interface~allocate_variable proc~assign_allocatable_i1p_2d assign_allocatable_I1P_2D proc~assign_allocatable_i1p_2d->interface~allocate_variable proc~assign_allocatable_i1p_3d assign_allocatable_I1P_3D proc~assign_allocatable_i1p_3d->interface~allocate_variable proc~assign_allocatable_i1p_4d assign_allocatable_I1P_4D proc~assign_allocatable_i1p_4d->interface~allocate_variable proc~assign_allocatable_i1p_5d assign_allocatable_I1P_5D proc~assign_allocatable_i1p_5d->interface~allocate_variable proc~assign_allocatable_i1p_6d assign_allocatable_I1P_6D proc~assign_allocatable_i1p_6d->interface~allocate_variable proc~assign_allocatable_i1p_7d assign_allocatable_I1P_7D proc~assign_allocatable_i1p_7d->interface~allocate_variable proc~assign_allocatable_i2p_1d assign_allocatable_I2P_1D proc~assign_allocatable_i2p_1d->interface~allocate_variable proc~assign_allocatable_i2p_2d assign_allocatable_I2P_2D proc~assign_allocatable_i2p_2d->interface~allocate_variable proc~assign_allocatable_i2p_3d assign_allocatable_I2P_3D proc~assign_allocatable_i2p_3d->interface~allocate_variable proc~assign_allocatable_i2p_4d assign_allocatable_I2P_4D proc~assign_allocatable_i2p_4d->interface~allocate_variable proc~assign_allocatable_i2p_5d assign_allocatable_I2P_5D proc~assign_allocatable_i2p_5d->interface~allocate_variable proc~assign_allocatable_i2p_6d assign_allocatable_I2P_6D proc~assign_allocatable_i2p_6d->interface~allocate_variable proc~assign_allocatable_i2p_7d assign_allocatable_I2P_7D proc~assign_allocatable_i2p_7d->interface~allocate_variable proc~assign_allocatable_i4p_1d assign_allocatable_I4P_1D proc~assign_allocatable_i4p_1d->interface~allocate_variable proc~assign_allocatable_i4p_2d assign_allocatable_I4P_2D proc~assign_allocatable_i4p_2d->interface~allocate_variable proc~assign_allocatable_i4p_3d assign_allocatable_I4P_3D proc~assign_allocatable_i4p_3d->interface~allocate_variable proc~assign_allocatable_i4p_4d assign_allocatable_I4P_4D proc~assign_allocatable_i4p_4d->interface~allocate_variable proc~assign_allocatable_i4p_5d assign_allocatable_I4P_5D proc~assign_allocatable_i4p_5d->interface~allocate_variable proc~assign_allocatable_i4p_6d assign_allocatable_I4P_6D proc~assign_allocatable_i4p_6d->interface~allocate_variable proc~assign_allocatable_i4p_7d assign_allocatable_I4P_7D proc~assign_allocatable_i4p_7d->interface~allocate_variable proc~assign_allocatable_i8p_1d assign_allocatable_I8P_1D proc~assign_allocatable_i8p_1d->interface~allocate_variable proc~assign_allocatable_i8p_2d assign_allocatable_I8P_2D proc~assign_allocatable_i8p_2d->interface~allocate_variable proc~assign_allocatable_i8p_3d assign_allocatable_I8P_3D proc~assign_allocatable_i8p_3d->interface~allocate_variable proc~assign_allocatable_i8p_4d assign_allocatable_I8P_4D proc~assign_allocatable_i8p_4d->interface~allocate_variable proc~assign_allocatable_i8p_5d assign_allocatable_I8P_5D proc~assign_allocatable_i8p_5d->interface~allocate_variable proc~assign_allocatable_i8p_6d assign_allocatable_I8P_6D proc~assign_allocatable_i8p_6d->interface~allocate_variable proc~assign_allocatable_i8p_7d assign_allocatable_I8P_7D proc~assign_allocatable_i8p_7d->interface~allocate_variable proc~assign_allocatable_r16p_1d assign_allocatable_R16P_1D proc~assign_allocatable_r16p_1d->interface~allocate_variable proc~assign_allocatable_r16p_2d assign_allocatable_R16P_2D proc~assign_allocatable_r16p_2d->interface~allocate_variable proc~assign_allocatable_r16p_3d assign_allocatable_R16P_3D proc~assign_allocatable_r16p_3d->interface~allocate_variable proc~assign_allocatable_r16p_4d assign_allocatable_R16P_4D proc~assign_allocatable_r16p_4d->interface~allocate_variable proc~assign_allocatable_r16p_5d assign_allocatable_R16P_5D proc~assign_allocatable_r16p_5d->interface~allocate_variable proc~assign_allocatable_r16p_6d assign_allocatable_R16P_6D proc~assign_allocatable_r16p_6d->interface~allocate_variable proc~assign_allocatable_r16p_7d assign_allocatable_R16P_7D proc~assign_allocatable_r16p_7d->interface~allocate_variable proc~assign_allocatable_r4p_1d assign_allocatable_R4P_1D proc~assign_allocatable_r4p_1d->interface~allocate_variable proc~assign_allocatable_r4p_2d assign_allocatable_R4P_2D proc~assign_allocatable_r4p_2d->interface~allocate_variable proc~assign_allocatable_r4p_3d assign_allocatable_R4P_3D proc~assign_allocatable_r4p_3d->interface~allocate_variable proc~assign_allocatable_r4p_4d assign_allocatable_R4P_4D proc~assign_allocatable_r4p_4d->interface~allocate_variable proc~assign_allocatable_r4p_5d assign_allocatable_R4P_5D proc~assign_allocatable_r4p_5d->interface~allocate_variable proc~assign_allocatable_r4p_6d assign_allocatable_R4P_6D proc~assign_allocatable_r4p_6d->interface~allocate_variable proc~assign_allocatable_r4p_7d assign_allocatable_R4P_7D proc~assign_allocatable_r4p_7d->interface~allocate_variable proc~assign_allocatable_r8p_1d assign_allocatable_R8P_1D proc~assign_allocatable_r8p_1d->interface~allocate_variable proc~assign_allocatable_r8p_2d assign_allocatable_R8P_2D proc~assign_allocatable_r8p_2d->interface~allocate_variable proc~assign_allocatable_r8p_3d assign_allocatable_R8P_3D proc~assign_allocatable_r8p_3d->interface~allocate_variable proc~assign_allocatable_r8p_4d assign_allocatable_R8P_4D proc~assign_allocatable_r8p_4d->interface~allocate_variable proc~assign_allocatable_r8p_5d assign_allocatable_R8P_5D proc~assign_allocatable_r8p_5d->interface~allocate_variable proc~assign_allocatable_r8p_6d assign_allocatable_R8P_6D proc~assign_allocatable_r8p_6d->interface~allocate_variable proc~assign_allocatable_r8p_7d assign_allocatable_R8P_7D proc~assign_allocatable_r8p_7d->interface~allocate_variable program~volatile_doctest~106 volatile_doctest program~volatile_doctest~106->interface~allocate_variable program~volatile_doctest~118 volatile_doctest program~volatile_doctest~118->interface~bcton program~volatile_doctest~128 volatile_doctest program~volatile_doctest~128->interface~allocate_variable program~volatile_doctest~132 volatile_doctest program~volatile_doctest~132->interface~allocate_variable program~volatile_doctest~133 volatile_doctest program~volatile_doctest~133->interface~bcton program~volatile_doctest~139 volatile_doctest program~volatile_doctest~139->interface~allocate_variable program~volatile_doctest~147 volatile_doctest program~volatile_doctest~147->interface~allocate_variable program~volatile_doctest~148 volatile_doctest program~volatile_doctest~148->interface~bcton program~volatile_doctest~15 volatile_doctest program~volatile_doctest~15->interface~allocate_variable program~volatile_doctest~152 volatile_doctest program~volatile_doctest~152->interface~bcton program~volatile_doctest~155 volatile_doctest program~volatile_doctest~155->interface~allocate_variable program~volatile_doctest~156 volatile_doctest program~volatile_doctest~156->interface~allocate_variable program~volatile_doctest~157 volatile_doctest program~volatile_doctest~157->interface~allocate_variable program~volatile_doctest~158 volatile_doctest program~volatile_doctest~158->interface~allocate_variable program~volatile_doctest~16 volatile_doctest program~volatile_doctest~16->interface~allocate_variable program~volatile_doctest~161 volatile_doctest program~volatile_doctest~161->interface~allocate_variable program~volatile_doctest~164 volatile_doctest program~volatile_doctest~164->interface~allocate_variable program~volatile_doctest~165 volatile_doctest program~volatile_doctest~165->interface~allocate_variable program~volatile_doctest~167 volatile_doctest program~volatile_doctest~167->interface~allocate_variable program~volatile_doctest~172 volatile_doctest program~volatile_doctest~172->interface~allocate_variable program~volatile_doctest~175 volatile_doctest program~volatile_doctest~175->interface~allocate_variable program~volatile_doctest~180 volatile_doctest program~volatile_doctest~180->interface~allocate_variable program~volatile_doctest~183 volatile_doctest program~volatile_doctest~183->interface~allocate_variable program~volatile_doctest~185 volatile_doctest program~volatile_doctest~185->interface~allocate_variable program~volatile_doctest~188 volatile_doctest program~volatile_doctest~188->interface~allocate_variable program~volatile_doctest~190 volatile_doctest program~volatile_doctest~190->interface~bcton program~volatile_doctest~191 volatile_doctest program~volatile_doctest~191->interface~allocate_variable program~volatile_doctest~197 volatile_doctest program~volatile_doctest~197->interface~allocate_variable program~volatile_doctest~198 volatile_doctest program~volatile_doctest~198->interface~allocate_variable program~volatile_doctest~2 volatile_doctest program~volatile_doctest~2->interface~allocate_variable program~volatile_doctest~200 volatile_doctest program~volatile_doctest~200->interface~allocate_variable program~volatile_doctest~204 volatile_doctest program~volatile_doctest~204->interface~allocate_variable program~volatile_doctest~206 volatile_doctest program~volatile_doctest~206->interface~bcton program~volatile_doctest~25 volatile_doctest program~volatile_doctest~25->interface~allocate_variable program~volatile_doctest~30 volatile_doctest program~volatile_doctest~30->interface~allocate_variable program~volatile_doctest~31 volatile_doctest program~volatile_doctest~31->interface~allocate_variable program~volatile_doctest~34 volatile_doctest program~volatile_doctest~34->interface~allocate_variable program~volatile_doctest~40 volatile_doctest program~volatile_doctest~40->interface~allocate_variable program~volatile_doctest~41 volatile_doctest program~volatile_doctest~41->interface~allocate_variable program~volatile_doctest~42 volatile_doctest program~volatile_doctest~42->interface~allocate_variable program~volatile_doctest~43 volatile_doctest program~volatile_doctest~43->interface~allocate_variable program~volatile_doctest~47 volatile_doctest program~volatile_doctest~47->interface~allocate_variable program~volatile_doctest~5 volatile_doctest program~volatile_doctest~5->interface~allocate_variable program~volatile_doctest~50 volatile_doctest program~volatile_doctest~50->interface~allocate_variable program~volatile_doctest~54 volatile_doctest program~volatile_doctest~54->interface~allocate_variable program~volatile_doctest~63 volatile_doctest program~volatile_doctest~63->interface~allocate_variable program~volatile_doctest~67 volatile_doctest program~volatile_doctest~67->interface~allocate_variable program~volatile_doctest~7 volatile_doctest program~volatile_doctest~7->interface~allocate_variable program~volatile_doctest~71 volatile_doctest program~volatile_doctest~71->interface~allocate_variable program~volatile_doctest~72 volatile_doctest program~volatile_doctest~72->interface~bcton program~volatile_doctest~8 volatile_doctest program~volatile_doctest~8->interface~allocate_variable program~volatile_doctest~82 volatile_doctest program~volatile_doctest~82->interface~allocate_variable program~volatile_doctest~88 volatile_doctest program~volatile_doctest~88->interface~allocate_variable program~volatile_doctest~93 volatile_doctest program~volatile_doctest~93->interface~allocate_variable program~volatile_doctest~94 volatile_doctest program~volatile_doctest~94->interface~allocate_variable program~volatile_doctest~98 volatile_doctest program~volatile_doctest~98->interface~allocate_variable interface~assign_allocatable assign_allocatable interface~assign_allocatable->proc~assign_allocatable_i1p_1d interface~assign_allocatable->proc~assign_allocatable_i1p_2d interface~assign_allocatable->proc~assign_allocatable_i1p_3d interface~assign_allocatable->proc~assign_allocatable_i1p_4d interface~assign_allocatable->proc~assign_allocatable_i1p_5d interface~assign_allocatable->proc~assign_allocatable_i1p_6d interface~assign_allocatable->proc~assign_allocatable_i1p_7d interface~assign_allocatable->proc~assign_allocatable_i2p_1d interface~assign_allocatable->proc~assign_allocatable_i2p_2d interface~assign_allocatable->proc~assign_allocatable_i2p_3d interface~assign_allocatable->proc~assign_allocatable_i2p_4d interface~assign_allocatable->proc~assign_allocatable_i2p_5d interface~assign_allocatable->proc~assign_allocatable_i2p_6d interface~assign_allocatable->proc~assign_allocatable_i2p_7d interface~assign_allocatable->proc~assign_allocatable_i4p_1d interface~assign_allocatable->proc~assign_allocatable_i4p_2d interface~assign_allocatable->proc~assign_allocatable_i4p_3d interface~assign_allocatable->proc~assign_allocatable_i4p_4d interface~assign_allocatable->proc~assign_allocatable_i4p_5d interface~assign_allocatable->proc~assign_allocatable_i4p_6d interface~assign_allocatable->proc~assign_allocatable_i4p_7d interface~assign_allocatable->proc~assign_allocatable_i8p_1d interface~assign_allocatable->proc~assign_allocatable_i8p_2d interface~assign_allocatable->proc~assign_allocatable_i8p_3d interface~assign_allocatable->proc~assign_allocatable_i8p_4d interface~assign_allocatable->proc~assign_allocatable_i8p_5d interface~assign_allocatable->proc~assign_allocatable_i8p_6d interface~assign_allocatable->proc~assign_allocatable_i8p_7d interface~assign_allocatable->proc~assign_allocatable_r4p_1d interface~assign_allocatable->proc~assign_allocatable_r4p_2d interface~assign_allocatable->proc~assign_allocatable_r4p_3d interface~assign_allocatable->proc~assign_allocatable_r4p_4d interface~assign_allocatable->proc~assign_allocatable_r4p_5d interface~assign_allocatable->proc~assign_allocatable_r4p_6d interface~assign_allocatable->proc~assign_allocatable_r4p_7d interface~assign_allocatable->proc~assign_allocatable_r8p_1d interface~assign_allocatable->proc~assign_allocatable_r8p_2d interface~assign_allocatable->proc~assign_allocatable_r8p_3d interface~assign_allocatable->proc~assign_allocatable_r8p_4d interface~assign_allocatable->proc~assign_allocatable_r8p_5d interface~assign_allocatable->proc~assign_allocatable_r8p_6d interface~assign_allocatable->proc~assign_allocatable_r8p_7d program~volatile_doctest volatile_doctest program~volatile_doctest->interface~assign_allocatable program~volatile_doctest~100 volatile_doctest program~volatile_doctest~100->interface~assign_allocatable program~volatile_doctest~101 volatile_doctest program~volatile_doctest~101->interface~assign_allocatable program~volatile_doctest~102 volatile_doctest program~volatile_doctest~102->interface~assign_allocatable program~volatile_doctest~108 volatile_doctest program~volatile_doctest~108->interface~assign_allocatable program~volatile_doctest~110 volatile_doctest program~volatile_doctest~110->interface~assign_allocatable program~volatile_doctest~114 volatile_doctest program~volatile_doctest~114->interface~assign_allocatable program~volatile_doctest~117 volatile_doctest program~volatile_doctest~117->interface~assign_allocatable program~volatile_doctest~12 volatile_doctest program~volatile_doctest~12->interface~assign_allocatable program~volatile_doctest~120 volatile_doctest program~volatile_doctest~120->interface~assign_allocatable program~volatile_doctest~123 volatile_doctest program~volatile_doctest~123->interface~assign_allocatable program~volatile_doctest~129 volatile_doctest program~volatile_doctest~129->interface~assign_allocatable program~volatile_doctest~131 volatile_doctest program~volatile_doctest~131->interface~assign_allocatable program~volatile_doctest~134 volatile_doctest program~volatile_doctest~134->interface~assign_allocatable program~volatile_doctest~142 volatile_doctest program~volatile_doctest~142->interface~assign_allocatable program~volatile_doctest~144 volatile_doctest program~volatile_doctest~144->interface~assign_allocatable program~volatile_doctest~145 volatile_doctest program~volatile_doctest~145->interface~assign_allocatable program~volatile_doctest~146 volatile_doctest program~volatile_doctest~146->interface~assign_allocatable program~volatile_doctest~149 volatile_doctest program~volatile_doctest~149->interface~assign_allocatable program~volatile_doctest~153 volatile_doctest program~volatile_doctest~153->interface~assign_allocatable program~volatile_doctest~160 volatile_doctest program~volatile_doctest~160->interface~assign_allocatable program~volatile_doctest~166 volatile_doctest program~volatile_doctest~166->interface~assign_allocatable program~volatile_doctest~168 volatile_doctest program~volatile_doctest~168->interface~assign_allocatable program~volatile_doctest~169 volatile_doctest program~volatile_doctest~169->interface~assign_allocatable program~volatile_doctest~182 volatile_doctest program~volatile_doctest~182->interface~assign_allocatable program~volatile_doctest~189 volatile_doctest program~volatile_doctest~189->interface~assign_allocatable program~volatile_doctest~19 volatile_doctest program~volatile_doctest~19->interface~assign_allocatable program~volatile_doctest~192 volatile_doctest program~volatile_doctest~192->interface~assign_allocatable program~volatile_doctest~193 volatile_doctest program~volatile_doctest~193->interface~assign_allocatable program~volatile_doctest~199 volatile_doctest program~volatile_doctest~199->interface~assign_allocatable program~volatile_doctest~22 volatile_doctest program~volatile_doctest~22->interface~assign_allocatable program~volatile_doctest~23 volatile_doctest program~volatile_doctest~23->interface~assign_allocatable program~volatile_doctest~24 volatile_doctest program~volatile_doctest~24->interface~assign_allocatable program~volatile_doctest~28 volatile_doctest program~volatile_doctest~28->interface~assign_allocatable program~volatile_doctest~35 volatile_doctest program~volatile_doctest~35->interface~assign_allocatable program~volatile_doctest~37 volatile_doctest program~volatile_doctest~37->interface~assign_allocatable program~volatile_doctest~4 volatile_doctest program~volatile_doctest~4->interface~assign_allocatable program~volatile_doctest~44 volatile_doctest program~volatile_doctest~44->interface~assign_allocatable program~volatile_doctest~46 volatile_doctest program~volatile_doctest~46->interface~assign_allocatable program~volatile_doctest~52 volatile_doctest program~volatile_doctest~52->interface~assign_allocatable program~volatile_doctest~53 volatile_doctest program~volatile_doctest~53->interface~assign_allocatable program~volatile_doctest~56 volatile_doctest program~volatile_doctest~56->interface~assign_allocatable program~volatile_doctest~66 volatile_doctest program~volatile_doctest~66->interface~assign_allocatable program~volatile_doctest~69 volatile_doctest program~volatile_doctest~69->interface~assign_allocatable program~volatile_doctest~74 volatile_doctest program~volatile_doctest~74->interface~assign_allocatable program~volatile_doctest~78 volatile_doctest program~volatile_doctest~78->interface~assign_allocatable program~volatile_doctest~79 volatile_doctest program~volatile_doctest~79->interface~assign_allocatable program~volatile_doctest~83 volatile_doctest program~volatile_doctest~83->interface~assign_allocatable program~volatile_doctest~9 volatile_doctest program~volatile_doctest~9->interface~assign_allocatable

Source Code

   pure subroutine compact_real_string(string)
   !< author: Izaak Beekman
   !< date: 02/24/2015
   !<
   !< Compact a string representing a real number, so that the same value is displayed with fewer characters.
   !<
   !< @note No need to add doctest: this is tested by a lot of doctests of other TBPs.
   character(len=*),intent(inout) :: string      !< string representation of a real number.
   character(len=len(string))     :: significand !< Significand characters.
   character(len=len(string))     :: expnt       !< Exponent characters.
   character(len=2)               :: separator   !< Separator characters.
   integer(I4P)                   :: exp_start   !< Start position of exponent.
   integer(I4P)                   :: decimal_pos !< Decimal positions.
   integer(I4P)                   :: sig_trim    !< Signature trim.
   integer(I4P)                   :: exp_trim    !< Exponent trim.
   integer(I4P)                   :: i           !< counter

   string = adjustl(string)
   exp_start = scan(string, 'eEdD')
   if (exp_start == 0) exp_start = scan(string, '-+', back=.true.)
   decimal_pos = scan(string, '.')
   if (exp_start /= 0) separator = string(exp_start:exp_start)
   if ( exp_start < decimal_pos ) then ! possibly signed, exponent-less float
     significand = string
     sig_trim = len(trim(significand))
     do i = len(trim(significand)), decimal_pos+2, -1 ! look from right to left at 0s, but save one after the decimal place
       if (significand(i:i) == '0') then
         sig_trim = i-1
       else
         exit
       endif
     enddo
     string = trim(significand(1:sig_trim))
   elseif (exp_start > decimal_pos) then ! float has exponent
     significand = string(1:exp_start-1)
     sig_trim = len(trim(significand))
     do i = len(trim(significand)),decimal_pos+2,-1 ! look from right to left at 0s
       if (significand(i:i) == '0') then
         sig_trim = i-1
       else
         exit
       endif
     enddo
     expnt = adjustl(string(exp_start+1:))
     if (expnt(1:1) == '+' .or. expnt(1:1) == '-') then
       separator = trim(adjustl(separator))//expnt(1:1)
       exp_start = exp_start + 1
       expnt     = adjustl(string(exp_start+1:))
     endif
     exp_trim = 1
     do i = 1,(len(trim(expnt))-1) ! look at exponent leading zeros saving last
       if (expnt(i:i) == '0') then
         exp_trim = i+1
       else
         exit
       endif
     enddo
     string = trim(adjustl(significand(1:sig_trim)))// &
              trim(adjustl(separator))// &
              trim(adjustl(expnt(exp_trim:)))
   !else ! mal-formed real, BUT this code should be unreachable
   endif
   endsubroutine compact_real_string