Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

machine precision -- smooth region

diedro
Beginner
1,083 Views

hi everyone,

I'ma writing a code about diffusion. It is veru sensible to fortran precision. I men negative value (taht I do not want) star from -1.e-60 and than rise ud to 1.e2.

I compile in double precision. Hos is possible that the program can handle so negative errors, Can I set them to zero when I compile.

Really really thanks

0 Kudos
6 Replies
Anonymous66
Valued Contributor I
1,083 Views
The option, -fpe1 will turn on underflow to zero rather than allowing gradual underflow. Any value that is too small to be represented precisely in double precision will be rounded down to 0. Is something like this what you are looking for?
0 Kudos
diedro
Beginner
1,083 Views
yes is that the things that I want to know. However I got the same error. Do you know a forum where to talk about numerical scheme problem? thanks a lot
0 Kudos
Anonymous66
Valued Contributor I
1,083 Views
We do not have a forum specifically for numerical scheme problems. This white paper may be useful to you though.
0 Kudos
Ron_Green
Moderator
1,083 Views
0 Kudos
jimdempseyatthecove
Honored Contributor III
1,083 Views
diedro wrote:

hi everyone,

I'ma writing a code about diffusion. It is veru sensible to fortran precision. I men negative value (taht I do not want) star from -1.e-60 and than rise ud to 1.e2.

I compile in double precision. Hos is possible that the program can handle so negative errors, Can I set them to zero when I compile.

Really really thanks

Try changing your parameters and literals from "e" to "d". Example, change -1.e-60 to -1.d-60 "e" defaults to REAL(4) Jim Dempsey
0 Kudos
TimP
Honored Contributor III
1,083 Views
In case the implication of changing from a single to a double precision constant isn't evident, the smallest magnitude non-zero single precision numbers are TINY(1.)*EPSILON(1.) when gradual underflow is enabled, and TINY(1.) in the case of abrupt underflow (ifort option -ftz). In either case, 1.e-60 is the same as 0. (except possibly in some contexts of -mia32)
0 Kudos
Reply