Compiling RTTOV 11.3

Tagged: 

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #9865
    Anonymous
    Inactive

    Hi,

    I’m having difficulty compiling RTTOV 11.3.
    This is the first time something like this has happened and I’m trying to track down the cause:

    cd ../../tmp-ifort/coef_io && ifort -I../..//include -I/software/apps/netcdf/4.3.2/i1501-hdf5-1.8.14/include -D_RTTOV_HDF -I/software/apps/hdf5/1.8.14/i1501/include -fPIC -O3 -fp-model source -I../..//mod -c ../../src/coef_io/rttov_coef_io_mod.F90 -o ../..//obj/rttov_coef_io_mod.o
    cd ../../tmp-ifort/coef_io && ifort -I../..//include -I/software/apps/netcdf/4.3.2/i1501-hdf5-1.8.14/include -D_RTTOV_HDF -I/software/apps/hdf5/1.8.14/i1501/include -fPIC -O3 -fp-model source -I../..//mod -c ../../src/coef_io/rttov_get_pc_predictindex.F90 -o ../..//obj/rttov_get_pc_predictindex.o
    rttov_get_pc_predictindex.F90(93): #error: can’t find include file: rttov_hdf_load.interface
    make[1]: *** [../..//obj/rttov_get_pc_predictindex.o] Error 1
    make[1]: Leaving directory `/nobackup/rossby18/sm_marst/rttov/11.3/src/coef_io’

    I think RTTOV was suppose to generate the rttov_hdf_load.interface files during the compilation process but this is not happening. I’ve downloaded all the coefficient files and I’m using the compilation command:

    make ARCH=ifort all
    I’ve edited the Makefile.local to add the paths to for hdf5 and netcdf.

    Any tips on finding the problem would be appreciated.

    #9866
    James HockingJames Hocking
    Keymaster

    Hi Marston,

    You need to manually regenerate the RTTOV Makefiles to include the HDF code. You can do this from the src/ directory like so:

    $ ../build/Makefile.PL RTTOV_HDF=1

    Then you can run make.

    Best,
    James

    #9867
    Anonymous
    Inactive

    Hi James,

    I’ve done as you instructed. The result gave no output.
    [sm@n384 build]$ ./Makefile.PL RTTOV_HDF=1
    [sm@n384 113]$ find . -name “rttov_hdf_load.interface”
    [sm@n384 113]$ pwd
    /nobackup/rossby18/sm_marst/rttov/113

    I’ve done on on a newly unpacked RTTOV11.3 from the tarball.
    I’ve changed the Makefile.local to add the netcdf and hdf5 paths and flags.

    Could this be something with my compiler?
    ifort version 15.0.1

    #9869
    Anonymous
    Inactive

    Just an update.
    I downloaded a clean tarball from the NWP RTTOV site and compiled it WITHOUT HDF5. I took the ascii format of the coefficient files instead. This move allowed for a good compilation but then I got 8 of 11 differences in the tests or all 11 are different. I’ve been trying both IFORT or MPIF90.
    The RTTOV setup file build/arch/ifort:

    FC=ifort
    FC77=ifort

    CC=gcc
    LDFLAGS_ARCH=
    CFLAGS_ARCH=
    FFLAGS_ARCH=-fPIC -O3 -fp-model source
    AR=ar r

    # -fp-model source ensures more consistent floating point results

    F2PY=f2py –fcompiler=intelem
    F2PYFLAGS_ARCH=”-fPIC”
    F2PYLDFLAGS_ARCH=

    What is causing the tests to fail? Before I turn to the guys responsible for the Linux cluster I would like to understand what maybe causing the differences.

    I’m using ifort version 15.0.1

    /M

    #9975
    James HockingJames Hocking
    Keymaster

    Hi Marston,

    Sorry, I didn’t get a notification about your posts. Regarding the first one, the Makefile.PL script recreates the Makefiles. After running it you need to recompile RTTOV. If you compile RTTOV using the build/rttov_compile.sh script it takes care of the Makefiles automatically.

    We discussed your second issue (differences to the test suite) via email. For the benefit of anyone else reading this, the differences were due to running the tests using the most recent coefficient files from the website. The test reference data was generated using the coefficient files in the package.

    Best regards,
    James

    #10003
    Anonymous
    Inactive

    Thanks James!

    Appreciate the help!

    /M

    #11324
    Jana MendrokJana Mendrok
    Participant

    Dear RTTOV-team,
    (hi Marston 😉 )

    I also have problems compiling RTTOV11.3 and the problem seems to be related to the HDF library (error message below).

    I am compiling using the rttov_compile.sh script. Without HDF5 support (at least that’s what I think and intend: I answered ‘n’ on the build/Makefile.local question and the compilation summary also says ‘HDF5 coefficient I/O : n’).

    nevertheless it brings up the rttov_hdf_load.interface error.
    The error does not occur, though, when compiling on my notebook. (both run with ubuntu, but different versions (14.04 on notebook, 16.04 on desktop), and also different software packages and versions installed, e.g. gfortran is 4.8.4 and 5.4.0, respectively.)

    I’d appreciate any suggestions!
    Thanks & best wishes,
    Jana

    ps. compilation error message:

    cd ../../tmp-gfortran/coef_io && gfortran -I../.././/include -D_RTTOV_HDF -I/usr//include -fPIC -O3 -ffree-line-length-none -/.././/mod -c ../../src/coef_io/rttov_get_pc_predictindex.F90 -o ../.././/obj/rttov_get_pc_predictindex.o
    ../../src/coef_io/rttov_get_pc_predictindex.F90:93:0:

    #include “rttov_hdf_load.interface”
    ^
    Fatal Error: rttov_hdf_load.interface: No such file or directory
    compilation terminated.
    Makefile:158: recipe for target ‘../.././/obj/rttov_get_pc_predictindex.o’ failed
    make[1]: *** [../.././/obj/rttov_get_pc_predictindex.o] Error 1
    make[1]: Leaving directory ‘/home/mendrok/rt_models/rttov/src/coef_io’
    Makefile:115: recipe for target ‘coef_io/lib’ failed
    make: *** [coef_io/lib] Error 2

    #11325
    Jana MendrokJana Mendrok
    Participant

    Hi again,

    got it fixed by commenting out the HDF5 flags settings in build/Makefile.local (erm, yes, actually reading documentation helps :D).

    In this view, I however find the compile script rather misleading, when it asks
    “Have you updated the file build/Makefile.local with the location of your HDF5 or netCDF installation? (y/n)”
    Would be better, if the script would mention that one also has to modify/update the Makefile in case one does not want the HDF library linked. Or, even better, automatically modify these settings by the script.

    My 2 cents…
    Best wishes,
    Jana

    #11395
    James HockingJames Hocking
    Keymaster

    Hi Jana,

    Apologies for not replying sooner. If you don’t need HDF5 then RTTOV can be compiled straight “out-of-the-box” without editing any files. The Makefile.local which is supplied with RTTOV has the relevant HDF5 lines commented out (in particular the FFLAGS_HDF5 and LDFLAGS_HDF5 lines) and so the file does not need editing.

    In your case above it seems that at least the FFLAGS_HDF5 line had been uncommented in your Makefile.local because the RTTOV_HDF macro was passed to the compiler (note the “-D_RTTOV_HDF” in the output: this macro is supplied by FFLAGS_HDF5 along with the include). This macro tells the compiler to include the HDF5-related source code: for the compilation to succeed this requires the HDF5 library location to be specified in Makefile.local and the Makefiles need to be regenerated to include the code in the src/hdf/ directory. The rttov_compile.sh script handles this latter step automatically.

    Best wishes,
    James

Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.