def print_scientific_double(value: float) ->str:
    """
    Prints a value in 16-character scientific double precision.

    Scientific Notation:                   5.0E+1
    Double Precision Scientific Notation:  5.0D+1
    """
    if value < 0:
        Format = '%16.9e'
    else:
        Format = '%16.10e'
    svalue = Format % value
    field = svalue.replace('e', 'D')
    if field == '-0.0000000000D+00':
        field = '0.0000000000D+00'
    return field
