a strange thing when I write data into a file

From: yanlv (laoyanwei_at_hotmail.com)
Date: 01/27/05


Date: Thu, 27 Jan 2005 03:29:33 -0500

fortran 90
when I write data into a file
write(8,"(e20.10)",advance="no") data
data decreases and when data<10**(-100), the letter "E" disappear in the
file and the data in file looks like
    0.7174770000E-08 0.2595548564E-13 0.9446036890E-19
0.3444574520E-24 0.1257230124E-29 0.4590982981E-35
0.1676963466E-40 0.6126658875E-46 0.2238618175E-51
0.8180437137E-57 0.2989528385E-62 0.1092575380E-67
0.3993168941E-73 0.1459479081E-78 0.5334445550E-84
0.1949799166E-89 0.7126857604E-95 0.2605029567-100
0.9522097530-106 0.3480624701-111 0.1272288882-116
0.4650693297-122 0.1700014644-127 0.6214271925-133
0.2271591125-138 0.8303709167-144 0.3035399992-149
0.1109587018-154 0.4056096487-160 0.1482711022-165
0.5420083235-171 0.1981328498-176 0.7242825289-182
0.2647649176-187 0.9678625776-193 0.3538080575-198
0.1293368981-203 0.4728003711-209 0.1728358276-214
0.6318155221-220 0.2309656111-225 0.8443156298-231
0.3086475116-236 0.1128291054-241 0.4124581562-247
0.1507783578-252 0.5511863589-258 0.2014921961-263
0.7365772459-269 0.2692642198-274 0.9843266900-280
0.3598322828-285 0.1315410252-290 0.4808643080-296
0.1757859150-301 0.6426075212-307 0.2349133636-312
0.8587552617-318 0.4940656458-323 0.0000000000E+00
0.0000000000E+00 0.0000000000E+00 0.0000000000E+00
0.0000000000E+00 0.0000000000E+00 0.0000000000E+00
0.0000000000E+00 0.0000000000E+00
and it's no difference when I change into double precision, exception for
the disappearence of letter "D"
anyone knows? thank you