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