> Hi everybody.
> I'm trying to solve a taugh numerical problem: finding the roots of a
> non-linear set of equation.
> I need to go beyond the double precision (Real(8) and Complex(8)).
> Is it possible to achieve this in Fortran 90?
> Thank you very much in advance for your help.
>
> Celevic
Check your compiler documentation. Some compilers support what's
usually called Quad precision. Some don't. If you have access to
several, you might get lucky. Fortran90 allows processors to support
higher precisions. A simple experiment is to try something like
Do I = 1,50
print *, I, selected_real_kind(I)
Enddo
If you only get 2 distinct positive kind values (-1 means not
supported), you're out of luck. If you get 3 (or more) try
print *, precision(1.0_KV), range(1.0_KV)
where KV is each of the kind values you got from the little loop,
and see if you think the precision or range is good enough for your
needs.
Not this this part is an answer, but double precision is usually
13 digits or so; are you sure you know the rest of the values used
well enough to actually need more precision? Often, the problem
can be reworked/reformulated to work with the usual precisions.
For example, there are well known tricks to avoid cancellation
in summing a set of values with wide ranges in positive and
negative values.
Dick Hendrickson
|