24.05.2014 Views

XL Fortran Enterprise Edition for AIX : User's Guide - IBM

XL Fortran Enterprise Edition for AIX : User's Guide - IBM

XL Fortran Enterprise Edition for AIX : User's Guide - IBM

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

-qautodbl Option<br />

Syntax<br />

-qautodbl=setting<br />

AUTODBL(setting)<br />

Provides an automatic means of converting single-precision floating-point<br />

calculations to double-precision and of converting double-precision calculations to<br />

extended-precision.<br />

You might find this option helpful in porting code where storage relationships are<br />

significant and different from the <strong>XL</strong> <strong>Fortran</strong> defaults. For example, programs that<br />

are written <strong>for</strong> the <strong>IBM</strong> VS FORTRAN compiler may rely on that compiler’s<br />

equivalent option.<br />

Rules<br />

Although the POWER and POWER2 floating-point units per<strong>for</strong>m REAL(4)<br />

calculations internally using fast REAL(8) arithmetic, it is often better to have these<br />

calculations done entirely using data entities that are REAL(8) or<br />

DOUBLE PRECISION. If the calculations are coded using REAL or REAL(4) data<br />

entities, the REAL(4)-REAL(8)-REAL(4) conversions take away the extra precision<br />

and range and also lessen per<strong>for</strong>mance, even though the intermediate calculations<br />

are done in IEEE double-precision.<br />

Arguments<br />

The -qautodbl suboptions offer different strategies to preserve storage relationships<br />

between objects that are promoted or padded and those that are not.<br />

The settings you can use are as follows:<br />

none<br />

dbl4<br />

dbl8<br />

dbl<br />

dblpad4<br />

Does not promote or pad any objects that share storage. This<br />

setting is the default.<br />

Promotes floating-point objects that are single-precision (4 bytes in<br />

size) or that are composed of such objects (<strong>for</strong> example, COMPLEX<br />

or array objects):<br />

v REAL(4) is promoted to REAL(8).<br />

v COMPLEX(4) is promoted to COMPLEX(8).<br />

This suboption requires the libxlfpmt4.a library during linking.<br />

Promotes floating-point objects that are double-precision (8 bytes in<br />

size) or that are composed of such objects:<br />

v REAL(8) is promoted to REAL(16).<br />

v COMPLEX(8) is promoted to COMPLEX(16).<br />

This suboption requires the libxlfpmt8.a library during linking.<br />

Combines the promotions that dbl4 and dbl8 per<strong>for</strong>m.<br />

This suboption requires the libxlfpmt4.a and libxlfpmt8.a libraries<br />

during linking.<br />

Per<strong>for</strong>ms the same promotions as dbl4 and pads objects of other<br />

types (except CHARACTER) if they could possibly share storage<br />

with promoted objects.<br />

This suboption requires the libxlfpmt4.a and libxlfpad.a libraries<br />

during linking.<br />

134 <strong>XL</strong> <strong>Fortran</strong> <strong>Enterprise</strong> <strong>Edition</strong> <strong>for</strong> <strong>AIX</strong> : User’s <strong>Guide</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!