@@ -918,15 +918,15 @@ int printAttributeValue(core::Engine *fp, core::IO *io, core::Attribute<T> *attr
918918 DataType adiosvartype = attribute->m_Type ;
919919 if (attribute->m_IsSingleValue )
920920 {
921- print_data ((void *)&attribute->m_DataSingleValue , 0 , adiosvartype, true );
921+ print_data ((void *)&attribute->m_DataSingleValue , 0 , adiosvartype, false );
922922 }
923923 else
924924 {
925925 fprintf (outf, " {" );
926926 size_t nelems = attribute->m_DataArray .size ();
927927 for (size_t j = 0 ; j < nelems; j++)
928928 {
929- print_data ((void *)&attribute->m_DataArray [j], 0 , adiosvartype, true );
929+ print_data ((void *)&attribute->m_DataArray [j], 0 , adiosvartype, false );
930930 if (j < nelems - 1 )
931931 {
932932 fprintf (outf, " , " );
@@ -953,7 +953,7 @@ int printAttributeValue(core::Engine *fp, core::IO *io, core::Attribute<std::str
953953 }
954954 if (printDataAnyway)
955955 {
956- print_data ((void *)&attribute->m_DataSingleValue , 0 , adiosvartype, true );
956+ print_data ((void *)&attribute->m_DataSingleValue , 0 , adiosvartype, false );
957957 }
958958 }
959959 else
@@ -969,7 +969,7 @@ int printAttributeValue(core::Engine *fp, core::IO *io, core::Attribute<std::str
969969 }
970970 if (printDataAnyway)
971971 {
972- print_data ((void *)&attribute->m_DataArray [j], 0 , adiosvartype, true );
972+ print_data ((void *)&attribute->m_DataArray [j], 0 , adiosvartype, false );
973973 }
974974 if (j < nelems - 1 )
975975 {
@@ -3072,18 +3072,47 @@ int print_data(const void *data, int item, DataType adiosvartype, bool allowform
30723072 fprintf (outf, (f ? fmt : " %lld" ), ((signed long long *)data)[item]);
30733073 break ;
30743074
3075- case DataType::Float:
3076- fprintf (outf, (f ? fmt : " %g" ), ((float *)data)[item]);
3075+ case DataType::Float: {
3076+ float v = ((float *)data)[item];
3077+ if (allowformat)
3078+ fprintf (outf, (f ? fmt : " %g" ), v);
3079+ else
3080+ {
3081+ if (-10000.0 < v && v < 100000.0 )
3082+ fprintf (outf, " %g" , v);
3083+ else
3084+ fprintf (outf, " %e" , v);
3085+ }
30773086 break ;
3087+ }
30783088
3079- case DataType::Double:
3080- fprintf (outf, (f ? fmt : " %g" ), ((double *)data)[item]);
3089+ case DataType::Double: {
3090+ double v = ((double *)data)[item];
3091+ if (allowformat)
3092+ fprintf (outf, (f ? fmt : " %g" ), v);
3093+ else
3094+ {
3095+ if (-10000.0 < v && v < 100000.0 )
3096+ fprintf (outf, " %g" , v);
3097+ else
3098+ fprintf (outf, " %e" , v);
3099+ }
30813100 break ;
3101+ }
30823102
3083- case DataType::LongDouble:
3084- fprintf (outf, (f ? fmt : " %Lg" ), ((long double *)data)[item]);
3085- // fprintf(outf,(f ? fmt : "????????"));
3103+ case DataType::LongDouble: {
3104+ long double v = ((long double *)data)[item];
3105+ if (allowformat)
3106+ fprintf (outf, (f ? fmt : " %Lg" ), v);
3107+ else
3108+ {
3109+ if (-10000.0 < v && v < 100000.0 )
3110+ fprintf (outf, " %Lg" , v);
3111+ else
3112+ fprintf (outf, " %Le" , v);
3113+ }
30863114 break ;
3115+ }
30873116
30883117 case DataType::FloatComplex:
30893118 fprintf (outf, (f ? fmt : " (%g,i%g)" ), ((float *)data)[2 * item],
0 commit comments