<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.myroms.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Marcellosekoot</id>
	<title>WikiROMS - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.myroms.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Marcellosekoot"/>
	<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/Special:Contributions/Marcellosekoot"/>
	<updated>2026-04-27T17:01:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4511</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4511"/>
		<updated>2012-03-06T20:03:51Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* MPICH2 */ changed frotransoft to fortransoft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfortransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; &amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt; ./configure --with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*If you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /Users/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*Within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4510</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4510"/>
		<updated>2012-03-06T19:57:21Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* Compile ROMS */ removed reference to Cygwin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; &amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt; ./configure --with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*If you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /Users/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*Within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4509</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4509"/>
		<updated>2012-03-06T19:35:47Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* Run ROMS */  modified path from /home to /Users, deleted reference to Cygwin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; &amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt; ./configure --with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*In cygwin, if you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /Users/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*Within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4508</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4508"/>
		<updated>2012-03-06T04:40:34Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* NetCDF Version 4 Format (optional) */ formatting corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; &amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt; ./configure --with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*In cygwin, if you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /home/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*In cygwin, within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4507</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4507"/>
		<updated>2012-03-06T04:39:53Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* NetCDF Version 4 Format (optional) */  formatting corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; &amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;&amp;amp;gt; ./configure --with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;&amp;amp;gt; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*In cygwin, if you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /home/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*In cygwin, within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4506</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4506"/>
		<updated>2012-03-06T04:38:50Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* NetCDF Version 4 Format (optional) */  formatting corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; &amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; ./configure --with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*In cygwin, if you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /home/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*In cygwin, within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4503</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4503"/>
		<updated>2012-02-27T02:28:37Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* MPICH2 */  formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; &amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*In cygwin, if you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /home/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*In cygwin, within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4502</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4502"/>
		<updated>2012-02-25T07:58:04Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* HDF5 (optional) */  added filename to ftp path for automatic download&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; &amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*In cygwin, if you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /home/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*In cygwin, within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4501</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4501"/>
		<updated>2012-02-25T07:53:00Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* NetCDF Version 3 Format (recommended) */  formatting corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/ ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; &amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*In cygwin, if you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /home/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*In cygwin, within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4500</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4500"/>
		<updated>2012-02-25T07:50:47Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* NetCDF Version 3 Format (recommended) */  moved the &amp;lt;br /&amp;gt; tag to start a newline beofre ./configure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/ ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; &amp;lt;br /&amp;gt;./configure --prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*In cygwin, if you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /home/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*In cygwin, within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4499</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4499"/>
		<updated>2012-02-25T07:42:18Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* GNU Fortran Compiler */  changed the response to &amp;#039;which&amp;#039; from /usr to /opt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/opt/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/ ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*In cygwin, if you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /home/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*In cygwin, within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4498</id>
		<title>ROMS Mac Snow Leopard</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=ROMS_Mac_Snow_Leopard&amp;diff=4498"/>
		<updated>2012-02-25T07:39:07Z</updated>

		<summary type="html">&lt;p&gt;Marcellosekoot: /* Open MPI */ added br tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;Tutorial: Installing ROMS on Mac OS X Snow Leopard&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;THIS PAGE IS UNDER CONSTRUCTION&amp;lt;/span&amp;gt;{{warning}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special thanks to Parker MacCready at the University of Washington. Most of the original tutorial was taken verbatim from his website. The tutorial for a MacBook Pro running Mac OS X 10.5.4, Darwin 9.4.0 can be found [[ROMS_Mac|here]].&lt;br /&gt;
&lt;br /&gt;
This tutorial was tested on an iMac and a MacBook Pro running Mac OS X 10.6.4, Darwin 10.4.0. The iMac is running in full 64-bit mode; for details on what that means and how to do it, [http://macperformanceguide.com/SnowLeopard-64bit.html click here]. The iMac is a quad-core Intel Core i7 processor while the MacBook Pro is a dual-core Intel Core i7 processor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Code Box Legend:&#039;&#039;&#039; In the code boxes, The text in &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; is what you need to type at the terminal prompt and the &#039;&#039;&#039;black&#039;&#039;&#039; text is what is displayed as a result of your command. Ellipsis (&#039;&#039;&#039;. . .&#039;&#039;&#039;) mean that large amounts of output are omitted for brevity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;You must be logged in as a user with administrator privileges to complete most this tutorial.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Supporting Software==&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; most of this software needs to be installed in the order given (e.g. you need Xcode to install MacPorts, MacPorts to install gfortran, and gfortran to make HDF5, NetCDF, etc.).&lt;br /&gt;
&lt;br /&gt;
===Xcode===&lt;br /&gt;
&lt;br /&gt;
Download the Apple Developers Tools Xcode, from [http://developer.apple.com/technologies/tools/ developer.apple.com/technologies/tools/], click the Xcode 3: &amp;quot;Free Download&amp;quot; button then the &amp;quot;Mac Dev Center&amp;quot; button. Follow the standard installation (this means that it will install itself when you click on it, and you just need to click to accept a few defaults). To download this you need to sign up (free) as an ADC member, but if you already have an Apple account (e.g. for iTunes) you can use that. It is free.&lt;br /&gt;
&lt;br /&gt;
{{warning}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Caution:&amp;lt;/span&amp;gt; the download is almost 3 GB so it might take a while to download.&lt;br /&gt;
&lt;br /&gt;
===MacPorts===&lt;br /&gt;
&lt;br /&gt;
Get &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MacPorts-1.9.1-10.6-SnowLeopard.dmg&amp;lt;/span&amp;gt; from the &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;Snow Leopard&amp;lt;/span&amp;gt; link at [http://www.macports.org/install.php www.macports.org/install.php] and follow the standard installation. By default the the installation should add a block similar to that shown below to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# MacPorts Installer addition on 2010-09-17_at_13:36:22: adding an appropriate&amp;lt;br /&amp;gt;PATH variable for use with MacPorts.&amp;lt;br /&amp;gt;export PATH=/opt/local/bin:/opt/local/sbin:$PATH&amp;lt;br /&amp;gt;# Finished adapting your PATH environment variable for use with MacPorts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; If you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you might have to adapt these lines and/or put them in different file. If you copy and paste the above lines from this tutorial page, remove the line return after the word &#039;&#039;&#039;appropriate&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To test if MacPorts was installed and setup correctly, open a terminal window (Applications -&amp;gt; Utilities -&amp;gt; Terminal) and type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which port&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/opt/local/bin/port&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no path is returned, you need to update your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable to include &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===GNU Fortran Compiler===&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; I tried &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc45&amp;lt;/span&amp;gt; but ran in to problems compiling HDF5. If you don&#039;t plan to install NetCDF4/HDF5 capabilities you should be able to use this newer gcc/gfortran.&lt;br /&gt;
&lt;br /&gt;
In the terminal window, use MacPorts to install &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gcc43&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo port install gcc43&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}} This can take a while since it has to download, configure, build, and install the GNU compiler suite (including &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt;) and its dependencies.&lt;br /&gt;
&lt;br /&gt;
The default GNU compiler suite that comes with the system is the 4.2.X series and does not include gfortran. In order for the compiler suite you just installed (the 4.3 series) to avoid conflicts with the pre-installed compilers the executables are given different names. I suggest making symbolic links in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/opt/local/bin&amp;lt;/span&amp;gt; directory to make the compiler names easier to type and remember.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/local/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gcc-mp-4.3 gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s g++-mp-4.3 g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s gfortran-mp-4.3 gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}Notice that I did not use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran43&amp;lt;/span&amp;gt; for the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; link. There are two reasons for this: one, there isn&#039;t another gfortran on the system that the name would conflict with and two, it makes ROMS slightly easier to build (more on the second reason later).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; command in the terminal to check symbolic links you just made. If you are using &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tcsh&amp;lt;/span&amp;gt; instead of &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;rehash&amp;lt;/span&amp;gt; first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gcc43&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;/usr/local/bin/gcc43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/usr/local/bin/g++43&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;/usr/local/bin/gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GNU Make===&lt;br /&gt;
&lt;br /&gt;
Make sure that GNU make 3.81 is already installed on your system by typing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -v&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;GNU Make 3.81&amp;lt;br /&amp;gt;Copyright (C) 2006  Free Software Foundation, Inc.&amp;lt;br /&amp;gt;This is free software; see the source for copying conditions.&amp;lt;br /&amp;gt;There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A&amp;lt;br /&amp;gt;PARTICULAR PURPOSE.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;This program built for i386-apple-darwin10.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is not found, check your &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/make&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Perl===&lt;br /&gt;
&lt;br /&gt;
Perl is most likely already installed. However, if executing &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;which perl&amp;lt;/span&amp;gt; from the terminal tells you perl isn&#039;t found, you will need to install it; my &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;perl&amp;lt;/span&amp;gt; is at &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr/bin/perl&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Set Up Your Build Environment===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables that will need to be set in order to build the NetCDF, MPI (optional), and HDF5 (optional) libraries. Again, if you don&#039;t use &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; as your shell you will have to adapt the lines below.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CC=gcc43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export CXX=g++43&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export FC=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F90=gfortran&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export F77=gfortran&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would suggest making a &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;source_builds&amp;lt;/span&amp;gt; directory in your home directory so you have a place to build the libraries.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MPI (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}} If you don&#039;t plan to run ROMS in distributed memory (MPI), you can skip this section.&lt;br /&gt;
&lt;br /&gt;
At this time the MPICH libraries don&#039;t build successfully. Open MPI and MPICH2 will build successfully. I prefer Open MPI so we&#039;ll start there and follow with MPICH2. Choose one or the other unless you have a good reason for needing both.&lt;br /&gt;
&lt;br /&gt;
====Open MPI====&lt;br /&gt;
Download the Open MPI source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;) from [http://www.open-mpi.org/software/ompi/v1.4/ www.open-mpi.org/software/ompi/v1.4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xjf openmpi-1.4.2.tar.bz2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/openmpi/openmpi-1.4.2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; . . .&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your Open MPI libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/openmpi&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s openmpi-1.4.2/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuring Open MPI to build static only libraries (&#039;&#039;&#039;--disable-shared&#039;&#039;&#039;) caused run-time segmentation faults. A side effect of this fact is that you will have to set the &#039;&#039;&#039;DYLD_LIBRARY_PATH&#039;&#039;&#039; environment variable in addition to updating the PATH variable. Below are the lines you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export DYLD_LIBRARY_PATH=/opt/gfortransoft/openmpi/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/openmpi/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MPICH2====&lt;br /&gt;
&lt;br /&gt;
If you have already installed Open MPI skip this step unless you have a reason for building both MPI implementations.&lt;br /&gt;
&lt;br /&gt;
Download the MPICH2 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf mpich2-1.2.1p1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/mpich2/mpich2-1.2.1p1&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{warning}}&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; Do not set &#039;&#039;&#039;--prefix&#039;&#039;&#039; to &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;/usr&amp;lt;/span&amp;gt; because you will replace the system&#039;s default MPI. We are not using the default MPI because the Fortran bindings are missing.&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set some symbolic links to simplify the paths to your MPICH2 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/mpich2&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/bin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/etc&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/include&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/lib&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/sbin&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s mpich2-1.2.1p1/share&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is the line you should add to your login script (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.profile&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.bashrc&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;.cshrc&amp;lt;/span&amp;gt;, etc. adjusting accordingly for different shells)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;export PATH=/opt/gfrotransoft/mpich2/bin:${PATH}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPICH2 works a little differently than Open MPI. It uses a multi-purpose daemon (mpd) to schedule and control the MPI calls and communications. In order to run MPI jobs using MPICH2 there are a couple extra steps. First we need to create a special secret word file in our home directory and correctly set its permissions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;echo &amp;quot;secretword=shh_secret&amp;quot; &amp;gt; ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;chmod 600 ~/.mpd.conf&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;shh_secret&amp;quot; with a word of your choice. Now we can start &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd&amp;lt;/span&amp;gt; and test that MPICH2 was built correctly.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mpd &amp;amp;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, we are ready to move on.&lt;br /&gt;
&lt;br /&gt;
===HDF5 (optional)===&lt;br /&gt;
&lt;br /&gt;
{{note}}If you do not need to output or read NetCDF4 files please skip this section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the HDF5 source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;) from [ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/ ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf hdf5-1.8.4-patch1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd hdf5-1.8.4-patch1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for HDF5 to compile on the Mac, you have to add the following line to the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;config/apple&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;hdf5_cv_mpi_complex_derived_datatype_works=&#039;no&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have made this change you can configure, build, and install HDF5:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./configure --prefix=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 --enable-fortran \&amp;lt;br /&amp;gt;--enable-static-exec --disable-shared&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your HDF5 libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s hdf5-1.8.4-patch1 hdf5&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Note:&#039;&#039;&#039; It is possible to build HDF5 (and NetCDF4) to perform parallel I/O. However, this is not recommend because at this point parallel I/O in ROMS is slower than serial I/O.&lt;br /&gt;
&lt;br /&gt;
===NetCDF===&lt;br /&gt;
&lt;br /&gt;
There are two major NetCDF formats: NetCDF-3 and NetCDF-4/HDF5. I have included instructions for compiling both so remember to follow the appropriate section for your needs. The latest NetCDF sources can can be used to compile both versions.&lt;br /&gt;
&lt;br /&gt;
Download the NetCDF source code (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;) from [http://www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp www.unidata.ucar.edu/downloads/netcdf/netcdf-4_1_1/index.jsp] into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/source_builds&amp;lt;/span&amp;gt; directory. Once the download completes, execute the following from your terminal window:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/source_builds&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;tar xzf netcdf-4.1.1.tar.gz&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd netcdf-4.1.1&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 3 Format (recommended)====&lt;br /&gt;
&lt;br /&gt;
Unless you have a specific need for NetCDF version 4 format, I would recommend compiling NetCDF without version 4 support.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf3&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====NetCDF Version 4 Format (optional)====&lt;br /&gt;
&lt;br /&gt;
As hinted above, you will need to have successfully compiled HDF5 in order to compile a NetCDF that can read and write NetCDF-4/HDF5 files. Not all of the  configure options and arguments shown below are necessary. In particular, &#039;&#039;&#039;--enable-dap&#039;&#039;&#039; requires libcurl (version 7.18.0 or later) to be installed. I will show the full featured configuration first.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 --enable-dap --with-udunits \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{warning}} &#039;&#039;&#039;Notice:&#039;&#039;&#039; If you get lots of undefined symbol references you are probably missing some of the libraries required for the [http://www.opendap.org/ OPeNDAP] (&#039;&#039;&#039;--enable-dap&#039;&#039;&#039; and &#039;&#039;&#039;--with-udunits&#039;&#039;&#039;) capabilities. You can either install the necessary libraries or us the minimal configuration line shown below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;CPPFLAGS=&#039;-DNDEBUG -DpgiFortran&#039; ./configure \&amp;lt;br /&amp;gt;--with-hdf5=/opt/gfortransoft/serial/hdf5-1.8.4-patch1 \&amp;lt;br /&amp;gt;--prefix=/opt/gfortransoft/serial/netcdf-4.1.1 \&amp;lt;br /&amp;gt;--enable-netcdf-4 --disable-shared --disable-cxx&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;make -j 4 check&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;. . .&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo make install&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note}}&#039;&#039;&#039;Caution:&#039;&#039;&#039; I have found that if you don&#039;t give the &#039;&#039;&#039;-j&#039;&#039;&#039; option a number (4 in this case) builds will fail. Typically this number should be less than or equal to the number of processing cores on your machine.&lt;br /&gt;
&lt;br /&gt;
You may also want to set a symbolic link to simplify the paths to your NetCDF libraries and executables.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd /opt/gfortransoft/serial&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;sudo ln -s netcdf-4.1.1 netcdf4&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download ROMS==&lt;br /&gt;
This section assumes that you have registered and obtained your ROMS username/password.&lt;br /&gt;
&lt;br /&gt;
Create the directory &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;~/ROMS&amp;lt;/span&amp;gt; and checkout the ROMS source code replacing &#039;joeroms&#039; with your ROMS user name:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ROMS&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;gt; &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;svn checkout --username joeroms &amp;lt;nowiki&amp;gt;https://www.myroms.org/svn/src/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will see many lines stream by. When it finishes, type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;. You have a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; that contains the ROMS source code.&lt;br /&gt;
&lt;br /&gt;
{{note}}&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; The first time you run the &#039;&#039;&#039;svn&#039;&#039;&#039; command you will be asked for your ROMS password and store it for future use.&lt;br /&gt;
&lt;br /&gt;
==Customizing the [[build Script|Build Script]]==&lt;br /&gt;
&lt;br /&gt;
The ROMS source code comes with a [[build Script|build script]] in the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ROMS/Bin&amp;lt;/span&amp;gt; directory. Examples written with &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt;) and &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;csh&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.sh&amp;lt;/span&amp;gt;) are provided. For convenience, we will work with &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; since &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;bash&amp;lt;/span&amp;gt; is the default shell on a Mac. A full description of the build script can be found [[build Script|here]].&lt;br /&gt;
&lt;br /&gt;
:*At the same level as your new &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;trunk&amp;lt;/span&amp;gt; directory create a new folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Projects&amp;lt;/span&amp;gt; and change into it.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Projects&amp;lt;br /&amp;gt;cd Projects&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Create a folder named &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; and change into it. &#039;Upwelling&#039; is the name of the [[Test Cases|ROMS test case]] we are going to compile and run.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;mkdir Upwelling&amp;lt;br /&amp;gt;cd Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory you just created.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/External/ocean_upwelling.in .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;upwelling.h&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory in the same way.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Include/upwelling.h .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Copy the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file into the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory.&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cp ../../trunk/ROMS/Bin/build.bash .&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Open the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; script you just copied into your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory using your favorite text editor.&lt;br /&gt;
&lt;br /&gt;
:*Scroll down until you find &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;. Set them as follows (replacing &#039;joeroms&#039; with your Mac user name).&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;=/Users/joeroms/ROMS&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;     &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_PROJECT_DIR&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/Projects/Upwelling&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Now set &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt; to:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;        &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROMS_SRC&amp;lt;/span&amp;gt;=${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_ROOT_DIR&amp;lt;/span&amp;gt;}/trunk&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Make sure that &amp;lt;span class=&amp;quot;orange&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; set. I had to comment out one line with the # symbol like so:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;#&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;       &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;MY_CPP_FLAGS&amp;lt;/span&amp;gt;=&amp;quot;-DNPZD_POWELL&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*We are compiling in serial using the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; compiler so make your &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; match the following:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPI&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;         &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MPIF90&amp;lt;/span&amp;gt;=&amp;lt;br /&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;               &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;FORT&amp;lt;/span&amp;gt;=gfortran&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Uncomment the line:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;#export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;to look like:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;&amp;amp;nbsp;export&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;=on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Find the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section inside the &#039;&#039;&#039;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; [ -n &amp;quot;${&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;USE_MY_LIBS&amp;lt;/span&amp;gt;:+1}&amp;quot; ]&#039;&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
:*Near the bottom of the &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;gfortran&amp;lt;/span&amp;gt; &#039;&#039;&#039;)&#039;&#039;&#039; section you will find the following lines:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/opt/gfortransoft/serial/netcdf3/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;change them to:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;else&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_INCDIR&amp;lt;/span&amp;gt;=/usr/local/include&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt;      &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;NETCDF_LIBDIR&amp;lt;/span&amp;gt;=/usr/local/lib&amp;lt;br /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;fi&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;build.bash&amp;lt;/span&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
==Create the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Darwin-gfortran.mk&amp;lt;/span&amp;gt; file==&lt;br /&gt;
&lt;br /&gt;
ROMS does not have a Mac-gfortran make module so you will need to create one. Luckily, the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Linux-gfortran.mk&amp;lt;/span&amp;gt; can be used without modification:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/ROMS/trunk/Compilers&amp;lt;br&amp;gt;cp Linux-gfortran.mk Darwin-gfortran.mk&amp;lt;br&amp;gt;cd ~/ROMS/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compile ROMS==&lt;br /&gt;
&lt;br /&gt;
Before you run ROMS, you need to compile it to create an executable &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; file. ROMS Source-Code files are readable by humans while executable files are readable by computers. The compilation process translates the source files into executables. Here are the instructions:&lt;br /&gt;
&lt;br /&gt;
:*In cygwin, if you&#039;re not there already, go to the Upwelling directory:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;cd ~/roms/Projects/Upwelling&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Then type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./build.bash&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*If lots of stuff comes on the screen then you are good. This will take ~15 min.&lt;br /&gt;
:*When it finishes type &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;ls&amp;lt;/span&amp;gt;; if you can see &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; (your executable file), then the compilation was successful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run ROMS==&lt;br /&gt;
&lt;br /&gt;
:*We need to make one change to our &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file so open it with your favorite editor and find the following line:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;and change it to (again replacing &#039;joeroms&#039; with your Mac user name):&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;     &amp;lt;span class=&amp;quot;blue&amp;quot;&amp;gt;VARNAME&amp;lt;/span&amp;gt; = /home/joeroms/ROMS/trunk/ROMS/External/varinfo.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
:*Save and close the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; file&lt;br /&gt;
:*In cygwin, within the &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;Upwelling&amp;lt;/span&amp;gt; directory where your &amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;oceanS&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_upwelling.in&amp;lt;/span&amp;gt; files live, type:&lt;br /&gt;
::&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;forestGreen&amp;quot;&amp;gt;./oceanS &amp;amp;lt; ocean_upwelling.in&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If lots of numbers are displayed on the screen ROMS is running! Out of the box, ROMS comes programmed to run the Upwelling test case, which is what you are running now. When it finishes, the following output files are created:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_avg.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_dia.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_his.nc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;red&amp;quot;&amp;gt;ocean_rst.nc&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To learn one way to visualize them, [[Plotting Package Installation|click here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You got ROMS running!&lt;br /&gt;
&lt;br /&gt;
Now comes the hard part: Learn how to use ROMS. But by now you are probably all coffeed-up and ready learn more. [http://www.myroms.org/index.php?page=RomsPackages Click here] for a good place to start.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;/div&gt;</summary>
		<author><name>Marcellosekoot</name></author>
	</entry>
</feed>