Running MET on 64-bit Machines

The MET source code itself compiles and runs fine on 64-bit machines. However, BUFRLIB, on which MET relies for reading PrepBufr point observation files, is not 64-bit compatible.

The PB2NC tool calls BUFRLIB routines to read the PrepBufr data. If running PB2NC on a 64-bit machine, you may encounter a runtime error from BUFRLIB similar to the following:

**************BUFR ARCHIVE LIBRARY ABORT***************
BUFRLIB: OPENBF - FIRST 4 BYTES READ FROM RECORD IN INPUT FILE
CONNECTED TO UNIT 11 NOT 'BUFR', DOES NOT CONTAIN BUFR DATA
**************BUFR ARCHIVE LIBRARY ABORT***************

Ideally, BUFRLIB will eventually be updated to be 64-bit compliant. In the meantime, if you would like to use PrepBufr point observations in MET and run the PB2NC tool, please follow the directions below for building a 32-bit version of MET on a 64-bit machine.

Building 32-bit MET on a 64-bit machine

In order to build a 32-bit version of MET on a 64-bit machine, you will need to rebuild MET and all of the libraries on which it relies. Listed below are instructions for building a 32-bit version of MET using the GNU gcc and g77 compilers. It is up to the user to adapt these instructions as neccessary for their machine or if a different set of compilers is chosen.

Compiling 32-bit BUFRLIB

In the BUFRLIB directory, execute the following commands:

  • gcc -m32 -c -DUNDERSCORE *.c
  • g77 -m32 -c -DUNDERSCORE -fno-second-underscore *.f
  • ar crv libbufr.a *.o

Compiling 32-bit NetCDF

In the NetCDF directory, execute the following commands:

  • setenv CC /usr/bin/gcc
  • setenv CXX /usr/bin/g++
  • setenv CFLAGS -m32
  • setenv CPPFLAGS -m32
  • ./configure --prefix=/install/dir
  • make check
  • make install

Compiling 32-bit GSL

In the GSL directory, execute the following commands:

  • setenv CC /usr/bin/gcc
  • setenv CFLAGS -m32
  • ./configure --prefix=/install/dir
  • make check
  • make install

Compiling 32-bit MET

In the top-level MET directory, execute the following commands:

  • Edit your Makefile by uncommenting out the -m32 flags.
  • make clean
  • make >& make_met.log&
  • tail -f make_met.log

Running MET

Once MET has been rebuilt, try rerunning the test_pb2nc test script:

  • cd scripts
  • ./test_pb2nc.sh

If you still encounter a runtime error from the PB2NC tool, try reblocking the input PrepBufr file by running the cwordsh utility on it and rerunning the test script.