Dear Jonas and Oliver,

Thank you for your replies. I wanted to give you a sort of status report
regarding the use of ARTS on my Mac.

1) I checked ARTS/build/CMakeCache.txt and confirmed that no conda package
was used, other than CONDA_PROG:FILEPATH=... which I think is irrelevant.

2) I tried compiling with gcc/g++ instead, both from Homebrew and from
manually installing tar.gz files from the gnu website for a few different
versions, but the same irregular invalid t_field errors in OEM happened.
Plus, at the cmake stage, they constantly produced a failure message for "
Wno-return-type-c-linkage" as follows, about which I am curious why. This
doesn't happen with clang/clang++.

...

-- Performing Test CCFLAG_Wno-sign-conversion

-- Performing Test CCFLAG_Wno-sign-conversion - Success

-- Performing Test CXXFLAG_Wno-sign-conversion

-- Performing Test CXXFLAG_Wno-sign-conversion - Success

-- Performing Test CCFLAG_Wno-unknown-pragmas

-- Performing Test CCFLAG_Wno-unknown-pragmas - Success

-- Performing Test CXXFLAG_Wno-unknown-pragmas

-- Performing Test CXXFLAG_Wno-unknown-pragmas - Success

-- Performing Test CCFLAG_Wno-return-type-c-linkage

-- Performing Test CCFLAG_Wno-return-type-c-linkage - Failed

-- Performing Test CXXFLAG_Wno-return-type-c-linkage

-- Performing Test CXXFLAG_Wno-return-type-c-linkage - Failed

-- Performing Test CCFLAG_Wno-strict-overflow

-- Performing Test CCFLAG_Wno-strict-overflow - Success

-- Performing Test CXXFLAG_Wno-strict-overflow

-- Performing Test CXXFLAG_Wno-strict-overflow - Success
...

3) Instead of the clang/clang++ from Homebrew llvm with which I initially
installed ARTS, I thought I could instead try using Mac's command line
tools clang/clang++ (AppleClang v10), but they failed at the make stage
with the following error which I am not sure how to tackle.

...

[ 43%] *Linking CXX executable make_auto_workspace_h*

Undefined symbols for architecture x86_64:

  "___kmpc_critical", referenced from:

      ArtsOut& operator<<<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > >(ArtsOut&,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const&) in arts.cc.o

      ArtsOut& operator<<<char [35]>(ArtsOut&, char const (&) [35]) in
file.cc.o

      ArtsOut& operator<<<char [75]>(ArtsOut&, char const (&) [75]) in
file.cc.o

      ArtsOut& operator<<<char [2]>(ArtsOut&, char const (&) [2]) in
file.cc.o

      ArtsOut& operator<<<my_basic_string<char> >(ArtsOut&,
my_basic_string<char> const&) in file.cc.o

      ArtsOut& operator<<<char [3]>(ArtsOut&, char const (&) [3]) in
file.cc.o

      ArtsOut& operator<<<long>(ArtsOut&, long const&) in file.cc.o

      ...

  "___kmpc_end_critical", referenced from:

      ArtsOut& operator<<<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > >(ArtsOut&,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const&) in arts.cc.o

      ArtsOut& operator<<<char [35]>(ArtsOut&, char const (&) [35]) in
file.cc.o

      ArtsOut& operator<<<char [75]>(ArtsOut&, char const (&) [75]) in
file.cc.o

      ArtsOut& operator<<<char [2]>(ArtsOut&, char const (&) [2]) in
file.cc.o

      ArtsOut& operator<<<my_basic_string<char> >(ArtsOut&,
my_basic_string<char> const&) in file.cc.o

      ArtsOut& operator<<<char [3]>(ArtsOut&, char const (&) [3]) in
file.cc.o

      ArtsOut& operator<<<long>(ArtsOut&, long const&) in file.cc.o

      ...

  "___kmpc_global_thread_num", referenced from:

      ArtsOut& operator<<<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > >(ArtsOut&,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const&) in arts.cc.o

      ArtsOut& operator<<<char [35]>(ArtsOut&, char const (&) [35]) in
file.cc.o

      ArtsOut& operator<<<char [75]>(ArtsOut&, char const (&) [75]) in
file.cc.o

      ArtsOut& operator<<<char [2]>(ArtsOut&, char const (&) [2]) in
file.cc.o

      ArtsOut& operator<<<my_basic_string<char> >(ArtsOut&,
my_basic_string<char> const&) in file.cc.o

      ArtsOut& operator<<<char [3]>(ArtsOut&, char const (&) [3]) in
file.cc.o

      ArtsOut& operator<<<long>(ArtsOut&, long const&) in file.cc.o

      ...

ld: symbol(s) not found for architecture x86_64

clang: *error: *linker command failed with exit code 1 (use -v to see
invocation)

make[2]: *** [src/make_auto_workspace_h] Error 1

make[1]: *** [src/CMakeFiles/make_auto_workspace_h.dir/all] Error 2

[ 43%] Building CXX object
src/CMakeFiles/test_gridded_fields.dir/test_gridded_fields.cc.o

[ 43%] Building CXX object
src/CMakeFiles/test_legendre.dir/test_legendre.cc.o

[ 43%] *Linking CXX executable test_legendre*

[ 43%] Built target test_legendre

[ 43%] *Linking CXX executable test_gridded_fields*

[ 43%] Built target test_gridded_fields

make: *** [all] Error 2
...

4) I tried using Homebrew lapack instead of Mac's default
Accelerate.framework but the same irregular OEM error happened.

I have tried several things as above hoping to pinpoint where the error
stems from (compiler, package, or something else?) but am so far
unsuccessful and encountered additional errors that I hope someone could
explain. Thank you.

Regards,

Byungsuk Lee


On Thu, Sep 27, 2018 at 7:51 PM Oliver Lemke <oliver.le...@uni-hamburg.de>
wrote:

> Hi Jonas, hi Byungsuk Lee,
>
> We had similar issues, but more in the opposite direction. When we
> compiled ARTS with the anaconda environment activated, we ran into issues
> later when executing ARTS. Therefore, ARTS in its default configuration
> automatically ignores conda paths that are detected when cmake is run. To
> disable this, you need to pass '-DENABLE_ALLPATHS=1' to cmake.
>
> Since this only happens on certain configurations, we haven't been able to
> fully identify the source of this problem.
>
> @byungsuk: Another test you could do is to use a different compiler. Since
> you're using gfortran 8.2.0, I assume that you also have gcc/g++ installed.
> You could try to compile with them instead of clang by setting them with
> the cmake options, e.g. "cmake -DCMAKE_C_COMPILER=/usr/local/bin/gcc
> -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ ...'. Note that changing compilers
> requires to delete everything in your build directory, a 'make clean' is
> not enough.
>
> cheers,
> /oliver
>
>
> > On 27 Sep 2018, at 11:57, Jonas Hagen <jonas.ha...@iap.unibe.ch> wrote:
> >
> > Hi Byungsuk Lee
> >
> > From your pasted output, I can guess that you are using conda on your
> ubuntu machine. I had similar problems (strange crashes) when using ARTS
> within a conda environment.
> >
> > Conda / Anaconda does not only manage python stuff, but also many
> compiled libraries.
> > The solution is to compile ARTS in the environment that you wish to use
> for execution. If you run ARTS within a Conda environment (possibly via the
> API), then you must activate this environment also for compilation. In the
> other case, if you want to run ARTS without conda environment, then make
> sure nothing from Conda is used for linking. To do that, maybe updating
> conda can help, because the newer versions make a much better separation of
> your system libraries and managed ones. Also removing all conda related
> commands from your bashrc (and reboot) could help.
> >
> > That would be my guess.
> > Best regards,
> > Jonas
> >
> > On 27.09.2018 10:22, Byungsuk Lee wrote:
> >> Dear Simon,
> >>
> >> Yes, I have sent the exact code.
> >>
> >> I have tried the code in two different computers: one is Mac and
> another Ubuntu. The problem still occurs on my Mac but not on my Ubuntu.
> Could it be due to the differences in the ARTS' configurations? Below are
> the output lines for the cmake command "cmake -DENABLE_C_API=1
> -DARTS_XML_DATA_PATH=/path/to/xml-data/ -DENABLE_FORTRAN=1
> -DENABLE_NETCDF=1 .." in the build directory. I am using the older version
> (have not updated to include the recent changes for freq shift retrieval).
> >>
> >>
> >>
> >> For Mac:
> >> -- The C compiler identification is Clang 7.0.0
> >> -- The CXX compiler identification is Clang 7.0.0
> >> -- Check for working C compiler: /usr/local/opt/llvm/bin/clang
> >> -- Check for working C compiler: /usr/local/opt/llvm/bin/clang -- works
> >> -- Detecting C compiler ABI info
> >> -- Detecting C compiler ABI info - done
> >> -- Detecting C compile features
> >> -- Detecting C compile features - done
> >> -- Check for working CXX compiler: /usr/local/opt/llvm/bin/clang++
> >> -- Check for working CXX compiler: /usr/local/opt/llvm/bin/clang++ --
> works
> >> -- Detecting CXX compiler ABI info
> >> -- Detecting CXX compiler ABI info - done
> >> -- Detecting CXX compile features
> >> -- Detecting CXX compile features - done
> >> -- The Fortran compiler identification is GNU 8.2.0
> >> -- Checking whether Fortran compiler has -isysroot
> >> -- Checking whether Fortran compiler has -isysroot - yes
> >> -- Checking whether Fortran compiler supports OSX deployment target flag
> >> -- Checking whether Fortran compiler supports OSX deployment target
> flag - yes
> >> -- Check for working Fortran compiler: /usr/local/bin/gfortran
> >> -- Check for working Fortran compiler: /usr/local/bin/gfortran  -- works
> >> -- Detecting Fortran compiler ABI info
> >> -- Detecting Fortran compiler ABI info - done
> >> -- Checking whether /usr/local/bin/gfortran supports Fortran 90
> >> -- Checking whether /usr/local/bin/gfortran supports Fortran 90 -- yes
> >> -- Looking for sys/types.h
> >> -- Looking for sys/types.h - found
> >> -- Looking for stdint.h
> >> -- Looking for stdint.h - found
> >> -- Looking for stddef.h
> >> -- Looking for stddef.h - found
> >> -- Check size of long
> >> -- Check size of long - done
> >> -- Looking for stdlib.h
> >> -- Looking for stdlib.h - found
> >> -- Looking for string.h
> >> -- Looking for string.h - found
> >> -- Looking for strings.h
> >> -- Looking for strings.h - found
> >> -- Looking for sys/stat.h
> >> -- Looking for sys/stat.h - found
> >> -- Looking for sys/times.h
> >> -- Looking for sys/times.h - found
> >> -- Looking for unistd.h
> >> -- Looking for unistd.h - found
> >> -- Looking for getopt.h
> >> -- Looking for getopt.h - found
> >> -- Looking for pthread.h
> >> -- Looking for pthread.h - found
> >> -- Looking for pthread_create
> >> -- Looking for pthread_create - found
> >> -- Found Threads: TRUE
> >> -- Looking for fcntl.h
> >> -- Looking for fcntl.h - found
> >> -- Looking for math.h
> >> -- Looking for math.h - found
> >> -- Looking for errno.h
> >> -- Looking for errno.h - found
> >> -- Looking for limits.h
> >> -- Looking for limits.h - found
> >> -- Looking for stdio.h
> >> -- Looking for stdio.h - found
> >> -- Looking for locale.h
> >> -- Looking for locale.h - found
> >> -- Looking for pthread.h
> >> -- Looking for pthread.h - found
> >> -- Looking for sys/time.h
> >> -- Looking for sys/time.h - found
> >> -- Looking for sys/msg.h
> >> -- Looking for sys/msg.h - found
> >> -- Looking for netdb.h
> >> -- Looking for netdb.h - found
> >> -- Looking for netinet/in.h
> >> -- Looking for netinet/in.h - found
> >> -- Looking for netinet/tcp.h
> >> -- Looking for netinet/tcp.h - found
> >> -- Looking for sys/socket.h
> >> -- Looking for sys/socket.h - found
> >> -- Looking for sys/mman.h
> >> -- Looking for sys/mman.h - found
> >> -- Looking for arpa/inet.h
> >> -- Looking for arpa/inet.h - found
> >> -- Looking for sys/select.h
> >> -- Looking for sys/select.h - found
> >> -- Looking for poll.h
> >> -- Looking for poll.h - found
> >> -- Looking for C++ include cstdlib
> >> -- Looking for C++ include cstdlib - found
> >> -- Looking for C++ include cstring
> >> -- Looking for C++ include cstring - found
> >> -- Looking for C++ include sstream
> >> -- Looking for C++ include sstream - found
> >> -- Looking for C++ include ctime
> >> -- Looking for C++ include ctime - found
> >> -- Check size of int
> >> -- Check size of int - done
> >> -- Check size of size_t
> >> -- Check size of size_t - done
> >> -- Check size of float
> >> -- Check size of float - done
> >> -- Check size of double
> >> -- Check size of double - done
> >> -- Looking for unlink
> >> -- Looking for unlink - found
> >> -- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.11")
> >> -- Looking for Fortran dgemm
> >> -- Looking for Fortran dgemm - found
> >> -- A library with BLAS API found.
> >> -- Looking for Fortran cheev
> >> -- Looking for Fortran cheev - found
> >> -- A library with LAPACK API found.
> >> -- Found NetCDF: /usr/local/lib/libnetcdf.dylib
> >> -- Found FFTW: /usr/local/lib/libfftw3.a
> >> -- Found OpenMP_C: -fopenmp=libomp (found version "3.1")
> >> -- Found OpenMP_CXX: -fopenmp=libomp (found version "3.1")
> >> -- Found OpenMP_Fortran: -fopenmp (found version "4.5")
> >> -- Found OpenMP: TRUE (found version "3.1")
> >> -- Performing Test CCFLAG_W
> >> -- Performing Test CCFLAG_W - Success
> >> -- Performing Test CXXFLAG_W
> >> -- Performing Test CXXFLAG_W - Success
> >> -- Performing Test CCFLAG_Wall
> >> -- Performing Test CCFLAG_Wall - Success
> >> -- Performing Test CXXFLAG_Wall
> >> -- Performing Test CXXFLAG_Wall - Success
> >> -- Performing Test CCFLAG_Wshadow
> >> -- Performing Test CCFLAG_Wshadow - Success
> >> -- Performing Test CXXFLAG_Wshadow
> >> -- Performing Test CXXFLAG_Wshadow - Success
> >> -- Performing Test CCFLAG_Wconversion
> >> -- Performing Test CCFLAG_Wconversion - Success
> >> -- Performing Test CXXFLAG_Wconversion
> >> -- Performing Test CXXFLAG_Wconversion - Success
> >> -- Performing Test CCFLAG_Wno-sign-conversion
> >> -- Performing Test CCFLAG_Wno-sign-conversion - Success
> >> -- Performing Test CXXFLAG_Wno-sign-conversion
> >> -- Performing Test CXXFLAG_Wno-sign-conversion - Success
> >> -- Performing Test CCFLAG_Wno-unknown-pragmas
> >> -- Performing Test CCFLAG_Wno-unknown-pragmas - Success
> >> -- Performing Test CXXFLAG_Wno-unknown-pragmas
> >> -- Performing Test CXXFLAG_Wno-unknown-pragmas - Success
> >> -- Performing Test CCFLAG_Wno-return-type-c-linkage
> >> -- Performing Test CCFLAG_Wno-return-type-c-linkage - Success
> >> -- Performing Test CXXFLAG_Wno-return-type-c-linkage
> >> -- Performing Test CXXFLAG_Wno-return-type-c-linkage - Success
> >> -- Performing Test CCFLAG_Wno-strict-overflow
> >> -- Performing Test CCFLAG_Wno-strict-overflow - Success
> >> -- Performing Test CXXFLAG_Wno-strict-overflow
> >> -- Performing Test CXXFLAG_Wno-strict-overflow - Success
> >> -- Found arts-xml-data in /path/to/ARTS/xml-data
> >> -- Disort enabled (use -DNO_DISORT=1 to disable)
> >> -- RT4 enabled (use -DNO_RT4=1 to disable)
> >> -- FASTEM enabled (use -DNO_FASTEM=1 to disable)
> >> -- Refice enabled (use -DNO_REFICE=1 to disable)
> >> -- Tmatrix enabled (use -DNO_TMATRIX=1 to disable)
> >> -- RELMAT enabled (use -DNO_RELMAT=1 to disable)
> >> -- HITRAN XSEC enabled (experimental)
> >> -- OEM enabled
> >> -- C API enabled
> >> -- Found Doxygen: /usr/local/bin/doxygen (found version "1.8.14") found
> components:  doxygen dot
> >> -- Found LATEX: /Library/TeX/texbin/latex
> >> -- Configuring done
> >> -- Generating done
> >> -- Build files have been written to: /path/to/ARTS/build
> >>
> >>
> >>
> >> For Ubuntu:
> >> -- The C compiler identification is Clang 6.0.0
> >> -- The CXX compiler identification is Clang 6.0.0
> >> -- Check for working C compiler: /usr/bin/clang
> >> -- Check for working C compiler: /usr/bin/clang -- works
> >> -- Detecting C compiler ABI info
> >> -- Detecting C compiler ABI info - done
> >> -- Detecting C compile features
> >> -- Detecting C compile features - done
> >> -- Check for working CXX compiler: /usr/bin/clang++
> >> -- Check for working CXX compiler: /usr/bin/clang++ -- works
> >> -- Detecting CXX compiler ABI info
> >> -- Detecting CXX compiler ABI info - done
> >> -- Detecting CXX compile features
> >> -- Detecting CXX compile features - done
> >> -- The Fortran compiler identification is GNU 7.3.0
> >> -- Check for working Fortran compiler: /usr/bin/gfortran
> >> -- Check for working Fortran compiler: /usr/bin/gfortran  -- works
> >> -- Detecting Fortran compiler ABI info
> >> -- Detecting Fortran compiler ABI info - done
> >> -- Checking whether /usr/bin/gfortran supports Fortran 90
> >> -- Checking whether /usr/bin/gfortran supports Fortran 90 -- yes
> >> -- Looking for sys/types.h
> >> -- Looking for sys/types.h - found
> >> -- Looking for stdint.h
> >> -- Looking for stdint.h - found
> >> -- Looking for stddef.h
> >> -- Looking for stddef.h - found
> >> -- Check size of long
> >> -- Check size of long - done
> >> -- Looking for stdlib.h
> >> -- Looking for stdlib.h - found
> >> -- Looking for string.h
> >> -- Looking for string.h - found
> >> -- Looking for strings.h
> >> -- Looking for strings.h - found
> >> -- Looking for sys/stat.h
> >> -- Looking for sys/stat.h - found
> >> -- Looking for sys/times.h
> >> -- Looking for sys/times.h - found
> >> -- Looking for unistd.h
> >> -- Looking for unistd.h - found
> >> -- Looking for getopt.h
> >> -- Looking for getopt.h - found
> >> -- Looking for pthread.h
> >> -- Looking for pthread.h - found
> >> -- Looking for pthread_create
> >> -- Looking for pthread_create - not found
> >> -- Looking for pthread_create in pthreads
> >> -- Looking for pthread_create in pthreads - not found
> >> -- Looking for pthread_create in pthread
> >> -- Looking for pthread_create in pthread - found
> >> -- Found Threads: TRUE
> >> -- Looking for fcntl.h
> >> -- Looking for fcntl.h - found
> >> -- Looking for math.h
> >> -- Looking for math.h - found
> >> -- Looking for errno.h
> >> -- Looking for errno.h - found
> >> -- Looking for limits.h
> >> -- Looking for limits.h - found
> >> -- Looking for stdio.h
> >> -- Looking for stdio.h - found
> >> -- Looking for locale.h
> >> -- Looking for locale.h - found
> >> -- Looking for pthread.h
> >> -- Looking for pthread.h - found
> >> -- Looking for sys/time.h
> >> -- Looking for sys/time.h - found
> >> -- Looking for sys/msg.h
> >> -- Looking for sys/msg.h - found
> >> -- Looking for netdb.h
> >> -- Looking for netdb.h - found
> >> -- Looking for netinet/in.h
> >> -- Looking for netinet/in.h - found
> >> -- Looking for netinet/tcp.h
> >> -- Looking for netinet/tcp.h - found
> >> -- Looking for sys/socket.h
> >> -- Looking for sys/socket.h - found
> >> -- Looking for sys/mman.h
> >> -- Looking for sys/mman.h - found
> >> -- Looking for arpa/inet.h
> >> -- Looking for arpa/inet.h - found
> >> -- Looking for sys/select.h
> >> -- Looking for sys/select.h - found
> >> -- Looking for poll.h
> >> -- Looking for poll.h - found
> >> -- Looking for C++ include cstdlib
> >> -- Looking for C++ include cstdlib - found
> >> -- Looking for C++ include cstring
> >> -- Looking for C++ include cstring - found
> >> -- Looking for C++ include sstream
> >> -- Looking for C++ include sstream - found
> >> -- Looking for C++ include ctime
> >> -- Looking for C++ include ctime - found
> >> -- Check size of int
> >> -- Check size of int - done
> >> -- Check size of size_t
> >> -- Check size of size_t - done
> >> -- Check size of float
> >> -- Check size of float - done
> >> -- Check size of double
> >> -- Check size of double - done
> >> -- Looking for unlink
> >> -- Looking for unlink - found
> >> -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version
> "1.2.11")
> >> -- Looking for Fortran sgemm
> >> -- Looking for Fortran sgemm - found
> >> -- A library with BLAS API found.
> >> -- Looking for Fortran cheev
> >> -- Looking for Fortran cheev - found
> >> -- A library with LAPACK API found.
> >> -- Found NetCDF: /usr/lib/x86_64-linux-gnu/libnetcdf.so
> >> -- Found FFTW: /usr/lib/x86_64-linux-gnu/libfftw3.so
> >> -- Found OpenMP_C: -fopenmp=libomp (found version "3.1")
> >> -- Found OpenMP_CXX: -fopenmp=libomp (found version "3.1")
> >> -- Found OpenMP_Fortran: -fopenmp (found version "4.5")
> >> -- Found OpenMP: TRUE (found version "3.1")
> >> -- Performing Test CCFLAG_W
> >> -- Performing Test CCFLAG_W - Success
> >> -- Performing Test CXXFLAG_W
> >> -- Performing Test CXXFLAG_W - Success
> >> -- Performing Test CCFLAG_Wall
> >> -- Performing Test CCFLAG_Wall - Success
> >> -- Performing Test CXXFLAG_Wall
> >> -- Performing Test CXXFLAG_Wall - Success
> >> -- Performing Test CCFLAG_Wshadow
> >> -- Performing Test CCFLAG_Wshadow - Success
> >> -- Performing Test CXXFLAG_Wshadow
> >> -- Performing Test CXXFLAG_Wshadow - Success
> >> -- Performing Test CCFLAG_Wconversion
> >> -- Performing Test CCFLAG_Wconversion - Success
> >> -- Performing Test CXXFLAG_Wconversion
> >> -- Performing Test CXXFLAG_Wconversion - Success
> >> -- Performing Test CCFLAG_Wno-sign-conversion
> >> -- Performing Test CCFLAG_Wno-sign-conversion - Success
> >> -- Performing Test CXXFLAG_Wno-sign-conversion
> >> -- Performing Test CXXFLAG_Wno-sign-conversion - Success
> >> -- Performing Test CCFLAG_Wno-unknown-pragmas
> >> -- Performing Test CCFLAG_Wno-unknown-pragmas - Success
> >> -- Performing Test CXXFLAG_Wno-unknown-pragmas
> >> -- Performing Test CXXFLAG_Wno-unknown-pragmas - Success
> >> -- Performing Test CCFLAG_Wno-return-type-c-linkage
> >> -- Performing Test CCFLAG_Wno-return-type-c-linkage - Success
> >> -- Performing Test CXXFLAG_Wno-return-type-c-linkage
> >> -- Performing Test CXXFLAG_Wno-return-type-c-linkage - Success
> >> -- Performing Test CCFLAG_Wno-strict-overflow
> >> -- Performing Test CCFLAG_Wno-strict-overflow - Success
> >> -- Performing Test CXXFLAG_Wno-strict-overflow
> >> -- Performing Test CXXFLAG_Wno-strict-overflow - Success
> >> -- Found arts-xml-data in /path/to/ARTS/xml-data
> >> -- Disort enabled (use -DNO_DISORT=1 to disable)
> >> -- RT4 enabled (use -DNO_RT4=1 to disable)
> >> -- FASTEM enabled (use -DNO_FASTEM=1 to disable)
> >> -- Refice enabled (use -DNO_REFICE=1 to disable)
> >> -- Tmatrix enabled (use -DNO_TMATRIX=1 to disable)
> >> -- RELMAT enabled (use -DNO_RELMAT=1 to disable)
> >> -- HITRAN XSEC enabled (experimental)
> >> -- OEM enabled
> >> -- C API enabled
> >> -- Found Doxygen: /home/user/anaconda3/bin/doxygen (found version
> "1.8.14") found components:  doxygen dot
> >> -- Found LATEX: /usr/bin/latex
> >> -- Configuring done
> >> -- Generating done
> >> -- Build files have been written to: /path/to/ARTS/build
> >>
> >>
> >>
> >> I guess I could just use my Ubuntu which does not produce the errors,
> but if you have time to look into this issue on Mac and pinpoint which
> difference may be the cause, that would be great.
> >>
> >> Thank you,
> >>
> >> Lee
> >>
> >>
> >>
> >> On Wed, Sep 19, 2018 at 8:09 AM Simon Pfreundschuh <
> simon.pfreundsc...@chalmers.se> wrote:
> >> Dear Byungsuk Lee,
> >>
> >>
> >> I ran your controlfile several times but I could not reproduce the
> errors you report.
> >>
> >> For me the iteration always converges and I don't get any errors. Also
> the result
> >>
> >> is always the same, just as expected. Is this really exactly the code
> that your are
> >>
> >> running when you observe the errors?
> >>
> >>
> >> Best,
> >>
> >>
> >> Simon
> >> From: Richard Larsson <ric.lars...@gmail.com>
> >> Sent: Monday, September 17, 2018 11:21:57 AM
> >> To: 이병석
> >> Cc: Simon Pfreundschuh; arts_users...@mailman.rrz.uni-hamburg.de
> >> Subject: Re: [arts-users] ARTS OEM
> >>
> >> Hi,
> >>
> >> Just as a warning, suppressing the bad partition function error is not
> good practice since it is known that they are, you know, bad.  Standard
> tests in ARTS fail by several tenths of Kelvin because the partition
> functions in ARTS are that bad.  Just run with the provided tips xml-files
> instead, because if your temperatures are lower than 70 K or higher than
> 3000 K you probably have another problem.
> >>
> >> With hope,
> >> //Richard
> >>
> >> 2018-09-17 10:31 GMT+02:00 이병석 <cb...@aracnt.com>:
> >> Hello Simon Pfreundschuh,
> >> Thank you for your reply.
> >> I have employed both of the suggestions and still get the irregular
> errors. From the same controlfile modified in the previous email, I have
> included and changed to the following lines:
> >> OEM(method="lm",
> >>    max_iter=15,
> >>    display_progress=1,
> >>    lm_ga_settings=[100,5,2,1000,1,99])
> >> and
> >> AgendaSet( inversion_iterate_agenda ){
> >>
> >>  xClip(ijq = 0, limit_low = 150.0, limit_high = 350)
> >>  Ignore(inversion_iteration_counter)
> >>  # Map x to ARTS' variables
> >>  x2artsStandard
> >>  # To be safe, rerun checks dealing with the atmosphere
> >>  atmfields_checkedCalc
> >>  atmgeom_checkedCalc
> >>  # Calculate yf and Jacobian matching x.
> >>  yCalc( y=yf )
> >>  # Add baseline term
> >>  VectorAddVector( yf, yf, y_baseline )
> >>  # This method takes cares of some "fixes" that are needed to get the
> Jacobian
> >>  # right for iterative solutions. No need to call this WSM for linear
> inversions.
> >>  jacobianAdjustAndTransform
> >> }
> >> I included both of the suggestions, and from there increased the
> maximum number of iterations to 15 and set the temperature limits to be
> between 150 K and 350 K. All other lines remain the same, including the
> input absorption line and atmospheric fields data.
> >> Now I irregularly get the errors during the OEM computation as before,
> of t_field having NaN values or of bad partition function warning (which
> happens for any t_field value outside between 150 K and 300 K). While the
> bad partition function warning could be suppressed in the code, it seems
> that the same problem as before persists.
> >> Could you please look into this issue a little more? I am not sure how
> to tackle the problem.
> >> Thank you for your service.
> >> Regards,
> >> Byungsuk Lee
> >>
> >> ARA Consulting & Technology
> >>
> >> 30 Songdomirae-ro D-1510, Yeonsu-gu, Incheon 21990, South Korea
> >>
> >>
> >>
> >> -----Original Message-----
> >> From: "Simon Pfreundschuh"<simon.pfreundsc...@chalmers.se>
> >> To: "이병석"<cb...@aracnt.com>; "arts_users...@mailman.rrz.uni-hamburg.de
> "<arts_users...@mailman.rrz.uni-hamburg.de>;
> >> Cc:
> >> Sent: 2018-09-14 (금) 15:13:55
> >> Subject: Re: [arts-users] ARTS OEM
> >>
> >>
> >> Hi Byungsuk Lee,
> >>
> >> It is a bit surprising that these errors occur irregularly, since there
> is no randomness
> >> in the test setup. However, if you are running retrievals with external
> observation data
> >> it may well happen that the iteration ends up in a state that produces
> invalid values.
> >>
> >> For your temperature retrieval I would recommend one or both of the
> following solutions:
> >>
> >> 1. Use the Levenberg-Marquardt (LM) iteration scheme: Using the LM
> scheme with a high start
> >>    value for the gamma parameter can help avoid reaching invalid values
> when the forward
> >>    model is non-linear:
> >>
> >>       OEM(method="lm",
> >>           max_iter=5,
> >>           display_progress=1,
> >>           lm_ga_settings=[100,5,2,1000,1,99])
> >>
> >> 2. Clip the x-vector: Using the xClip WSM inside your inversion iterate
> agenda you can force the
> >>    x vector to contain only temperatures within a certain range. If you
> use this approach you
> >>    should check that none of the retrieved temperatures in your final
> state are clipped otherwise your
> >>    results may not be valid.
> >>
> >>     AgendaSet( inversion_iterate_agenda ){
> >>
> >>       xClip(ijq = 0, limit_low = 100.0)
> >>       Ignore(inversion_iteration_counter)
> >>       # Map x to ARTS' variables
> >>       x2artsStandard
> >>
> >>       # To be safe, rerun checks dealing with the atmosphere
> >>       atmfields_checkedCalc
> >>       atmgeom_checkedCalc
> >>
> >>       # Calculate yf and Jacobian matching x.
> >>       yCalc( y=yf )
> >>
> >>       # Add baseline term
> >>       VectorAddVector( yf, yf, y_baseline )
> >>
> >>       # This method takes cares of some "fixes" that are needed to get
> the Jacobian
> >>       # right for iterative solutions. No need to call this WSM for
> linear inversions.
> >>       jacobianAdjustAndTransform
> >>     }
> >>
> >>
> >> Regards,
> >>
> >> Simon
> >>
> >> From: arts_users.mi-boun...@mailman.rrz.uni-hamburg.de <
> arts_users.mi-boun...@mailman.rrz.uni-hamburg.de> on behalf of 이병석 <
> cb...@aracnt.com>
> >> Sent: Friday, September 14, 2018 2:31:25 AM
> >> To: arts_users...@mailman.rrz.uni-hamburg.de
> >> Subject: [arts-users] ARTS OEM
> >>
> >> Dear ARTS users,
> >> I am writing to address a question with the use of OEM in the ARTS
> development version.
> >> From the "TestOEM.arts" in "ARTS/controlfiles/artscomponents/oem", this
> time I changed the codes as follows.
> >> 1) From (line 115):
> >> retrievalAddAbsSpecies(
> >>     species = "O3",
> >>     unit = "vmr",
> >>     g1 = p_ret_grid,
> >>     g2 = lat_grid,
> >>     g3 = lon_grid
> >> )
> >> To:
> >> retrievalAddTemperature (
> >>   g1 = p_ret_grid,
> >>   g2 = lat_grid,
> >>   g3 = lon_grid,
> >>   hse = "off"   )
> >> 2) From (line 125):
> >> VectorSetConstant(vars, nelem, 1e-12)
> >> DiagonalMatrix(sparse_block, vars)
> >> covmat_sxAddBlock(block = sparse_block)
> >> To:
> >> VectorSetConstant(vars, nelem, 0.1)
> >> DiagonalMatrix(sparse_block, vars)
> >> covmat_sxAddBlock(block = sparse_block)
> >> 3) From (line 37):
> >> NumericSet( f_start, 110.436e9 )
> >> NumericSet( f_end, 111.236e9 )
> >> IndexSet( nf, 801 )
> >> IndexSet( np, 81 )
> >> To:
> >> NumericSet( f_start, 110.436e9 )
> >> NumericSet( f_end, 111.236e9 )
> >> IndexSet( nf, 18 )
> >> IndexSet( np, 18 )
> >> 4) From (line 42):
> >> VectorNLinSpace( f_grid, nf, f_start, f_end )
> >> VectorNLogSpace( p_grid,    361, 500e2, 0.1 )
> >> VectorNLogSpace( p_ret_grid, np, 500e2, 0.1 )
> >> To:
> >> VectorNLinSpace( f_grid, nf, f_start, f_end )
> >> VectorNLogSpace( p_grid,    18, 500e2, 0.1 )
> >> VectorNLogSpace( p_ret_grid, np, 500e2, 0.1 )
> >> Overall, I changed the ozone VMR retrieval to temperature retrieval and
> reduced the number of frequencies and pressure layers.
> >> When I run the controlfile multiple times, I irregularly get errors.
> The error messages are
> >>   Run-time error in oem computation: Forward Model Evaluation Error
> >>   Run-time error in agenda: inversion_iterate_agenda
> >>   Run-time error in method: atmfields_checkedCalc
> >>   The variable *t_field* contains one or several NaNs. This is not
> allowed!
> >> or
> >>   All temperatures in *t_field* must be > 0.
> >> or seldom the bad partition function warning.
> >> Here are my questions:
> >> 1) Is this an anticipated error, simply coming from failing to find a
> converging solution? Is it expected that the OEM sometimes throws an error
> as above?
> >> 2) Are there mechanisms (e.g. workspace methods) within the ARTS that
> can prevent the t_field or vmr_field from becoming either negative or NaN
> during the OEM iterations?
> >> Thank you for your assistance.
> >> Regards,
> >> Byungsuk Lee
> >>
> >> ARA Consulting & Technology
> >>
> >> 30 Songdomirae-ro D-1510, Yeonsu-gu, Incheon 21990, South Korea
> >>
> >> Email: cb...@aracnt.com
> >>
> >>
> >> _______________________________________________
> >> arts_users.mi mailing list
> >> arts_users.mi@lists.uni-hamburg.de
> >> https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi
> >>
> >>
> >> _______________________________________________
> >> arts_users.mi mailing list
> >> arts_users.mi@lists.uni-hamburg.de
> >> https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi
> >>
> >>
> >> _______________________________________________
> >> arts_users.mi mailing list
> >>
> >> arts_users.mi@lists.uni-hamburg.de
> >> https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi
> >
> > --
> > Jonas Hagen
> > Institute of Applied Physics
> > University of Bern
> > Sidlerstr. 5, CH-3012 Bern, Switzerland
> > Tel: +41 31 631 5045
> >
> > _______________________________________________
> > arts_users.mi mailing list
> > arts_users.mi@lists.uni-hamburg.de
> > https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi
>
> _______________________________________________
> arts_users.mi mailing list
> arts_users.mi@lists.uni-hamburg.de
> https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi
>
_______________________________________________
arts_users.mi mailing list
arts_users.mi@lists.uni-hamburg.de
https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi

Reply via email to