Running NCL under MacOSXThis document contains helpful notes on installing running NCL on MacOSX systems.
- Install XQuartz
- Install gcc and gfortran
- Go to list of available NCL binaries on the Earth System Grid
- Choose and download the right NCL binary for your MacOSX system
- Install (and test) NCL from downloaded binary
- Potential issues and their solutions:
Install XQuartzIf you are running MacOS 10.8 or higher, then you may be prompted to install XQuartz the first time you run "ncl". This is an X11 server that allows you to display graphics to your screen if you use "x11" as the graphical output option when running "ncl".
For example, when you type:
for the first time, even though you are not generating any graphics, it still needs to start XQuartz to execute this command. If you don't have XQuartz, then a web browser should automatically pop up with a link to http://xquartz.macosforge.org/.
Click on the "XQuartz-2.7.x.dmg" file (XQuartz was at version 2.7.5 as of November 13, 2013), which will download the "XQuartz-2.7.x.dmg" file and likely put it in 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 click on the open-box icon, and this should start the installation. We recommend you accept all the defaults during the installation questions.
Once XQuartz is installed, you can remove the "XQuartz-2.7.x.dmg" file. You may need to logout and log back in order for XQuartz to work properly.
If you have questions about these instructions, or if they don't work, then send email to firstname.lastname@example.org. You need to subscribe first.
Please also visit the section on "Potential issue with displaying graphics to an X11 window".
Install gcc and gfortranIn general, you probably don't need gcc and/or gfortran to run NCL. However, sometimes the "ncl" executable has gcc/gfortran dependencies built in, so these are instructions to help you install gcc/gfortran if there is a dependency.
Open a Terminal window and type the following commands to check if you already have gcc and/or gfortran installed:
which gcc which gfortran
If you don't have them installed, then there are several ways you can get gcc and gfortran installed on your Mac. Here are three of them:
- Check if you have a "Developer's Tool" disk that came with your
Mac. This may have gcc and gfortran on it.
- Download gcc and gfortran from
Go to list of available NCL binaries on the Earth System GridIf this is your first visit to the Earth System Grid, a short registration is required. To register, go to:
and look on the right side of the page under "Quick Links" for "Create Account".
Once you have an account, then following these instructions to get to the list of available NCL binaries:
- Open a browser to http://www.earthsystemgrid.org.
- Click on "NCL: NCAR Command Language".
- Look for the largest NCL version number in the list and click on the link.
- 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.
- Click on "Download Files".
- At this point you will need to login with your OpenID. There are instructions on the page. If you forgot your OpenID or password, then click on the "Forgot your OpenID?" link.
- Click on the "Accept License" button after if you've read and agreed to the license.
- Click on the "Download Individual Files" button.
- Go to the next section on how to choose which binary to download.
Choose and download the right NCL binary for your MacOSX systemAll 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:
If it echoes something like:
This would mean you need to download this binary:
Install (and test) NCL from downloaded binarySee the "Install NCL/NCAR Graphics from a precompiled binary" document.
Potential issue with displaying graphics to an X11 windowIf you are running MacOS 10.8 or later, or have upgraded your X11 server to be XQuartz 2.7.4 or earlier, then you may run into an issue with NCL's X11 window in which not all graphics get drawn correctly. This behavior is erratic and each time you run "ncl" you will likely get a slightly different partial graphic showing up.
We submitted a bug report to XQuartz awhile back and it was fixed in XQuartz version 2.7.5 (as of 11/10/2013). You can get this release from "http://xquartz.macosforge.org".
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.2.0.MacOS_10.9_64bit_gcc481.tar.gz", the compiler version is 4.8.1.
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. We suggest using the free MacPorts package to install a newer compiler. For example:
sudo port install gcc48If you don't have MacPorts, you can get it from http://www.macports.org/install.php.
Another user said he used Homebrew to install a newer compiler:
brew install gcc48
The final step that you might need is to set the environment variable "DYLD_FALLBACK_LIBRARY_PATH" in one of your .* files, (like ".tcshrc", or ".profile", or ".bashrc"):
setenv DYLD_FALLBACK_LIBRARY_PATH /opt/local/lib/gcc48 or export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib/gcc48
Missing "libgomp" issue with "ncl" and/or "ESMF_RegridWeightGen"If you are getting the following error when running "ncl" or "ESMF_RegridWeightGen":
dyld: Library not loaded: /usr/local/lib/libgomp.1.dylib Referenced from: /opt/local/bin/ncl Reason: image not found
then it is likely because you have an older version of the gcc/gfortran compilers on your system than what NCL was compiled with. See the above section which explains how to install a newer compiler, which should then get you the missing "libgomp.1.dylib" library. After installing the new compiler, it should be in a directory like "/opt/local/lib/gcc48".
Increase stacksize limitsMany 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
- If you try to run NCL, and get an error like:
dyld: Library not loaded: /usr/local/gfortran/lib/libgfortran.3.dylib
Then this may mean that you don't have the same version of gcc/gfortran installed that NCL was built with. You can first try typing:
to see if this file is already on your machine. If it is, then you may need to set the environment variable DYLD_LIBRARY_PATH to point to the location of this file.
Otherwise, if you don't have the file, go to http://hpc.sourceforge.net/ and download the latest version of gcc/gfortran.