> Date: Tue, 28 Sep 2004 22:58:09 +0000
> From: [log in to unmask]
> > 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
This won't necessarily do it.
Better is: print *, selected_real_kind(precision(1.0d0)+1)
A negative value indicates that quad precision is not available.
> 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
|