NCL Website header
NCL > Download

Running NCL under MacOSX

This document contains helpful notes on installing running NCL on MacOSX systems.

Install XQuartz

XQuartz is an X Window System that enables you to display graphics to your screen if you use "x11" as the graphical output option when executing ncl scripts.

Even if you don't plan to use "x11" as an output option, you are still required to have a recent version of XQuartz installed. At the time NCL V6.4.0 was released, XQuartz was at version 2.7.11. You must have this version or later for NCL V6.4.0 to work.

To test if you can display X11 graphics via an NCL script, open a Terminal window and type:

    ng4ex xy01n -clean

This should start XQuartz and pop up a window with an XY plot. Left-clicking on this window will make it go away.

If you don't get a window and/or you get an regarding an "incompatible library version" for fontconfig, then you may need to install or update XQuartz. Go to and click on the "XQuartz-x.y.z.dmg" link. This should cause the file to be download, likely into your "Downloads" directory.

Navigate your way to this file and double-click on it. This will cause a window with a open box icon to pop up. Double clicking on the icon should start the installation. We recommend you accept all the defaults during the installation questions.

Once XQuartz is installed, you can remove the "XQuartz-x.y.z.dmg" file. You may need to logout and log back in order for XQuartz to work properly. You can then try the "ng4ex" command again.

If you have questions about these instructions, or if they don't work, then send email to You need to subscribe first.

Install gcc and gfortran

The "ncl" executable will likely have gcc and/or gfortran library dependencies. Installing these two compilers will usually get you the required system libraries like "libgomp.x.dylib" and "libgfortran.x.dylib".

Open a Terminal window and type the following commands to check if you already have gcc and/or gfortran installed, and to see what version you are running:

   which gcc
   which gfortran
   gcc --version
   gfortran --version

If you don't have them installed, then there are a few ways you can install gcc and gfortran on your Mac:

  • Download gcc and gfortran from If you download the "gcc-x.y.bin.tar.gz" file, you will get both gcc and gfortran.

    We recommend this method, as these are the compilers we use to build NCL.

  • If XCode is installed on your Mac, then you may have the "clang" C compiler, but you will still need the gfortran compiler, because it provides the "libgomp" library that NCL will need at run-time.

  • Use a package manager like MacPorts or Homebrew to install the compilers.

    These packages are great for installing other software you might need, like ImageMagick.

Go to list of available NCL binaries on the Earth System Grid

Follow these instructions to get to the list of available NCL binaries.

Here's the direct link: NCL 6.4.0 binaries

  1. Open a browser to
  2. Click on "NCL: NCAR Command Language".
  3. Look for the largest NCL version number in the list and click on the link.
  4. Select one of the "precompiled binaries" link, unless you want the source code. Choose the "not OPeNDAP-enabled" link if you don't need OPeNDAP capabilities.
  5. Click on "Download Files".
  6. Click on the "Download Individual Files" button.
  7. Go to the next section on how to choose which binary to download.

Choose and download the right NCL binary for your MacOSX system

All MacOSX binaries are 64-bit, even if they have "i386" in the name of the file. This is because they were all built with the "-m64" option with the gcc and gfortran compilers.

If you're not sure what MacOSX binary you need to download, type:

  sw_vers -productVersion
  uname -m

This will echo something like:


This would mean you need to download this binary:


Install (and test) NCL from downloaded binary

See the "Install NCL/NCAR Graphics from a precompiled binary" document.

Symbol not found: "__ZdaPvm"

If you are getting the following error when running ncl:

  dyld: Symbol not found: __ZdaPvm
    Referenced from: /usr/local/bin/ncl
    Expected in: /usr/lib/libstdc++.6.dylib
   in /usr/local/bin/ncl

Then this likely means that you downloaded the MacOS binary that was built with the GNU 6.1.0 compilers, but you have an older version of GNU compilers installed on your system.

You have a few options:

  1. Download one of these two binaries instead, which were built with GNU 5.4.0:


  2. Install NCL via conda.

  3. Install the 6.1.x or higher version of the GNU compilers.

Incompatible library version for "libfontconfig"

If you are getting the following error when running ncl:

  Incompatible library version: ncl requires version 11.0.0 or later, but
        libfontconfig.1.dylib provides version 10.0.0
then this is likely due to having an old version of XQuartz. See the "Install XQuartz" section above on how to upgrade your version of XQuartz.

Missing "___emutls_get_address" symbol with ncl

If you are getting the following error when running ncl:

   dyld: lazy symbol binding failed: Symbol not found: ___emutls_get_address

then it is likely because you have an older version of the gcc/gfortran compilers on your system than what NCL was compiled with.

You can determine what version of gcc your NCL was compiled with by the name of the precompiled NCL binary file that you downloaded. For example, in the file "ncl_ncarg-6.4.0.MacOS_10.12_64bit_gnu530.tar.gz", the GNU compiler version is 5.3.0.

To see what default version of gcc you have on your own system, type "gcc --version" on the UNIX command line. You may have other versions of gcc installed on your system, so look for these first, or check with your system administrator. They might be in directories like "/usr/local/bin" or "/opt/local/bin".

If your gcc is older than the one used to compile NCL and you can't find any newer versions, then you need to install the newer compiler. You can still keep your older compiler, as the newer one can be installed to a separate directory.

Read the Install gcc and gfortran section for some options for installing gcc/gfortran.

The final step that you might need, especially if you used Homebrew or MacPorts to install gcc/gfortran, is to set the environment variable "DYLD_FALLBACK_LIBRARY_PATH" in one of your .* files, (like ".tcshrc", or ".profile", or ".bashrc"). HOWEVER, this is generally NOT recommended. Only do this as a last resort. Some examples:

   setenv DYLD_FALLBACK_LIBRARY_PATH /opt/local/lib/gcc48
   export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib/gcc48

Missing "libgomp" or "libgfortran" issue with ncl and/or ESMF_RegridWeightGen

If you are getting one or more of the the following errors when running ncl or ESMF_RegridWeightGen:

  dyld: Library not loaded: /usr/local/lib/libgomp.1.dylib
  dyld: Library not loaded: /usr/local/lib/libgfortran.3.dylib

then it is likely because you have an older version of the gfortran compiler on your system than what NCL was compiled with, or you don't have gfortran installed at all.

See the install compilers section above which explains how to install gfortran, which should then get you the missing "libgomp.x.dylib" and "libgfortran.y.dylib" libraries. After installing gfortran, the libraries will be should be in a directory like "/usr/local/lib".

Increase stacksize limits

Many people running NCL under MacOSX have reported getting segmentation faults on simple scripts. To avoid this, follow one of the steps depending on whether you're running bash (the default) or csh/tcsh:

For bash, put this in your .profile file:

    ulimit -s unlimited

For csh/tcsh, put this in your .cshrc or .tcshrc file:

    limit stacksize unlimited 

Help us troubleshoot problems

If you have read this whole document and NCL still is not working, then send email to You need to subscribe first.

In your email, tell us which MacOS binary you downloaded from the ESG, and include the output from running all of the following commands on the command line of a Terminal window:

  which ncl
  ncl -V
  otool -L `which ncl`
  env | grep NCARG
  which gcc
  which gfortran
  gfortran --version
  gcc --version