Satellite Application Facility for Numerical Weather Prediction › Forums › RTTOV › Older Versions › RTTOV 11 › RTTOV 11 General Discussion › Compiling RTTOV 11.3
Tagged: RTTOV 11.3
- This topic has 8 replies, 3 voices, and was last updated 6 years, 9 months ago by
James Hocking.
-
AuthorPosts
-
February 1, 2017 at 12:38 pm #9865
Anonymous
InactiveHi,
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.
February 1, 2017 at 2:05 pm #9866James Hocking
KeymasterHi 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,
JamesFebruary 1, 2017 at 3:31 pm #9867Anonymous
InactiveHi 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/113I’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.1February 2, 2017 at 8:34 am #9869Anonymous
InactiveJust 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=ifortCC=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
February 21, 2017 at 4:30 pm #9975James Hocking
KeymasterHi 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,
JamesFebruary 24, 2017 at 2:42 pm #10003Anonymous
InactiveThanks James!
Appreciate the help!
/M
October 20, 2017 at 12:19 pm #11324Jana Mendrok
ParticipantDear 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,
Janaps. 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 2October 20, 2017 at 1:00 pm #11325Jana Mendrok
ParticipantHi 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,
JanaNovember 7, 2017 at 10:38 am #11395James Hocking
KeymasterHi 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 -
AuthorPosts
- You must be logged in to reply to this topic.