[Thread Prev][Thread Next][Index]

Re: [ferret_users] small numbers cause ferret error



Dear Ansley, dear ferreters,

indeed - ferret version 6.7 does NOT have the same problem with small numbers. Listing of numbers 1.e-38 and below works fine to IEEE limit:

Here's my test with version 6.7:
yes? list 1.e-38
             VARIABLE : constant
          1.000E-38
[...]
yes? list 1.e-45
             VARIABLE : constant
          1.401E-45
yes? list 1.e-46
             VARIABLE : constant
          0.0000
yes? list 1.e-47
             VARIABLE : constant
          0.0000

I didn't plan to switch with every version of ferret, but in this case it's worth it. Please find the requested output of 'ldd' for my 6.7 binary below.

On my machine, version 6.64 still shows the strange behavior of not listing numbers from about 1.e-38 and lower ("**ERROR: command syntax: 1.E-38", details below). Version 6.40 like version 6.7 did not show this problematic behavior on the same machine (Ubuntu Lucid, x86_64-linux, Linux version 2.6.32-25-generic (buildd@allspice) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #45-Ubuntu SMP Sat Oct 16 19:52:42 UTC 2010). According to Ansley it could have resulted from the static library linking at the time (see also below).

Thanks again for the help!
Hella


P.S. I did not immediately realize that I need to download the version 6.7 for Redhat since I am running Ubuntu. So I encountered the problem that no libgfortran.so.1 was found on my system (simple linking of libgfortran.so.3 does not fix it; download of libgfortran.so.1 produces a clash with newer gcc version). Dawned on me when I read the email "Libraries in the latest Ferret" by Karl Smith and I though it doesn't hurt to mention it again in this P.S. in case someone is searching the archive for 'libgfortran.so.1' like me.

P.P.S. ldd on ferret version 6.7 binary for Redhat 6 (libgfortran.so.3 instead of libgfortran.so.1 is requested and found)
	linux-vdso.so.1 =>  (0x00007fff501ff000)
	libreadline.so.6 => /lib/libreadline.so.6 (0x00007fb3b2e0a000)
	libncurses.so.5 => /lib/libncurses.so.5 (0x00007fb3b2bc7000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fb3b2890000)
	libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007fb3b2648000)
	libdl.so.2 => /lib/libdl.so.2 (0x00007fb3b2444000)
	libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0x00007fb3b2156000)
	libm.so.6 => /lib/libm.so.6 (0x00007fb3b1ed3000)
	libc.so.6 => /lib/libc.so.6 (0x00007fb3b1b50000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fb3b1938000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fb3b171c000)
	libidn.so.11 => /usr/lib/libidn.so.11 (0x00007fb3b14e9000)
	liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00007fb3b12da000)
	libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x00007fb3b108e000)
	librt.so.1 => /lib/librt.so.1 (0x00007fb3b0e86000)
	libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007fb3b0c51000)
	libssl.so.0.9.8 => /lib/libssl.so.0.9.8 (0x00007fb3b09ff000)
	libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0x00007fb3b066f000)
	libz.so.1 => /lib/libz.so.1 (0x00007fb3b0457000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fb3b306d000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fb3b0253000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fb3b004d000)
	libresolv.so.2 => /lib/libresolv.so.2 (0x00007fb3afe33000)
	libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00007fb3afc19000)
	libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0x00007fb3af977000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x00007fb3af759000)
	libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007fb3af495000)
	libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007fb3af26f000)
	libcom_err.so.2 => /lib/libcom_err.so.2 (0x00007fb3af06a000)
	libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007fb3aee62000)
	libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x00007fb3aec5f000)
	libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0x00007fb3aea4d000)
	libgcrypt.so.11 => /lib/libgcrypt.so.11 (0x00007fb3ae7d5000)
	libgpg-error.so.0 => /lib/libgpg-error.so.0 (0x00007fb3ae5d0000)



------------------------------------------------------------------------
*Subject:* Re: [ferret_users] small numbers cause ferret error
*Sent:* Sun 12 Jun 2011 11:20:31 PM CEST +0200
*From:* Hella Riede <hella.riede@xxxxxxx>
*To:* Ansley Manke <Ansley.B.Manke@xxxxxxxx>

Dear Ansley,

I only answer to you since I have no idea if the others are still
interested.

yes? list 1.e-38
VARIABLE : constant
1.000E-38
[...]
yes? list 1.e-45
VARIABLE : constant
1.401E-45
yes? list 1.e-46
**ERROR: command syntax: 1.E-46

Good to see it works for you. I still have the problem that in version
6.64 I cannot even list 1.e-38. Here is my library setup:

1) What is the output of

> ldd ferret_v664

ours shows this:
linux-vdso.so.1 => (0x00007fff311fc000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003599c00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003599400000)
/lib64/ld-linux-x86-64.so.2 (0x0000003599000000)

On the remote Linux cluster:
linux-vdso.so.1 => (0x00007fffccdff000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b9981f1f000)
libc.so.6 => /lib64/libc.so.6 (0x00002b9982124000)
/lib64/ld-linux-x86-64.so.2 (0x00002b9981cfe000)

On my local machine:
64-bit
x86_64-linux
Linux version 2.6.32-25-generic (buildd@allspice)
(gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) )
#45-Ubuntu SMP Sat Oct 16 19:52:42 UTC 2010

linux-vdso.so.1 => (0x00007ffffa1ff000)
libdl.so.2 => /lib/libdl.so.2 (0x00007fef241ef000)
libc.so.6 => /lib/libc.so.6 (0x00007fef23e6c000)
/lib64/ld-linux-x86-64.so.2 (0x00007fef24415000)

I am not sure what that tells me. The names of the libraries seem to be
the same, the locations (?) seem not to be. Is that actually an ID of
the library and should be the same or is it just the local site on the
disk?


2) Can you try the latest release, v6.7? You can install it in one of
your own local directories if you would like to do that. The output of
the LIST commands would be interesting to see and also the output of
ldd, again.

I now installed ferret version 6.7 on my local machine:
ldd ferret (version 6.7):
linux-vdso.so.1 => (0x00007fff9024b000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fbb9b231000)
libcurl.so.3 => /usr/lib/libcurl.so.3 (0x00007fbb9afe9000)
libdl.so.2 => /lib/libdl.so.2 (0x00007fbb9ade4000)
libz.so.1 => /lib/libz.so.1 (0x00007fbb9abcd000)
libgfortran.so.1 => not found
libm.so.6 => /lib/libm.so.6 (0x00007fbb9a949000)
libc.so.6 => /lib/libc.so.6 (0x00007fbb9a5c6000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fbb9a3af000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fbb9a192000)
libidn.so.11 => /usr/lib/libidn.so.11 (0x00007fbb99f5f000)
liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00007fbb99d51000)
libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x00007fbb99b04000)
librt.so.1 => /lib/librt.so.1 (0x00007fbb998fc000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007fbb996c8000)
libssl.so.0.9.8 => /lib/libssl.so.0.9.8 (0x00007fbb99475000)
libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0x00007fbb990e5000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbb9b589000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fbb98ee1000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fbb98cda000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00007fbb98ac1000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00007fbb988a7000)
libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0x00007fbb98604000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007fbb983e7000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007fbb98123000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007fbb97efc000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x00007fbb97cf8000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007fbb97af0000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x00007fbb978ec000)
libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0x00007fbb976db000)
libgcrypt.so.11 => /lib/libgcrypt.so.11 (0x00007fbb97462000)
libgpg-error.so.0 => /lib/libgpg-error.so.0 (0x00007fbb9725e000)

Consequently, 1st trial ended in:
/data/soft/ferret/v6.7/bin/ferret: error while loading shared libraries:
libgfortran.so.1: cannot open shared object file: No such file or
directory

But my quick fix:
ln -s /usr/lib/libgfortran.so.3.0.0 libgfortran.so.1

Didn't work:
/data/soft/ferret/v6.7/bin/ferret: symbol lookup error:
/data/soft/ferret/v6.7/bin/ferret: undefined symbol:
_gfortran_copy_string

In the 30 minutes I devoted I could not find a suitable download in the
internet. libgfortran.so.3 seems to be the standard and the only
download from trustworthy sources I could find was not for 64-bit.

Any suggestion is very welcome!

Best wishes,
Hella



------------------------------------------------------------------------
*Subject:* Re: [ferret_users] small numbers cause ferret error
*Sent:* 06 Jun 2011
*From:* Ansley Manke <Ansley.B.Manke@xxxxxxxx>
*To:* Hella Riede <hella.riede@xxxxxxx>

Hi Hella,
Repeating the experiment using the same executable that you are using on our 64-bit machine,

        NOAA/PMEL TMAP
        FERRET v6.64
        Linux(gfortran) 2.6.9-89.0.20.ELsmp - 09/16/10
         6-Jun-11 11:19

yes? list 1.e-38
             VARIABLE : constant
          1.000E-38
yes? list 1.e-39
             VARIABLE : constant
          1.000E-39
yes? list 1.e-40
             VARIABLE : constant
          1.000E-40
yes? list 1.e-41
             VARIABLE : constant
          1.000E-41
yes? list 1.e-44
             VARIABLE : constant
          9.809E-45
yes? list 1.e-45
             VARIABLE : constant
          1.401E-45
yes? list 1.e-46
 **ERROR: command syntax: 1.E-46

I get the same result with Ferret v6.7. Now, v6.64 was an executable which we linked using all the static libraries we could, which we thought was the right thing to do at the time. However it could possibly mean that there is a mis-match between library versions in the shared-object libraries that are used by the executable when it runs on your machine, and what is linked statically into Ferret. So there are two things we can look into.

1) What is the output of

> ldd ferret_v664

ours shows this:
        linux-vdso.so.1 =>  (0x00007fff311fc000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003599c00000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003599400000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003599000000)

2) Can you try the latest release, v6.7? You can install it in one of your own local directories if you would like to do that. The output of the LIST commands would be interesting to see and also the output of ldd, again.

Anlsey

On 6/6/2011 10:53 AM, Hella Riede wrote:
Dear Ansley, dear ferreters,

this is exactly what I am saying.

------------------------------------------------------------
Version 6.64 has the problem:
------------------------------------------------------------
NOAA/PMEL TMAP
FERRET v6.64
Linux(gfortran) 2.6.9-89.0.20.ELsmp - 09/16/10
6-Jun-11 17:47

yes? list 1.e-38
**ERROR: command syntax: 1.E-38
yes? list 1.e-39
**ERROR: command syntax: 1.E-39
yes? list 1.e-40
**ERROR: command syntax: 1.E-40
yes? list 1.e-41
**ERROR: command syntax: 1.E-41
yes? list 1.e-44
**ERROR: command syntax: 1.E-44
yes? list 1.e-45
**ERROR: command syntax: 1.E-45
yes? list 1.e-46
**ERROR: command syntax: 1.E-46


------------------------------------------------------------
Version 6.40 does NOT have it:
------------------------------------------------------------
NOAA/PMEL TMAP
FERRET v6.401
Linux(g77) 2.4.21-57.ELsmp - 12/09/09
6-Jun-11 17:44

yes? list 1.e-38
VARIABLE : constant
1.000E-38
yes? list 1.e-39
VARIABLE : constant
1.000E-39
yes? list 1.e-44
VARIABLE : constant
9.809E-45
yes? list 1.e-45
VARIABLE : constant
1.401E-45
yes? list 1.e-46
VARIABLE : constant
0.0000


Both versions run on the same machine, which is:
64-bit system
amd64_sles11
Linux version 2.6.32.23-0.3-default (geeko@buildhost) (gcc version
4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux) ) #1 SMP
2010-10-07 14:57:45 +0200

Except for the ferret version I only see a difference in the compiler
as Ansley already mentioned. g77 -> gfortran. It looks like this is
not intended and not explicable by IEEE standard... I switch between
ferret versions to handle my data :-|

Thanks for helping.

Cheers,
HellA



------------------------------------------------------------------------

*Subject:* Re: [ferret_users] small numbers cause ferret error
*Sent:* Wed 01 Jun 2011 11:50:54 AM CEST -0700
*From:* Ansley Manke <Ansley.B.Manke@xxxxxxxx>
*To:* Hella Riede <hella.riede@xxxxxxx>
*Cc:* martin.schmidt@xxxxxxxxxxxxxxxxx, Steven.C.Hankin@xxxxxxxx

Hi Helle
Are you saying that you seen an error on the first command when you
run
the examples Steve shows below?

yes? list 1.e-38

yes? list 1.e-39

yes? list 1.e-44

yes? list 1.e-45

yes? list 1.e-46


On 5/31/2011 12:10 PM, Hella Riede wrote:
Hi people,

thanks for the comparison and IEEE information. I realized now the
last email was already not to the list anymore. Sorry for my late
reply - at first I thought my question was already answered by the
IEEE definition, but my problem persists: I already get an error at
1E-38, which should still be in the valid IEEE range.

To answer Ansley's question:
64-bit system
amd64_sles11
Linux version 2.6.32.23-0.3-default (geeko@buildhost) (gcc version
4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux) ) #1 SMP
2010-10-07 14:57:45 +0200


Best regards,
Hella

----------------------------------------------------------------------------------------------------




From: Steven.C.Hankin@xxxxxxxx

IEEE floating point range should be: ~10^-44.85 to ~10^38.53

Trying Ferret V6.7 on a 32 bit machine I get

yes? list 1.e-38
VARIABLE : constant
1.000E-38
yes? list 1.e-39
VARIABLE : constant
1.000E-39
yes? list 1.e-44
VARIABLE : constant
9.809E-45
yes? list 1.e-45
VARIABLE : constant
1.401E-45
yes? list 1.e-46
* **ERROR: command syntax: 1.E-46*

This seems like the appropriate behavior.

- Steve


------------------------------------------------------------------------



*Subject:* Re: [ferret_users] small numbers cause ferret error
*Sent:* Mon 18 Apr 2011 09:15:25 AM CEST -0700
*From:* Ansley Manke <Ansley.B.Manke@xxxxxxxx>
*To:* martin.schmidt@xxxxxxxxxxxxxxxxx
*Cc:* Hella Riede <hella.riede@xxxxxxx>, Ferret users
<oar.pmel.ferret_users@xxxxxxxx>

Hi -
I am not seeing this error, see below (n a 64-bit machine, linux
RedHat
5). The difference between versions is that the newer ones, starting
with Ferret v6.6 are compiled with gfortran and the older one with
g77.
Hella and Martin, maybe we can take the discussion off-line - what
operating systems are you running?

NOAA/PMEL TMAP
FERRET v6.4
Linux(g77) 2.6.9-89.ELsmp - 11/30/09
18-Apr-11 09:07

yes? list 1.e-38
VARIABLE : constant
1.000E-38

---
NOAA/PMEL TMAP
FERRET v6.64
Linux(gfortran) 2.6.9-89.0.20.ELsmp - 09/20/10
18-Apr-11 08:58

yes? list 1.e-38
VARIABLE : constant
1.000E-38

---
NOAA/PMEL TMAP
FERRET v6.67
Linux(gfortran) 2.6.18-238.1.1.el5 - 02/11/11
18-Apr-11 08:59

yes? list 1.e-38
VARIABLE : constant
1.000E-38


On 4/18/2011 12:20 AM, Martin Schmidt wrote:
Hi,
I can reproduce the error with 6.6.7. However,

list 1e-37/10

gives correct output.

Greetings,
M. Schmidt


Hella Riede wrote:
Dear ferreters,

I encountered problems using my ferret scripts after moving from
version 6.40 to 6.64. The very small numbers that appear in
some of
our model output (which is my ferret script input) cause an
error in
ferret. To avoid the problem, they could be set to zero defining a
certain threshold. However, I preferred the previous handling
without
having to use any manual thresholds - what happened? Has this been
fixed since version 6.64?

Kind regards,
Hella

----------------------------------------------------------
problem with very small numbers
----------------------------------------------------------
NOAA/PMEL TMAP
FERRET v6.64
Linux(gfortran) 2.6.9-89.0.20.ELsmp - 09/16/10
18-Apr-11 02:41

yes? list 1E-38
**ERROR: command syntax: 1E-38
yes? list 1E-37
VARIABLE : constant
1.000E-37
----------------------------------------------------------
no problem with very small numbers
----------------------------------------------------------
NOAA/PMEL TMAP
FERRET v6.401
Linux(g77) 2.4.21-57.ELsmp - 12/09/09
18-Apr-11 02:42

yes? list 1E-38
VARIABLE : constant
1.000E-38
yes? list 1E-37
VARIABLE : constant
1.000E-37









--

------------------------------------------------------------------------------
 Hella Riede  (Dipl.Chem.)
 Max Planck Institute for Chemistry
 Dept. of Atmospheric Chemistry
 Becherweg 27
 55128 Mainz
 Germany

 email: hella.riede@xxxxxxx
 phone: +49-6131-305437

 www.mpch-mainz.mpg.de/~riede
------------------------------------------------------------------------------


[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce / NOAA / OAR / PMEL / Ferret

Privacy Policy | Disclaimer | Accessibility Statement