Not logged inOcean Color Forum
Up Topic SeaDAS / SeaDAS 6.x - General Questions / SeaDAS 6.2_RC1 with embedded IDL (locked)
- By gnwiii Date 2010-11-29 20:39 Edited 2010-11-30 08:10
Thanks for all the work -- especially the updated build system and the 64-bit support.
I expect the latter will allow us to do things that were not practical with 32-bit limitations.

I encountered a number of small glitches:

1) setup fails using embedded IDL

./config/seadas_setup -em
./config/seadas_setup: line 18: [: -em: integer expression expected
./config/seadas_setup: line 27: idl: command not found


*** seadas_setup.orig  2010-11-26 17:15:49.000000000 -0400
--- seadas_setup  2010-11-29 21:37:34.357314028 -0400
*** 15,24 ****
  if [ ${ARGV} -gt 0 ]; then
!     if [ "$1" -eq "-em" ]; then
        export RT="-em=$SEADAS/idl_rt/seadas_startup.sav"
!       export IDL_DIR= $SEADAS/idl_rt
!       export IDL_PATH= $SEADAS/idl_rt
--- 15,24 ----
  if [ ${ARGV} -gt 0 ]; then
!     if [ "X$1" = "X-em" ]; then
        export RT="-em=$SEADAS/idl_rt/seadas_startup.sav"
!       export IDL_DIR=$SEADAS/idl_rt
!       export IDL_PATH=$SEADAS/idl_rt

2) shared library problems

The patch allows the setup to run, but then, on Ubuntu 10.10 x86_64:

$ seadas -em
IDL Version 7.0 (linux x86_64 m64). (c) 2007, ITT Visual Information Solutions

% Embedded IDL: NASA GSFC SeaDAS Development, SeaDAS.
% Embedded IDL: NASA GSFC SeaDAS Development, SeaDAS.

then gives an error panel because

$ file /export/nasa/SeaDAS/6.2/build/lib/
/export/nasa/SeaDAS/6.2/build/lib/ ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
gives an error panel stating that can't be loaded. 

There are also problems with the macosx library.  It seems there are intel shared libraries in the source package, so it is important to
unpack the macosx_intel archive after the source archive.   The macosx shared library was build assuming libgfortran.3.dylib is in /usr/local/lib,
but I'm using macports which puts the library in /opt/local/lib/gcc45/i386.  Putting a symbolic link in /usr/local/lib gets the seadas menu, but I
expect there may be other dylib problems to sort.

3) config/sedas.env glitches

The generated config/seadas.env sets SEADAS after it is used, but fails to set SDSDATA.  Also, there are some hard-coded paths (at least on macosx --

4) missing $SEADAS/var/seawifs directory (for seawifs_update_elements_orbit.csh)

Again, thanks for all the hard work.
- By SeanBailey Date 2010-11-30 14:01

Thanks for the quick response :)

The embedded script issue was an oops in that I'd fixed it, but forgot to commit the change before I
bundled the distro.  Thanks for catching that one.

Correct on the issue.  Shouldn't be in the source package - is now removed.

As for the gfortran issue :

> Putting a symbolic link in /usr/local/lib gets the seadas menu, but I expect there may be other dylib problems to sort.

Your solution should be all that is necessary (it is in fact how my system is set up).

The SDSDATA variable is one of several that are no longer necessary.  It has been replaced by OCDATAROOT.  However,
there were a couple of places in the code where I forgot to make the change.   These have now been fixed.
There were hard-coded paths in the previous versions of the seadas.env file.  I'll work on making them relative

The run/var directory has been restored to the seadas_processing_common.tar.gz

If you find any other issues, please don't hesitate to pass them along :)

- By gnwiii Date 2010-12-01 07:47
Thanks for the fast response.   Things seem to be working on the test systems (MacOSX Snow Leopard, Ubuntu 10.10 and_64, RHEL 5.5 amd_64).  I'll
try to find another victim where I can try the updated packages.

The problem with finding libgfortran also occurs with RHEL.  I don't have root access on the "production" system, but the following
~/.seadas/seadas.env_user_bash seems to work (code stolen from the IDL script).  Normally I don't like using LD_LIBRARY_PATH,
so at some point I'll need to rebuild with -rpath set.   As a workaround:

# set LD_LIBRARY_PATH to point to the location of
if [ "$LD_LIBRARY_PATH" = "" ]; then

The IDLbathy routine fails here if I don't have SDSDATA set -- did you change that yesterday?

$ strings $SEADAS/run/bin/IDLbathy | grep DATA
- By SeanBailey Date 2010-12-01 16:19
I'm pondering the libgfortran issue -  previous builds used ifort...

Yes and no on the SDSDATA issue - the library that IDLbathy uses was updated,
but I forgot to rebuild the binary before I put the revised tarballs on the FTP site - so if you
were to rebuild it, SDSDATA would be replace by OCDATAROOT - otherwise
SDSDATA is still looked for...bummer... 

- By SeanBailey Date 2010-12-02 14:47
I believe I've solved the libgfortran issue.  We're working on some additional
third party library updates, and once those are in place I'll update the packages
on the FTP site.

Thanks again for giving the code a whirl :)

- By gnwiii Date 2010-12-06 09:33
We do have ifort here, but only for a few machines, and many people working with SeaDAS are on tight budgets and will appreciate being able to use gfortran.  For us, it makes it easier to have test/experimental SeaDAS installations (e.g., in VM's).    
- By SeanBailey Date 2010-12-06 10:00
The issue I was worried about is that users (unless rebuilding SeaDAS) shouldn't need to have any compilers
let alone any specific one :)  I'm fairly confident that I've resolved the shared object issue you discovered for me. 
If you rebuild the code, obviously, you'll need a compiler - and gfortran works (at least the more recent versions)

- By bmurch Date 2010-12-06 15:03
Just tried to install 6.2_RC1

IDL Version 8.0.1 (linux x86_64 m64). (c) 2010, ITT Visual Information Solutions
Installation number: 17539.
Licensed for use by: USF Dept of Marine Sciences

% CALL_EXTERNAL: Error loading sharable executable.
                 Symbol: idl_pid, File = /optics1/software/seadas/seadas_6.2/build/lib/
        cannot open shared object file: No such file or directory
% Execution halted at: SEADAS_INIT       212 /optics1/software/seadas/seadas_6.2/idl_lib/
%                      $MAIN$
% Not a legal system variable: !SD.
% Execution halted at: SDP_INIT           22 /optics1/software/seadas/seadas_6.2/idl_lib/
%                      SEADAS_INIT       212 /optics1/software/seadas/seadas_6.2/idl_lib/
%                      $MAIN$
SeaDAS> exit


Linux 2.6.18-194.8.1.el5 #1 SMP Thu Jul 1 19:04:48 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
redhat-release = CentOS release 5.5 (Final)
yummy install libgfortran44 (rm the my)

Since not there by default had to get the libgfortran44.

- By SeanBailey Date 2010-12-06 15:15
Well, that's the issue George discovered.  The fix hasn't been put on the FTP site yet.
Once it is, you shouldn't need gfortran at all (unless you intend to rebuild from source).

As for the transposition of modis and dem from your earlier post - fixed.

- By gnwiii Date 2010-12-07 07:00
I'm not sure gfortran44 will work for compiles, although maybe the runtime is OK in the binary distro.  I build gcc4.5.1 from sources on RHEL 5.5 here.   Ubuntu 10.10 has a package for gfortran 4.5.1.  See <> entry on common blocks.  The bug report linked there has a test program.  With older
gfortran you may see warnings such as:

$ gfortran43 t.f90 -o t-gfortran43

program test
Warning: COMMON '__BLNK__' at (1) requires 4 bytes of padding at start
- By SeanBailey Date 2010-12-07 09:22
gfortran4.4 should work IF the third-party libraries are also rebuilt against it.
This is the version of gfortran we're using for the PPC Mac build.
You will likely run into problems if you try building the OCSSW code
with gfortran4.4 on Linux, without rebuilding lib3, which was built with 4.5.
I'll make no guarantees, though :)

- By bmurch Date 2010-12-07 09:55
I didn't do a rebuild. Just tried to install and run. Then figured out I needed the gfortran44 to make that happen. Don't know what other errors may crop up. l2gen seems to work fine, but was about 3 secondes slower that the 32 bit Seadas 6.1.
- By SeanBailey Date 2010-12-08 01:26
The slowness may be attributed to the fact that one of the libraries as distributed was built without optimization.
This was required, as adding optimization prevented the code from compiling.  Late last week we resolved
that issue and when the final release is distributed, the code should be as optimized as possible :)

Thanks for testing
- By gnwiii Date 2011-01-10 11:54
I just installed 6.2 on linux_64 (RHEL 5.5).   IDL_bathy still wants SDSDATA (set to $SEADAS/run/data)

$ . opt/nasa/SeaDAS/6.2/config/seadas.env
Linux 64bit
$ ls -l $(which IDLbathy)
-rwxr-xr-x 1 X Y 802082 Jan  3 14:28 /home/X/opt/nasa/SeaDAS/6.2/run/bin/IDLbathy
$ strings  $(which IDLbathy) | grep DATA
Up Topic SeaDAS / SeaDAS 6.x - General Questions / SeaDAS 6.2_RC1 with embedded IDL (locked)

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill