Configuration Help

What is "configuration" anyway?

WRFDA is designed to be compiled on a wide variety of systems for a wide variety of purposes. This flexibility comes at a cost: the user must specify the compilation options that they want, including their operating system, compilers, and parallelism type. These options are specified using the configure script. This script attempts to determine your system setup, and allows you to choose from several different options.

How do I choose the best option for my purposes

Because the same configuration script is used for all WRF-related products, you must specify that you want to compile WRFDA by issuing the command ./configure wrfda. As an example, this is what this step will look like on a Linux system:

> ./configure wrfda
checking for perl5... no
checking for perl... found /usr/bin/perl (perl)
Will use NETCDF in dir: /usr/local/netcdf
PHDF5 not set in environment. Will configure WRF for use without.
$JASPERLIB or $JASPERINC not found in environment, configuring to build without grib2 I/O...
------------------------------------------------------------------------
Please select from among the following supported platforms.
 
   1.  Linux x86_64 i486 i586 i686, PGI compiler with gcc  (serial)
   2.  Linux x86_64 i486 i586 i686, PGI compiler with gcc  (smpar)
   3.  Linux x86_64 i486 i586 i686, PGI compiler with gcc  (dmpar)
   4.  Linux x86_64 i486 i586 i686, PGI compiler with gcc  (dm+sm)
   5.  Linux x86_64 i486 i586 i686 PGI compiler with pgcc YELLOWSTONE  (serial)
   6.  Linux x86_64 i486 i586 i686 PGI compiler with pgcc YELLOWSTONE  (smpar)
   7.  Linux x86_64 i486 i586 i686 PGI compiler with pgcc YELLOWSTONE  (dmpar)
   8.  Linux x86_64 i486 i586 i686 PGI compiler with pgcc YELLOWSTONE  (dm+sm)
   9.  Linux x86_64, PGI compiler with pgcc, SGI MPT  (serial)
  10.  Linux x86_64, PGI compiler with pgcc, SGI MPT  (smpar)
  11.  Linux x86_64, PGI compiler with pgcc, SGI MPT  (dmpar)
  12.  Linux x86_64, PGI compiler with pgcc, SGI MPT  (dm+sm)
  13.  Linux x86_64, PGI accelerator compiler with gcc  (serial)
  14.  Linux x86_64, PGI accelerator compiler with gcc  (smpar)
  15.  Linux x86_64, PGI accelerator compiler with gcc  (dmpar)
  16.  Linux x86_64, PGI accelerator compiler with gcc  (dm+sm)
  17.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (serial)
  18.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (smpar)
  19.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (dmpar)
  20.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (dm+sm)
  21.  Linux x86_64 i486 i586 i686, Xeon Phi (MIC architecture) ifort compiler with icc (dm+sm)
  22.  Linux x86_64 i486 i586 i686, Xeon (SNB with AVX mods) ifort compiler with icc (serial)
  23.  Linux x86_64 i486 i586 i686, Xeon (SNB with AVX mods) ifort compiler with icc (smpar)
  24.  Linux x86_64 i486 i586 i686, Xeon (SNB with AVX mods) ifort compiler with icc (dmpar)
  25.  Linux x86_64 i486 i586 i686, Xeon (SNB with AVX mods) ifort compiler with icc (dm+sm)
  26.  Linux x86_64 i486 i586 i686, ifort compiler with icc YELLOWSTONE (serial)
  27.  Linux x86_64 i486 i586 i686, ifort compiler with icc YELLOWSTONE (smpar)
  28.  Linux x86_64 i486 i586 i686, ifort compiler with icc YELLOWSTONE (dmpar)
  29.  Linux x86_64 i486 i586 i686, ifort compiler with icc YELLOWSTONE (dm+sm)
  30.  Linux x86_64 i486 i586 i686, ifort compiler with icc, SGI MPT (serial)
  31.  Linux x86_64 i486 i586 i686, ifort compiler with icc, SGI MPT (smpar)
  32.  Linux x86_64 i486 i586 i686, ifort compiler with icc, SGI MPT (dmpar)
  33.  Linux x86_64 i486 i586 i686, ifort compiler with icc, SGI MPT (dm+sm)
  34.  Linux x86_64 i486 i586 i686, ifort compiler with icc, IBM POE (serial)
  35.  Linux x86_64 i486 i586 i686, ifort compiler with icc, IBM POE (smpar)
  36.  Linux x86_64 i486 i586 i686, ifort compiler with icc, IBM POE (dmpar)
  37.  Linux x86_64 i486 i586 i686, ifort compiler with icc, IBM POE (dm+sm)
  38.  Linux i486 i586 i686 x86_64, PathScale compiler with pathcc (serial)
  39.  Linux i486 i586 i686 x86_64, PathScale compiler with pathcc (dmpar)
  40.  x86_64 Linux, gfortran compiler with gcc (serial)
  41.  x86_64 Linux, gfortran compiler with gcc (smpar)
  42.  x86_64 Linux, gfortran compiler with gcc (dmpar)
  43.  x86_64 Linux, gfortran compiler with gcc (dm+sm)
  44.  Cray XE and XC30 CLE/Linux x86_64, Cray CCE compiler (serial)
  45.  Cray XE and XC30 CLE/Linux x86_64, Cray CCE compiler (smpar)
  46.  Cray XE and XC30 CLE/Linux x86_64, Cray CCE compiler (dmpar)
  47.  Cray XE and XC30 CLE/Linux x86_64, Cray CCE compiler (dm+sm)
  48.  Cray XC30 CLE/Linux x86_64, Xeon ifort compiler (serial)
  49.  Cray XC30 CLE/Linux x86_64, Xeon ifort compiler (smpar)
  50.  Cray XC30 CLE/Linux x86_64, Xeon ifort compiler (dmpar)
  51.  Cray XC30 CLE/Linux x86_64, Xeon ifort compiler (dm+sm)
  52.  Linux x86_64, Fujitsu FX10 mpifrtpx and mpifccpx compilers (serial)
  53.  Linux x86_64, Fujitsu FX10 mpifrtpx and mpifccpx compilers (smpar)
  54.  Linux x86_64, Fujitsu FX10 mpifrtpx and mpifccpx compilers (dmpar)
  55.  Linux x86_64, Fujitsu FX10 mpifrtpx and mpifccpx compilers (dm+sm)

Enter selection [1-55] :

Tip My configure script looks different! What gives?
Starting with WRF/WRFDA version 3.7, the configure script was updated to make selecting options easier. This is the version of this page for version 3.6.1 and earlier; click here for the newer version!

Each line contains several columns of data. All of these data are important, so be sure to pay attention:

    1. Operating system and architecture
      The text before the first comma indicates the operating system and architecture (processor type). You can type "uname -a" on the command line in most systems to see your system's specifications. Possible values are the following:
      • Linux. This is the most common operating system for modern supercomputers, and can also be used on PCs. Linux can be run on systems with several different architectures:
        • x86_64, a very common 64-bit architecture
        • i386–686, older (but still fairly common) 32-bit architectures
        • ppc64, a 64-bit architecture for PowerPC processors
        • SGI Altix, an architecture for Altix supercomputers
        • ia64, a rarely-seen 64-bit architecture for Itanium systems
      • Darwin (MACOS). This is the operating system for Apple PCs.
      • AIX. This is an IBM-specific operating system for Unix-based supercomputers

    2. Fortran and C compilers
      The next bit of text indicates the compilers WRFDA should be built with. The configure script does not try to determine which compilers are actually present on your system, so you will have to determine which ones are available for yourself. The most common options are:
      • GNU fortran compiler (gfortran) with GNU C compiler (gcc)
      • PGI fortran compiler (pgf90) with PGI C compiler (pgcc)
      • PGI fortran compiler (pgf90) with GNU C compiler (gcc)
      • Intel fortran compiler (ifort) with Intel C compiler (icc)

      If you are unsure whether you can use a certain compiler, you can issue the "which" command to see if that particular compiler exists in your path (for example: "which gfortran").

    3. Parallelization option
      The parallelization option is the term in parenthesis at the end of each line. We recommend selecting a "dmpar" (distributed-memory parallel) option for several reasons:
      • Code compiled to run in serial restricts you to a single processor for running WRFDA, leading to slower execution and the potential for segmentation faults if you choose too large a domain or too many observations.
      • Code compiled to run in parallel takes about the same amount of compilation time.
      • Code compiled to run in parallel can still be run in serial if the need arises.
      • Shared-memory options (smpar and dm+sm) are not supported for WRFDA (they may work on some systems, but hidden errors and problems with irreproducability are likely due to the way most Fortran compilers handle shared memory). They will not provide a significant advantage over distributed-memory anyway.

You should enter the number of the selection you choose, then hit [Enter]. Again, make sure that you choose the same compilers (both FORTRAN and C) that you used to compile your netCDF library!

Tip I don't see my operating system/compiler in this list :(
WRFDA supports a wide range of platforms, but there is always a chance that yours is not included. Contact wrfhelp if you are absolutely sure you can not use one of the compilers listed. And before you ask: no, we can not support Windows.

Note: This website is currently under construction. If you notice any problems with the website, including but not limited to broken links, formatting errors, or incorrect information, please submit an email to the or wrfhelp@ucar.edu so that we can address the problem. We appreciate your feedback!

   

 

NOTE: These pages makes use of Java Script. Enable Java on your computer to make use of all the functionality.