<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.myroms.org/wiki/index.php?action=history&amp;feed=atom&amp;title=External_Libraries</id>
	<title>External Libraries - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.myroms.org/wiki/index.php?action=history&amp;feed=atom&amp;title=External_Libraries"/>
	<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;action=history"/>
	<updated>2026-04-27T13:34:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6684&amp;oldid=prev</id>
		<title>Robertson at 18:42, 18 June 2025</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6684&amp;oldid=prev"/>
		<updated>2025-06-18T18:42:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;amp;diff=6684&amp;amp;oldid=6681&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Robertson</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6681&amp;oldid=prev</id>
		<title>Robertson at 18:32, 5 May 2025</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6681&amp;oldid=prev"/>
		<updated>2025-05-05T18:32:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:32, 5 May 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l38&quot;&gt;Line 38:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 38:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Open-source, machine-independent libraries for storing self-describing scientific data into portable, scalable, appendable, and sharable computer files. It provides &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039; in several computer languages to create files, to write data into a file, to read data from the file, and access information about the dataset dimensions, variables, and attributes.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Open-source, machine-independent libraries for storing self-describing scientific data into portable, scalable, appendable, and sharable computer files. It provides &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039; in several computer languages to create files, to write data into a file, to read data from the file, and access information about the dataset dimensions, variables, and attributes.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ROMS uses &#039;&#039;&#039;NetCDF&#039;&#039;&#039; for all its input and output data management. Its &#039;&#039;&#039;NetCDF3&#039;&#039;&#039; or &#039;&#039;&#039;NetCDF4&#039;&#039;&#039; type files can be processed using the standard library developed and distributed [http://doi.org/10.5065/D6H70CW6 UCAR/Unidata], the Parallel-IO (&#039;&#039;&#039;PIO&#039;&#039;&#039;) developed at ANL/NCAR ([https://doi.org/10.1177/1094342011428143 Dennis &#039;&#039;et al&#039;&#039;., 2012]; [https://www.researchgate.net/publication/348169990_THE_PARALLELIO_PIO_CFORTRAN_LIBRARIES_FOR_SCALABLE_HPC_PERFORMANCE Hartnett and Edwards, 2021])&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, or the Software for Cashing Output and Reads for Parallel I/O (&#039;&#039;&#039;SCORPIO&#039;&#039;&#039;) library available in [https://e3sm.org/scorpio-parallel-io-library E3SM]&lt;/del&gt;. We have migrated to the Fortran-90 &#039;&#039;&#039;API&#039;&#039;&#039; interface,  which consists of a library and one or two module files. See the [[makefile]] and [[build_roms| build script]] for how to tell ROMS where these are located. You will have to use a copy of the library and module files that were compiled using the same compiler you are using to compile ROMS - this is especially true for the module files.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ROMS uses &#039;&#039;&#039;NetCDF&#039;&#039;&#039; for all its input and output data management. Its &#039;&#039;&#039;NetCDF3&#039;&#039;&#039; or &#039;&#039;&#039;NetCDF4&#039;&#039;&#039; type files can be processed using the standard library developed and distributed [http://doi.org/10.5065/D6H70CW6 UCAR/Unidata], the Parallel-IO (&#039;&#039;&#039;PIO&#039;&#039;&#039;) developed at ANL/NCAR ([https://doi.org/10.1177/1094342011428143 Dennis &#039;&#039;et al&#039;&#039;., 2012]; [https://www.researchgate.net/publication/348169990_THE_PARALLELIO_PIO_CFORTRAN_LIBRARIES_FOR_SCALABLE_HPC_PERFORMANCE Hartnett and Edwards, 2021]). We have migrated to the Fortran-90 &#039;&#039;&#039;API&#039;&#039;&#039; interface,  which consists of a library and one or two module files. See the [[makefile]] and [[build_roms| build script]] for how to tell ROMS where these are located. You will have to use a copy of the library and module files that were compiled using the same compiler you are using to compile ROMS - this is especially true for the module files.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Building NetCDF-4/HDF5===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Building NetCDF-4/HDF5===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l76&quot;&gt;Line 76:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 76:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Open-source parallel library for reading and writing distributed arrays to several scientific data formats like &amp;#039;&amp;#039;&amp;#039;pNetCDF&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;NetCDF3&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;NetCDF4/HDF5&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; provides the flexibility to regulate the number of I/O tasks through data rearrangement between computational and  I/O processes to improve performance and memory usage. It allows both &amp;#039;&amp;#039;&amp;#039;synchronous&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;asynchronous&amp;#039;&amp;#039;&amp;#039; I/O. In &amp;#039;&amp;#039;&amp;#039;synchronous mode&amp;#039;&amp;#039;&amp;#039;, a subset of processes performs both I/O and computations (MPI intra-communications). Alternatively, in &amp;#039;&amp;#039;&amp;#039;asynchronous mode&amp;#039;&amp;#039;&amp;#039;, the I/O is carried out by a set of disjointed and dedicated processes (MPI inter-communications).   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Open-source parallel library for reading and writing distributed arrays to several scientific data formats like &amp;#039;&amp;#039;&amp;#039;pNetCDF&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;NetCDF3&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;NetCDF4/HDF5&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; provides the flexibility to regulate the number of I/O tasks through data rearrangement between computational and  I/O processes to improve performance and memory usage. It allows both &amp;#039;&amp;#039;&amp;#039;synchronous&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;asynchronous&amp;#039;&amp;#039;&amp;#039; I/O. In &amp;#039;&amp;#039;&amp;#039;synchronous mode&amp;#039;&amp;#039;&amp;#039;, a subset of processes performs both I/O and computations (MPI intra-communications). Alternatively, in &amp;#039;&amp;#039;&amp;#039;asynchronous mode&amp;#039;&amp;#039;&amp;#039;, the I/O is carried out by a set of disjointed and dedicated processes (MPI inter-communications).   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &#039;&#039;&#039;PIO&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; or &#039;&#039;&#039;SCORPIO&lt;/del&gt;&#039;&#039;&#039; library is intended for ROMS Message Passing Interface (MPI) applications running on a large number of processes in an HPC computer with a &#039;&#039;&#039;Parallel File System&#039;&#039;&#039; (Lustre, GPFS, and so on). It uses the &#039;&#039;&#039;MPI-IO&#039;&#039;&#039; interface to facilitate the partitioning of data across computational or dedicated I/O processes. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Both  &lt;/del&gt;[https://github.com/NCAR/ParallelIO PIO&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;] and [https://github.com/E3SM-Project/scorpio SCORPIO&lt;/del&gt;] will work with ROMS [https://www.myroms.org/projects/src/ticket/884 svn revision 1064] (May 10, 2021) or newer &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;but we recommend &#039;&#039;&#039;PIO&#039;&#039;&#039; for its better performance&lt;/del&gt;. We recommend you read the manuals for all the build options, but below we show &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;an &lt;/del&gt;example build &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;process &lt;/del&gt;for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;both &lt;/del&gt;&#039;&#039;&#039;PIO&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; and &#039;&#039;&#039;SCORPIO&lt;/del&gt;&#039;&#039;&#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &#039;&#039;&#039;PIO&#039;&#039;&#039; library is intended for ROMS Message Passing Interface (MPI) applications running on a large number of processes in an HPC computer with a &#039;&#039;&#039;Parallel File System&#039;&#039;&#039; (Lustre, GPFS, and so on). It uses the &#039;&#039;&#039;MPI-IO&#039;&#039;&#039; interface to facilitate the partitioning of data across computational or dedicated I/O processes. [https://github.com/NCAR/ParallelIO PIO] will work with ROMS [https://www.myroms.org/projects/src/ticket/884 svn revision 1064] (May 10, 2021) or newer. We recommend you read the manuals for all the build options, but below we show example build &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;processes &lt;/ins&gt;for &#039;&#039;&#039;PIO&#039;&#039;&#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Building PIO (autotools)===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; can use NetCDF (version 4.6.1+) and/or PnetCDF (version 1.9.0+) for I/O. NetCDF may be built with or without netCDF-4 features. NetCDF is required for &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039;, PnetCDF is optional. {{note}}However, the ROMS build system assumes that &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; is built with PnetCDF support and will need customization if &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; is built without it.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; can use NetCDF (version 4.6.1+) and/or PnetCDF (version 1.9.0+) for I/O. NetCDF may be built with or without netCDF-4 features. NetCDF is required for &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039;, PnetCDF is optional. {{note}}However, the ROMS build system assumes that &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; is built with PnetCDF support and will need customization if &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; is built without it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l86&quot;&gt;Line 86:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 84:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; recently introduced a NetCDF integration option that allows standard NetCDF library calls to be implemented with the &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; library but ROMS Parallel I/O is not currently implemented this way. In order to build &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; with NetCDF integration, you will need NetCDF version 4.7.4 or higher. However, the Fortran API integration has not been implemented in ROMS.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; recently introduced a NetCDF integration option that allows standard NetCDF library calls to be implemented with the &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; library but ROMS Parallel I/O is not currently implemented this way. In order to build &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; with NetCDF integration, you will need NetCDF version 4.7.4 or higher. However, the Fortran API integration has not been implemented in ROMS.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &#039;&#039;&#039;PIO&#039;&#039;&#039; library can be built with the classic Autotools or Cmake. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;For &#039;&#039;&#039;&lt;/del&gt;PIO&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; we show the &lt;/del&gt;Autotools &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;procedure but will show Cmake for &#039;&#039;&#039;SCORPIO&#039;&#039;&#039; in the next section.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &#039;&#039;&#039;PIO&#039;&#039;&#039; library can be built with the classic Autotools or Cmake. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Both are shown below.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Building &lt;/ins&gt;PIO &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;With &lt;/ins&gt;Autotools&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*First download the &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; source code as a gzipped tarball or via &amp;#039;&amp;#039;git clone&amp;#039;&amp;#039;:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; wget https://github.com/NCAR/ParallelIO/releases/download/pio2_5_4/pio-2.5.4.tar.gz&amp;lt;/div&amp;gt;or&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; git clone https://github.com/NCAR/ParallelIO&amp;lt;br /&amp;gt;&amp;gt; cd ParallelIO&amp;lt;br /&amp;gt;&amp;gt; git checkout tags/pio2_5_4&amp;lt;br /&amp;gt;&amp;gt; autoconf -i&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*First download the &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039; source code as a gzipped tarball or via &amp;#039;&amp;#039;git clone&amp;#039;&amp;#039;:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; wget https://github.com/NCAR/ParallelIO/releases/download/pio2_5_4/pio-2.5.4.tar.gz&amp;lt;/div&amp;gt;or&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; git clone https://github.com/NCAR/ParallelIO&amp;lt;br /&amp;gt;&amp;gt; cd ParallelIO&amp;lt;br /&amp;gt;&amp;gt; git checkout tags/pio2_5_4&amp;lt;br /&amp;gt;&amp;gt; autoconf -i&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l96&quot;&gt;Line 96:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 96:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Build, test, and install &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039;:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make -j 5&amp;lt;br /&amp;gt;&amp;gt; make check&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;{{warning}} &amp;#039;&amp;#039;&amp;#039;Warning:&amp;#039;&amp;#039;&amp;#039; If you are using the Intel compilers, you will probably need to remove &amp;quot;&amp;#039;&amp;#039;&amp;#039;test_darray_async_many&amp;#039;&amp;#039;&amp;#039;&amp;quot; from line 50 of &amp;#039;&amp;#039;&amp;#039;test/cunit/run_tests.sh&amp;#039;&amp;#039;&amp;#039; for &amp;#039;&amp;#039;make check&amp;#039;&amp;#039; to complete without errors. Details [https://github.com/NCAR/ParallelIO/issues/1867 here].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Build, test, and install &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039;:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make -j 5&amp;lt;br /&amp;gt;&amp;gt; make check&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;{{warning}} &amp;#039;&amp;#039;&amp;#039;Warning:&amp;#039;&amp;#039;&amp;#039; If you are using the Intel compilers, you will probably need to remove &amp;quot;&amp;#039;&amp;#039;&amp;#039;test_darray_async_many&amp;#039;&amp;#039;&amp;#039;&amp;quot; from line 50 of &amp;#039;&amp;#039;&amp;#039;test/cunit/run_tests.sh&amp;#039;&amp;#039;&amp;#039; for &amp;#039;&amp;#039;make check&amp;#039;&amp;#039; to complete without errors. Details [https://github.com/NCAR/ParallelIO/issues/1867 here].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Building &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SCORPIO (&lt;/del&gt;Cmake&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Building &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PIO With &lt;/ins&gt;Cmake===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{note}} &#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;&#039;SORPIO&#039;&#039;&#039; recently released version 1.2.0 and 1.2.1 but ROMS has not been tested with these versions. It is likely that the new version will work fine with ROMS but use these new versions at your own risk.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;SCORPIO&#039;&#039;&#039; can use NetCDF (version 4.3.3+), PnetCDF (version 1.6.0+) or ADIOS (version 2.6.0+) for I/O. {{note}} ADIOS is not implemented in ROMS.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ideally, the NetCDF version should be built with MPI, which requires that it be linked with an MPI-enabled version of HDF5. Optionally, NetCDF can be built with DAP support, which introduces a dependency on CURL. Additionally, HDF5, itself, introduces dependencies on LIBZ and (optionally) SZIP. If your NetCDF is built with DAP support, you will need to edit &#039;&#039;&#039;cmake/TryNetCDF_DAP.c&#039;&#039;&#039;, changing line 8 from &amp;lt;div class=&quot;box&quot;&amp;gt;#if NC_HAS_DAP==1&amp;lt;/div&amp;gt; to &amp;lt;div class=&quot;box&quot;&amp;gt;#if NC_HAS_DAP==1 || NC_HAS_DAP2==1 || NC_HAS_DAP4==1&amp;lt;/div&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Download &lt;/del&gt;the &#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SCORPIO&lt;/del&gt;&#039;&#039;&#039; source code:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;git clone &lt;/del&gt;https://github.com/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;E3SM-Project&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;scorpio&amp;lt;br &lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&amp;gt; cd scorpio&amp;lt;br &lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&amp;gt; git checkout tags&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;scorpio&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;v1&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6&amp;lt;br /&amp;gt;&lt;/del&gt;&amp;lt;/div&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;If your NetCDF is built with DAP support, you will need to edit &#039;&#039;&#039;cmake/TryNetCDF_DAP.c&#039;&#039;&#039;, changing line 8 from &lt;/del&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#if NC_HAS_DAP==1&lt;/del&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;div&lt;/del&gt;&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to &lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;div class=&quot;box&quot;&lt;/del&gt;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#if NC_HAS_DAP==1 || NC_HAS_DAP2==1 || NC_HAS_DAP4==1&lt;/del&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;First download &lt;/ins&gt;the &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PIO&lt;/ins&gt;&#039;&#039;&#039; source code &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;as a gzipped tarball or via &#039;&#039;git clone&#039;&#039;&lt;/ins&gt;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wget &lt;/ins&gt;https://github.com/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;NCAR/ParallelIO&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;releases&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;download&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pio2_5_4&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pio&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4.tar.gz&lt;/ins&gt;&amp;lt;/div&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;or&lt;/ins&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt; git clone https://github.com/NCAR/ParallelIO&lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;br &lt;/ins&gt;/&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt; cd ParallelIO&lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;br /&amp;gt;&lt;/ins&gt;&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;git checkout tags/pio2_5_4&lt;/ins&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Configure &#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SCORPIO&lt;/del&gt;&#039;&#039;&#039;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; cd ..&amp;lt;br /&amp;gt;&amp;gt; mkdir &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;build_scorpio&lt;/del&gt;&amp;lt;br /&amp;gt;&amp;gt; cd &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;build_scorpio&lt;/del&gt;&amp;lt;br /&amp;gt;&amp;gt; CC=mpicc CXX=mpicxx FC=mpifort cmake \&amp;lt;br /&amp;gt;    -DNetCDF_PATH=/path/to/netcdf \&amp;lt;br /&amp;gt;    -DPnetCDF_PATH=/path/to/pnetcdf \&amp;lt;br /&amp;gt;    -DMPIEXEC=/path/submission/scipt \&amp;lt;br /&amp;gt;    -DMPIEXEC_MAX_NUMPROCS=8 -DMPIEXEC_NUMPROC_FLAG=-n \&amp;lt;br /&amp;gt;    -DPIO_FILESYSTEM_HINTS=gpfs -DPIO_ENABLE_TIMING=OFF -DPIO_ENABLE_TESTS=ON \&amp;lt;br /&amp;gt;    -DCMAKE_INSTALL_PREFIX=/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;scorpio&lt;/del&gt;/install/path ../&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;scorpio&lt;/del&gt;&amp;lt;/div&amp;gt;{{note}} Note that &#039;&#039;-DMPIEXEC&#039;&#039; is only needed for running test on clusters that use scheduling systems like SLURM. Your submission script should take &#039;&#039;&#039;-n&#039;&#039;&#039;, &#039;&#039;&#039;N&#039;&#039;&#039; (number of processes requested), and &#039;&#039;&#039;programName&#039;&#039;&#039; (in that order) as arguments to construct the appropriate command to run using the scheduling system on your cluster. A SLURM example is provided below:&amp;lt;div class=&quot;box&quot;&amp;gt;# 1) &amp;lt;this_script&amp;gt; -n N prog&amp;lt;br /&amp;gt;#    runs N copies of executable &quot;prog&quot; in parallel. The script must hide all&amp;lt;br /&amp;gt;#    of the system specific details, such as going through a queueing system&amp;lt;br /&amp;gt;#    and/or calling a system specific mpirun script with modified arguments.&amp;lt;br /&amp;gt;#&amp;lt;br /&amp;gt;# 2) The output of the application must arrive at the calling shell via&amp;lt;br /&amp;gt;#    stdout and stderr.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;if [ &quot;$1&quot; != &quot;-n&quot; ]&amp;lt;br /&amp;gt;then&amp;lt;br /&amp;gt;        echo &quot;Usage: mpirun -n # prog&quot;&amp;lt;br /&amp;gt;        exit 1&amp;lt;br /&amp;gt;fi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;num_procs=$2&amp;lt;br /&amp;gt;shift 2&amp;lt;br /&amp;gt;prog=$*&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;echo &quot;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&quot;&amp;lt;br /&amp;gt;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Configure &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PIO&lt;/ins&gt;&#039;&#039;&#039;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; cd ..&amp;lt;br /&amp;gt;&amp;gt; mkdir &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;build_pio&lt;/ins&gt;&amp;lt;br /&amp;gt;&amp;gt; cd &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;build_pio&lt;/ins&gt;&amp;lt;br /&amp;gt;&amp;gt; CC=mpicc CXX=mpicxx FC=mpifort cmake \&amp;lt;br /&amp;gt;    -DNetCDF_PATH=/path/to/netcdf \&amp;lt;br /&amp;gt;    -DPnetCDF_PATH=/path/to/pnetcdf \&amp;lt;br /&amp;gt;    -DMPIEXEC=/path/submission/scipt \&amp;lt;br /&amp;gt;    -DMPIEXEC_MAX_NUMPROCS=8 -DMPIEXEC_NUMPROC_FLAG=-n \&amp;lt;br /&amp;gt;    -DPIO_FILESYSTEM_HINTS=gpfs -DPIO_ENABLE_TIMING=OFF -DPIO_ENABLE_TESTS=ON \&amp;lt;br /&amp;gt;    -DCMAKE_INSTALL_PREFIX=/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pio&lt;/ins&gt;/install/path ../&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ParallelIO&lt;/ins&gt;&amp;lt;/div&amp;gt;{{note}} Note that &#039;&#039;-DMPIEXEC&#039;&#039; is only needed for running test on clusters that use scheduling systems like SLURM. Your submission script should take &#039;&#039;&#039;-n&#039;&#039;&#039;, &#039;&#039;&#039;N&#039;&#039;&#039; (number of processes requested), and &#039;&#039;&#039;programName&#039;&#039;&#039; (in that order) as arguments to construct the appropriate command to run using the scheduling system on your cluster. A SLURM example is provided below:&amp;lt;div class=&quot;box&quot;&amp;gt;# 1) &amp;lt;this_script&amp;gt; -n N prog&amp;lt;br /&amp;gt;#    runs N copies of executable &quot;prog&quot; in parallel. The script must hide all&amp;lt;br /&amp;gt;#    of the system specific details, such as going through a queueing system&amp;lt;br /&amp;gt;#    and/or calling a system specific mpirun script with modified arguments.&amp;lt;br /&amp;gt;#&amp;lt;br /&amp;gt;# 2) The output of the application must arrive at the calling shell via&amp;lt;br /&amp;gt;#    stdout and stderr.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;if [ &quot;$1&quot; != &quot;-n&quot; ]&amp;lt;br /&amp;gt;then&amp;lt;br /&amp;gt;        echo &quot;Usage: mpirun -n # prog&quot;&amp;lt;br /&amp;gt;        exit 1&amp;lt;br /&amp;gt;fi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;num_procs=$2&amp;lt;br /&amp;gt;shift 2&amp;lt;br /&amp;gt;prog=$*&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;echo &quot;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&quot;&amp;lt;br /&amp;gt;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Compile, test, and install:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make -j 6&amp;lt;br /&amp;gt;&amp;gt; make -j 6 tests&amp;lt;br /&amp;gt;&amp;gt; ctests&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Compile, test, and install:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make -j 6&amp;lt;br /&amp;gt;&amp;gt; make -j 6 tests&amp;lt;br /&amp;gt;&amp;gt; ctests&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Robertson</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6671&amp;oldid=prev</id>
		<title>Robertson at 19:38, 6 January 2025</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6671&amp;oldid=prev"/>
		<updated>2025-01-06T19:38:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:38, 6 January 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To obtain &amp;#039;&amp;#039;&amp;#039;ARPACK&amp;#039;&amp;#039;&amp;#039;, execute the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To obtain &amp;#039;&amp;#039;&amp;#039;ARPACK&amp;#039;&amp;#039;&amp;#039;, execute the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/myroms/roms_libs.git&amp;lt;br /&amp;gt;&amp;gt; cd &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;roms_libraries&lt;/del&gt;/ARPACK&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/myroms/roms_libs.git&amp;lt;br /&amp;gt;&amp;gt; cd &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;roms_libs&lt;/ins&gt;/ARPACK&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To compile, customize &amp;#039;&amp;#039;&amp;#039;ARmake.inc&amp;#039;&amp;#039;&amp;#039; for the desired compiler and its flags for the serial (&amp;#039;&amp;#039;&amp;#039;FC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;FFLAGS&amp;#039;&amp;#039;&amp;#039;) and parallel (&amp;#039;&amp;#039;&amp;#039;PFC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;PFFLAGS&amp;#039;&amp;#039;&amp;#039;) versions of the library. Once configured type:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make lib plib&amp;lt;/div&amp;gt; to build &amp;#039;&amp;#039;&amp;#039;libarpack.a&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;libparpack.a&amp;#039;&amp;#039;&amp;#039;. Once the libraries are built you can move them anywhere you like to make it easier to tell ROMS where to find them through environmental variables or with the &amp;#039;&amp;#039;&amp;#039;[[my_build_paths]]&amp;#039;&amp;#039;&amp;#039; script.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To compile, customize &amp;#039;&amp;#039;&amp;#039;ARmake.inc&amp;#039;&amp;#039;&amp;#039; for the desired compiler and its flags for the serial (&amp;#039;&amp;#039;&amp;#039;FC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;FFLAGS&amp;#039;&amp;#039;&amp;#039;) and parallel (&amp;#039;&amp;#039;&amp;#039;PFC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;PFFLAGS&amp;#039;&amp;#039;&amp;#039;) versions of the library. Once configured type:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make lib plib&amp;lt;/div&amp;gt; to build &amp;#039;&amp;#039;&amp;#039;libarpack.a&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;libparpack.a&amp;#039;&amp;#039;&amp;#039;. Once the libraries are built you can move them anywhere you like to make it easier to tell ROMS where to find them through environmental variables or with the &amp;#039;&amp;#039;&amp;#039;[[my_build_paths]]&amp;#039;&amp;#039;&amp;#039; script.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Robertson</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6668&amp;oldid=prev</id>
		<title>Arango: /* ARPACK (ARnoldi PACKage) */</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6668&amp;oldid=prev"/>
		<updated>2024-12-28T02:03:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;ARPACK (ARnoldi PACKage)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:03, 28 December 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To obtain &amp;#039;&amp;#039;&amp;#039;ARPACK&amp;#039;&amp;#039;&amp;#039;, execute the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To obtain &amp;#039;&amp;#039;&amp;#039;ARPACK&amp;#039;&amp;#039;&amp;#039;, execute the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/myroms/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;roms_libraries&lt;/del&gt;&amp;lt;br /&amp;gt;&amp;gt; cd roms_libraries/ARPACK&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/myroms/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;roms_libs.git&lt;/ins&gt;&amp;lt;br /&amp;gt;&amp;gt; cd roms_libraries/ARPACK&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To compile, customize &amp;#039;&amp;#039;&amp;#039;ARmake.inc&amp;#039;&amp;#039;&amp;#039; for the desired compiler and its flags for the serial (&amp;#039;&amp;#039;&amp;#039;FC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;FFLAGS&amp;#039;&amp;#039;&amp;#039;) and parallel (&amp;#039;&amp;#039;&amp;#039;PFC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;PFFLAGS&amp;#039;&amp;#039;&amp;#039;) versions of the library. Once configured type:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make lib plib&amp;lt;/div&amp;gt; to build &amp;#039;&amp;#039;&amp;#039;libarpack.a&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;libparpack.a&amp;#039;&amp;#039;&amp;#039;. Once the libraries are built you can move them anywhere you like to make it easier to tell ROMS where to find them through environmental variables or with the &amp;#039;&amp;#039;&amp;#039;[[my_build_paths]]&amp;#039;&amp;#039;&amp;#039; script.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To compile, customize &amp;#039;&amp;#039;&amp;#039;ARmake.inc&amp;#039;&amp;#039;&amp;#039; for the desired compiler and its flags for the serial (&amp;#039;&amp;#039;&amp;#039;FC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;FFLAGS&amp;#039;&amp;#039;&amp;#039;) and parallel (&amp;#039;&amp;#039;&amp;#039;PFC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;PFFLAGS&amp;#039;&amp;#039;&amp;#039;) versions of the library. Once configured type:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make lib plib&amp;lt;/div&amp;gt; to build &amp;#039;&amp;#039;&amp;#039;libarpack.a&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;libparpack.a&amp;#039;&amp;#039;&amp;#039;. Once the libraries are built you can move them anywhere you like to make it easier to tell ROMS where to find them through environmental variables or with the &amp;#039;&amp;#039;&amp;#039;[[my_build_paths]]&amp;#039;&amp;#039;&amp;#039; script.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Arango</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6666&amp;oldid=prev</id>
		<title>Robertson at 20:46, 27 December 2024</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6666&amp;oldid=prev"/>
		<updated>2024-12-27T20:46:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:46, 27 December 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To obtain &amp;#039;&amp;#039;&amp;#039;ARPACK&amp;#039;&amp;#039;&amp;#039;, execute the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To obtain &amp;#039;&amp;#039;&amp;#039;ARPACK&amp;#039;&amp;#039;&amp;#039;, execute the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;svn checkout &lt;/del&gt;https://&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;www&lt;/del&gt;.myroms&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.org/svn/src&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;libs/ARPACK&lt;/del&gt;&amp;lt;br /&amp;gt;&amp;gt; cd ARPACK&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;git clone &lt;/ins&gt;https://&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;github&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;com/&lt;/ins&gt;myroms/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;roms_libraries&lt;/ins&gt;&amp;lt;br /&amp;gt;&amp;gt; cd &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;roms_libraries/&lt;/ins&gt;ARPACK&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To compile, customize &amp;#039;&amp;#039;&amp;#039;ARmake.inc&amp;#039;&amp;#039;&amp;#039; for the desired compiler and its flags for the serial (&amp;#039;&amp;#039;&amp;#039;FC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;FFLAGS&amp;#039;&amp;#039;&amp;#039;) and parallel (&amp;#039;&amp;#039;&amp;#039;PFC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;PFFLAGS&amp;#039;&amp;#039;&amp;#039;) versions of the library. Once configured type:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make lib plib&amp;lt;/div&amp;gt; to build &amp;#039;&amp;#039;&amp;#039;libarpack.a&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;libparpack.a&amp;#039;&amp;#039;&amp;#039;. Once the libraries are built you can move them anywhere you like to make it easier to tell ROMS where to find them through environmental variables or with the &amp;#039;&amp;#039;&amp;#039;[[my_build_paths]]&amp;#039;&amp;#039;&amp;#039; script.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To compile, customize &amp;#039;&amp;#039;&amp;#039;ARmake.inc&amp;#039;&amp;#039;&amp;#039; for the desired compiler and its flags for the serial (&amp;#039;&amp;#039;&amp;#039;FC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;FFLAGS&amp;#039;&amp;#039;&amp;#039;) and parallel (&amp;#039;&amp;#039;&amp;#039;PFC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;PFFLAGS&amp;#039;&amp;#039;&amp;#039;) versions of the library. Once configured type:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make lib plib&amp;lt;/div&amp;gt; to build &amp;#039;&amp;#039;&amp;#039;libarpack.a&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;libparpack.a&amp;#039;&amp;#039;&amp;#039;. Once the libraries are built you can move them anywhere you like to make it easier to tell ROMS where to find them through environmental variables or with the &amp;#039;&amp;#039;&amp;#039;[[my_build_paths]]&amp;#039;&amp;#039;&amp;#039; script.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l18&quot;&gt;Line 18:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ROMS supports version 8.0 or higher since the &amp;#039;&amp;#039;&amp;#039;NUOPC&amp;#039;&amp;#039;&amp;#039; layer includes the native CoupleSets for &amp;#039;&amp;#039;&amp;#039;ESM&amp;#039;&amp;#039;&amp;#039; applications with nested grids. Various types of connections are possible, like &amp;#039;&amp;#039;&amp;#039;nest-to-nest&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;fine-to-coarse&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;coarse-to-fine&amp;#039;&amp;#039;&amp;#039;.  The user decides which nested grids to connect.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ROMS supports version 8.0 or higher since the &amp;#039;&amp;#039;&amp;#039;NUOPC&amp;#039;&amp;#039;&amp;#039; layer includes the native CoupleSets for &amp;#039;&amp;#039;&amp;#039;ESM&amp;#039;&amp;#039;&amp;#039; applications with nested grids. Various types of connections are possible, like &amp;#039;&amp;#039;&amp;#039;nest-to-nest&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;fine-to-coarse&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;coarse-to-fine&amp;#039;&amp;#039;&amp;#039;.  The user decides which nested grids to connect.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Downloaded &lt;/del&gt;from github:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/esmf-org/esmf.git esmf&amp;lt;br /&amp;gt;&amp;gt; cd esmf&amp;lt;br /&amp;gt;&amp;gt; git checkout tags/ESMF_8_1_0&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Download &lt;/ins&gt;from github:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/esmf-org/esmf.git esmf&amp;lt;br /&amp;gt;&amp;gt; cd esmf&amp;lt;br /&amp;gt;&amp;gt; git checkout tags/ESMF_8_1_0&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Configure with environment variables:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; export ESMF_DIR=/projects/dmcs_1/src/esmf&amp;lt;br /&amp;gt;&amp;gt; export ESMF_COMM=mvapich2&amp;lt;br /&amp;gt;&amp;gt; export ESMF_COMPILER=intel&amp;lt;br /&amp;gt;&amp;gt; export ESMF_BOPT=O&amp;lt;br /&amp;gt;&amp;gt; export ESMF_OPTLEVEL=3&amp;lt;br /&amp;gt;&amp;gt; export ESMF_ABI=64&amp;lt;br /&amp;gt;&amp;gt; export ESMF_INSTALL_PREFIX=/ESMF/install/dir ESMF_NETCDF=&amp;quot;/path/to/netcdf/bin/nc-config&amp;quot;&amp;lt;br /&amp;gt;&amp;gt; export ESMF_NETCDF_LIBS=&amp;quot;-lnetcdf -lhdf5_hl -lhdf5 -lm -lz -lcurl -lhdf5_hl -lhdf5 -lm -lz -lcurl&amp;quot;&amp;lt;br /&amp;gt;&amp;gt; export ESMF_NETCDF_LIBPATH=&amp;quot;/path/to/netcdf/lib /path/to/hdf5/lib&amp;quot;&amp;lt;br /&amp;gt;&amp;gt; export ESMF_SHARED_LIB_BUILD=OFF&amp;lt;br /&amp;gt;&amp;gt; export ESMF_MPIRUN=/path/to/cluster/submission/script&amp;lt;/div&amp;gt;{{note}} Note that &amp;#039;&amp;#039;ESMF_MPIRUN&amp;#039;&amp;#039; is only needed for running test on clusters that use scheduling systems like SLURM. Your submission script should take &amp;#039;&amp;#039;&amp;#039;-np&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; (number of processes requested), and &amp;#039;&amp;#039;&amp;#039;programName&amp;#039;&amp;#039;&amp;#039; (in that order) as arguments to construct the appropriate command to run using the scheduling system on your cluster. A SLURM example is provided below:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# 1) &amp;lt;this_script&amp;gt; -np N prog&amp;lt;br /&amp;gt;#    runs N copies of executable &amp;quot;prog&amp;quot; in parallel. The script must hide all&amp;lt;br /&amp;gt;#    of the system specific details, such as going through a queueing system&amp;lt;br /&amp;gt;#    and/or calling a system specific mpirun script with modified arguments.&amp;lt;br /&amp;gt;#&amp;lt;br /&amp;gt;# 2) The output of the application must arrive at the calling shell via&amp;lt;br /&amp;gt;#    stdout and stderr.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;if [ &amp;quot;$1&amp;quot; != &amp;quot;-np&amp;quot; ]&amp;lt;br /&amp;gt;then&amp;lt;br /&amp;gt;        echo &amp;quot;Usage: mpirun -np # prog&amp;quot;&amp;lt;br /&amp;gt;        exit 1&amp;lt;br /&amp;gt;fi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;num_procs=$2&amp;lt;br /&amp;gt;shift 2&amp;lt;br /&amp;gt;prog=$*&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;echo &amp;quot;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&amp;quot;&amp;lt;br /&amp;gt;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Configure with environment variables:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; export ESMF_DIR=/projects/dmcs_1/src/esmf&amp;lt;br /&amp;gt;&amp;gt; export ESMF_COMM=mvapich2&amp;lt;br /&amp;gt;&amp;gt; export ESMF_COMPILER=intel&amp;lt;br /&amp;gt;&amp;gt; export ESMF_BOPT=O&amp;lt;br /&amp;gt;&amp;gt; export ESMF_OPTLEVEL=3&amp;lt;br /&amp;gt;&amp;gt; export ESMF_ABI=64&amp;lt;br /&amp;gt;&amp;gt; export ESMF_INSTALL_PREFIX=/ESMF/install/dir ESMF_NETCDF=&amp;quot;/path/to/netcdf/bin/nc-config&amp;quot;&amp;lt;br /&amp;gt;&amp;gt; export ESMF_NETCDF_LIBS=&amp;quot;-lnetcdf -lhdf5_hl -lhdf5 -lm -lz -lcurl -lhdf5_hl -lhdf5 -lm -lz -lcurl&amp;quot;&amp;lt;br /&amp;gt;&amp;gt; export ESMF_NETCDF_LIBPATH=&amp;quot;/path/to/netcdf/lib /path/to/hdf5/lib&amp;quot;&amp;lt;br /&amp;gt;&amp;gt; export ESMF_SHARED_LIB_BUILD=OFF&amp;lt;br /&amp;gt;&amp;gt; export ESMF_MPIRUN=/path/to/cluster/submission/script&amp;lt;/div&amp;gt;{{note}} Note that &amp;#039;&amp;#039;ESMF_MPIRUN&amp;#039;&amp;#039; is only needed for running test on clusters that use scheduling systems like SLURM. Your submission script should take &amp;#039;&amp;#039;&amp;#039;-np&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; (number of processes requested), and &amp;#039;&amp;#039;&amp;#039;programName&amp;#039;&amp;#039;&amp;#039; (in that order) as arguments to construct the appropriate command to run using the scheduling system on your cluster. A SLURM example is provided below:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;# 1) &amp;lt;this_script&amp;gt; -np N prog&amp;lt;br /&amp;gt;#    runs N copies of executable &amp;quot;prog&amp;quot; in parallel. The script must hide all&amp;lt;br /&amp;gt;#    of the system specific details, such as going through a queueing system&amp;lt;br /&amp;gt;#    and/or calling a system specific mpirun script with modified arguments.&amp;lt;br /&amp;gt;#&amp;lt;br /&amp;gt;# 2) The output of the application must arrive at the calling shell via&amp;lt;br /&amp;gt;#    stdout and stderr.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;if [ &amp;quot;$1&amp;quot; != &amp;quot;-np&amp;quot; ]&amp;lt;br /&amp;gt;then&amp;lt;br /&amp;gt;        echo &amp;quot;Usage: mpirun -np # prog&amp;quot;&amp;lt;br /&amp;gt;        exit 1&amp;lt;br /&amp;gt;fi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;num_procs=$2&amp;lt;br /&amp;gt;shift 2&amp;lt;br /&amp;gt;prog=$*&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;echo &amp;quot;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&amp;quot;&amp;lt;br /&amp;gt;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Robertson</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6035&amp;oldid=prev</id>
		<title>Robertson at 20:02, 27 July 2021</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6035&amp;oldid=prev"/>
		<updated>2021-07-27T20:02:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:02, 27 July 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l8&quot;&gt;Line 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To obtain &amp;#039;&amp;#039;&amp;#039;ARPACK&amp;#039;&amp;#039;&amp;#039;, execute the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To obtain &amp;#039;&amp;#039;&amp;#039;ARPACK&amp;#039;&amp;#039;&amp;#039;, execute the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; svn checkout https://www.myroms.org/svn/src/libs/ARPACK&amp;lt;br /&amp;gt;&amp;gt; cd ARPACK&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; svn checkout https://www.myroms.org/svn/src/libs/ARPACK&amp;lt;br /&amp;gt;&amp;gt; cd ARPACK&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To compile, customize &#039;&#039;&#039;ARmake.inc&#039;&#039;&#039; for the desired compiler and its flags for the serial (&#039;&#039;&#039;FC&#039;&#039;&#039; and &#039;&#039;&#039;FFLAGS&#039;&#039;&#039;) and parallel (&#039;&#039;&#039;PFC&#039;&#039;&#039; and &#039;&#039;&#039;PFFLAGS&#039;&#039;&#039;) versions of the library. Once configured type:&amp;lt;div class=&quot;box&quot;&amp;gt;make lib plib&amp;lt;/div&amp;gt; to build &#039;&#039;&#039;libarpack.a&#039;&#039;&#039; and &#039;&#039;&#039;libparpack.a&#039;&#039;&#039;. Once the libraries are built you can move them anywhere you like to make it easier to tell ROMS where to find them through environmental variables or with the &#039;&#039;&#039;[[my_build_paths]]&#039;&#039;&#039; script.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To compile, customize &#039;&#039;&#039;ARmake.inc&#039;&#039;&#039; for the desired compiler and its flags for the serial (&#039;&#039;&#039;FC&#039;&#039;&#039; and &#039;&#039;&#039;FFLAGS&#039;&#039;&#039;) and parallel (&#039;&#039;&#039;PFC&#039;&#039;&#039; and &#039;&#039;&#039;PFFLAGS&#039;&#039;&#039;) versions of the library. Once configured type:&amp;lt;div class=&quot;box&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&lt;/ins&gt;&amp;gt; make lib plib&amp;lt;/div&amp;gt; to build &#039;&#039;&#039;libarpack.a&#039;&#039;&#039; and &#039;&#039;&#039;libparpack.a&#039;&#039;&#039;. Once the libraries are built you can move them anywhere you like to make it easier to tell ROMS where to find them through environmental variables or with the &#039;&#039;&#039;[[my_build_paths]]&#039;&#039;&#039; script.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Robertson</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6034&amp;oldid=prev</id>
		<title>Robertson at 20:00, 27 July 2021</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6034&amp;oldid=prev"/>
		<updated>2021-07-27T20:00:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:00, 27 July 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Build, test, and install:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make -j 10&amp;lt;br /&amp;gt;&amp;gt; make all_tests&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Build, test, and install:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make -j 10&amp;lt;br /&amp;gt;&amp;gt; make all_tests&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==MCT (Model Coupling Toolkit)==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Open-source library distributed as a set of Fortran-90 modules for constructing a coupled model system from Earth System Model (ESM) components ([http://www-unix.mcs.anl.gov/mct Larson et al., 2004]). Each component model has its own grid and runs on its own set of processors. The MCT library provides protocols for decomposition and allocation of model grids among different processors, efficient transfer of data fields between the different models, and interpolation algorithms for the data fields that are transferred.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The MCT library is used to couple ROMS atmosphere models (like WRF) and wave models (like SWAN and WW3). For example, SWAN sends to ROMS arrays of wave height, wavelength, average wave periods at the surface and near the bottom, wave propagation direction, near-bottom orbital velocity, and wave-energy dissipation rate. ROMS provides SWAN arrays of water depth, sea-surface elevation, and current velocity. Data exchange between SWAN and ROMS occurs at user-defined synchronization intervals. The frequency of data exchange depends on the application. If the exchanged fields fluctuate rapidly, more frequent synchronization is required. However, data exchange increases run time, so experience is required to determine the optimum synchronization interval for each application.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;MCT is available via github:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/MCSclimate/MCT&amp;lt;br /&amp;gt;&amp;gt; cd MCT&amp;lt;br /&amp;gt;&amp;gt; ./configure&amp;lt;br /&amp;gt;&amp;gt; make&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==NetCDF (Network Common Data Form)==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==NetCDF (Network Common Data Form)==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l61&quot;&gt;Line 61:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 71:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Build, test, and install &amp;#039;&amp;#039;&amp;#039;NetCDF-C&amp;#039;&amp;#039;&amp;#039;:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make -j 5&amp;lt;br /&amp;gt;&amp;gt; make check&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Build, test, and install &amp;#039;&amp;#039;&amp;#039;NetCDF-C&amp;#039;&amp;#039;&amp;#039;:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make -j 5&amp;lt;br /&amp;gt;&amp;gt; make check&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==MCT (Model Coupling Toolkit)==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Open-source library distributed as a set of Fortran-90 modules for constructing a coupled model system from Earth System Model (ESM) components ([http://www-unix.mcs.anl.gov/mct Larson et al., 2004]). Each component model has its own grid and runs on its own set of processors. The MCT library provides protocols for decomposition and allocation of model grids among different processors, efficient transfer of data fields between the different models, and interpolation algorithms for the data fields that are transferred.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The MCT library is used to couple ROMS atmosphere models (like WRF) and wave models (like SWAN and WW3). For example, SWAN sends to ROMS arrays of wave height, wavelength, average wave periods at the surface and near the bottom, wave propagation direction, near-bottom orbital velocity, and wave-energy dissipation rate. ROMS provides SWAN arrays of water depth, sea-surface elevation, and current velocity. Data exchange between SWAN and ROMS occurs at user-defined synchronization intervals. The frequency of data exchange depends on the application. If the exchanged fields fluctuate rapidly, more frequent synchronization is required. However, data exchange increases run time, so experience is required to determine the optimum synchronization interval for each application.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;MCT is available via github:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/MCSclimate/MCT&amp;lt;br /&amp;gt;&amp;gt; cd MCT&amp;lt;br /&amp;gt;&amp;gt; ./configure&amp;lt;br /&amp;gt;&amp;gt; make&amp;lt;/div&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==PIO (Parallel I/O)==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==PIO (Parallel I/O)==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Robertson</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6033&amp;oldid=prev</id>
		<title>Robertson at 19:58, 27 July 2021</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=6033&amp;oldid=prev"/>
		<updated>2021-07-27T19:58:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:58, 27 July 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot;&gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Serial and parallel legacy libraries applied to solve large eigenvalue problems using either the Implicitly Restarted Arnoldi Method (&amp;#039;&amp;#039;&amp;#039;IRAM&amp;#039;&amp;#039;&amp;#039;) for sparse matrices or the Lanczos algorithm for symmetric matrices.  It includes a subset of the &amp;#039;&amp;#039;&amp;#039;BLAS&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;LAPACK&amp;#039;&amp;#039;&amp;#039; libraries. Some of its functions are used in 4D-Var and the adjoint-based stability analysis propagators.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Serial and parallel legacy libraries applied to solve large eigenvalue problems using either the Implicitly Restarted Arnoldi Method (&amp;#039;&amp;#039;&amp;#039;IRAM&amp;#039;&amp;#039;&amp;#039;) for sparse matrices or the Lanczos algorithm for symmetric matrices.  It includes a subset of the &amp;#039;&amp;#039;&amp;#039;BLAS&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;LAPACK&amp;#039;&amp;#039;&amp;#039; libraries. Some of its functions are used in 4D-Var and the adjoint-based stability analysis propagators.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;It is distributed in the ROMS &lt;/del&gt;&#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Lib/&lt;/del&gt;ARPACK&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;subdirectory&lt;/del&gt;. To compile, customize &#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Lib/ARPACK/&lt;/del&gt;ARmake.inc&#039;&#039;&#039; for the desired compiler and its flags for the serial (&#039;&#039;&#039;FC&#039;&#039;&#039; and &#039;&#039;&#039;FFLAGS&#039;&#039;&#039;) and parallel (&#039;&#039;&#039;PFC&#039;&#039;&#039; and &#039;&#039;&#039;PFFLAGS&#039;&#039;&#039;) versions of the library. Once configured type:&amp;lt;div class=&quot;box&quot;&amp;gt;make lib plib&amp;lt;/div&amp;gt; to build &#039;&#039;&#039;libarpack.a&#039;&#039;&#039; and &#039;&#039;&#039;libparpack.a&#039;&#039;&#039;. Once the libraries are built you can move them anywhere you like to make it easier to tell ROMS where to find them through environmental variables or with the &#039;&#039;&#039;my_build_paths&#039;&#039;&#039; script &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;described &lt;/del&gt;in [&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[roms&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in&lt;/del&gt;]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;].&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To obtain &lt;/ins&gt;&#039;&#039;&#039;ARPACK&#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, execute the following:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; svn checkout https://www.myroms&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;org/svn/src/libs/ARPACK&amp;lt;br /&amp;gt;&amp;gt; cd ARPACK&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To compile, customize &#039;&#039;&#039;ARmake.inc&#039;&#039;&#039; for the desired compiler and its flags for the serial (&#039;&#039;&#039;FC&#039;&#039;&#039; and &#039;&#039;&#039;FFLAGS&#039;&#039;&#039;) and parallel (&#039;&#039;&#039;PFC&#039;&#039;&#039; and &#039;&#039;&#039;PFFLAGS&#039;&#039;&#039;) versions of the library. Once configured type:&amp;lt;div class=&quot;box&quot;&amp;gt;make lib plib&amp;lt;/div&amp;gt; to build &#039;&#039;&#039;libarpack.a&#039;&#039;&#039; and &#039;&#039;&#039;libparpack.a&#039;&#039;&#039;. Once the libraries are built you can move them anywhere you like to make it easier to tell ROMS where to find them through environmental variables or with the &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;my_build_paths&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&#039;&#039;&#039; script&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{note}} &#039;&#039;&#039;Note:&#039;&#039;&#039; Prior to SVN revision 1080 (July 23, 2021), &#039;&#039;&#039;ARPACK&#039;&#039;&#039; was distributed &lt;/ins&gt;in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the ROMS &#039;&#039;&#039;Lib/ARPACK&#039;&#039;&#039; subdirectory. For more information about why this was changed see TRAC ticket &lt;/ins&gt;[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https://www.myroms&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;org/projects/src/ticket/891 #891&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==ESMF (Earth System Modeling Framework)==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==ESMF (Earth System Modeling Framework)==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l62&quot;&gt;Line 62:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 67:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The MCT library is used to couple ROMS atmosphere models (like WRF) and wave models (like SWAN and WW3). For example, SWAN sends to ROMS arrays of wave height, wavelength, average wave periods at the surface and near the bottom, wave propagation direction, near-bottom orbital velocity, and wave-energy dissipation rate. ROMS provides SWAN arrays of water depth, sea-surface elevation, and current velocity. Data exchange between SWAN and ROMS occurs at user-defined synchronization intervals. The frequency of data exchange depends on the application. If the exchanged fields fluctuate rapidly, more frequent synchronization is required. However, data exchange increases run time, so experience is required to determine the optimum synchronization interval for each application.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The MCT library is used to couple ROMS atmosphere models (like WRF) and wave models (like SWAN and WW3). For example, SWAN sends to ROMS arrays of wave height, wavelength, average wave periods at the surface and near the bottom, wave propagation direction, near-bottom orbital velocity, and wave-energy dissipation rate. ROMS provides SWAN arrays of water depth, sea-surface elevation, and current velocity. Data exchange between SWAN and ROMS occurs at user-defined synchronization intervals. The frequency of data exchange depends on the application. If the exchanged fields fluctuate rapidly, more frequent synchronization is required. However, data exchange increases run time, so experience is required to determine the optimum synchronization interval for each application.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;MCT is available via github:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/MCSclimate/MCT&amp;lt;br /&amp;gt;&amp;gt; cd MCT&amp;lt;br /&amp;gt;&amp;gt; ./configure&amp;lt;br /&amp;gt;&amp;gt; make&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==PIO (Parallel I/O)==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==PIO (Parallel I/O)==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Robertson</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=5985&amp;oldid=prev</id>
		<title>Robertson at 21:22, 27 May 2021</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=5985&amp;oldid=prev"/>
		<updated>2021-05-27T21:22:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:22, 27 May 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Open-source, machine-independent libraries for storing self-describing scientific data into portable, scalable, appendable, and sharable computer files. It provides &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039; in several computer languages to create files, to write data into a file, to read data from the file, and access information about the dataset dimensions, variables, and attributes.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Open-source, machine-independent libraries for storing self-describing scientific data into portable, scalable, appendable, and sharable computer files. It provides &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039; in several computer languages to create files, to write data into a file, to read data from the file, and access information about the dataset dimensions, variables, and attributes.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ROMS uses &#039;&#039;&#039;NetCDF&#039;&#039;&#039; for all its input and output data management. Its &#039;&#039;&#039;NetCDF3&#039;&#039;&#039; or &#039;&#039;&#039;NetCDF4&#039;&#039;&#039; type files can be processed using the standard library developed and distributed [http://doi.org/10.5065/D6H70CW6 UCAR/Unidata], the Parallel-IO (&#039;&#039;&#039;PIO&#039;&#039;&#039;) developed at ANL/NCAR ([https://doi.org/10.1177/1094342011428143 Dennis &#039;&#039;et al&#039;&#039;., 2012]; [https://www.researchgate.net/publication/348169990_THE_PARALLELIO_PIO_CFORTRAN_LIBRARIES_FOR_SCALABLE_HPC_PERFORMANCE Hartnett and Edwards, 2021]), or the Software for Cashing Output and Reads for Parallel I/O (&#039;&#039;&#039;SCORPIO&#039;&#039;&#039;) library available in [https://e3sm.org/scorpio-parallel-io-library E3SM]. We have migrated to the Fortran-90 &#039;&#039;&#039;API&#039;&#039;&#039; interface,  which consists of a library and one or two module files. See the [[makefile]] and [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;build_Script&lt;/del&gt;| build script]] for how to tell ROMS where these are located. You will have to use a copy of the library and module files that were compiled using the same compiler you are using to compile ROMS - this is especially true for the module files.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ROMS uses &#039;&#039;&#039;NetCDF&#039;&#039;&#039; for all its input and output data management. Its &#039;&#039;&#039;NetCDF3&#039;&#039;&#039; or &#039;&#039;&#039;NetCDF4&#039;&#039;&#039; type files can be processed using the standard library developed and distributed [http://doi.org/10.5065/D6H70CW6 UCAR/Unidata], the Parallel-IO (&#039;&#039;&#039;PIO&#039;&#039;&#039;) developed at ANL/NCAR ([https://doi.org/10.1177/1094342011428143 Dennis &#039;&#039;et al&#039;&#039;., 2012]; [https://www.researchgate.net/publication/348169990_THE_PARALLELIO_PIO_CFORTRAN_LIBRARIES_FOR_SCALABLE_HPC_PERFORMANCE Hartnett and Edwards, 2021]), or the Software for Cashing Output and Reads for Parallel I/O (&#039;&#039;&#039;SCORPIO&#039;&#039;&#039;) library available in [https://e3sm.org/scorpio-parallel-io-library E3SM]. We have migrated to the Fortran-90 &#039;&#039;&#039;API&#039;&#039;&#039; interface,  which consists of a library and one or two module files. See the [[makefile]] and [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;build_roms&lt;/ins&gt;| build script]] for how to tell ROMS where these are located. You will have to use a copy of the library and module files that were compiled using the same compiler you are using to compile ROMS - this is especially true for the module files.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Building NetCDF-4/HDF5===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;NetCDF-4 uses HDF5 for it&#039;s underlying data format so you first need to build HDF5. We recommend 1.10.6 because 1.10.7 causes errors in the NetCDF-C test suite. Here we will describe how to build parallel versions for use on an HPC cluster. We will note what changes are necessary if you are building for a system that doesn&#039;t have parallel I/O.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;====Building HDF5====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* First, download &#039;&#039;&#039;HDF5&#039;&#039;&#039; source code as a gzipped tarball or via git clone:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.6/src/hdf5-1.10.6.tar.gz&amp;lt;/div&amp;gt;or&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/HDFGroup/hdf5&amp;lt;br /&amp;gt;&amp;gt; cd hdf5&amp;lt;br /&amp;gt;&amp;gt; git checkout tags/hdf5-1_10_6&amp;lt;br /&amp;gt;&amp;gt; autoconf -i&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Configure &#039;&#039;&#039;HDF5&#039;&#039;&#039;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; ./configure CC=mpicc CXX=mpicxx FC=mpifort \&amp;lt;br /&amp;gt;      RUNPARALLEL=&quot;srun --nodes=1 --ntasks=6 --cpus-per-task=1 --time=00:13:00 --export=ALL &quot; \&amp;lt;br /&amp;gt;      --prefix=/path/to/parallel/hdf5/1.10.6 --enable-static-exec --enable-shared=no \&amp;lt;br /&amp;gt;      --enable-parallel --disable-silent-rules --enable-fortran&amp;lt;/div&amp;gt;{{note}} &#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;RUNPARALLEL&#039;&#039; is only needed if your system uses a scheduler to run MPI jobs. The example here is for a SLURM system but you will need to adjust this for your cluster.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{note}} &#039;&#039;&#039;Note:&#039;&#039;&#039; To compile &#039;&#039;&#039;serial&#039;&#039;&#039;, remove &#039;&#039;RUNPARALLEL=...&#039;&#039; and &#039;&#039;--enable-parallel&#039;&#039; and change the CC, CXX, and FC to the corresponding serial compilers (e.g. gcc, g++, and gfortran).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{note}} &#039;&#039;&#039;Note:&#039;&#039;&#039; If you would like &#039;&#039;&#039;shared libraries&#039;&#039;&#039; to be built, also remove &#039;&#039;--enable-shared=no&#039;&#039;.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Build, test, and install &#039;&#039;&#039;HDF5&#039;&#039;&#039;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; make -j 5&amp;lt;br /&amp;gt;&amp;gt; make all_tests&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;====Building NetCDF-C====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The C and Fortran APIs for NetCDF are in separate packages and the C version must be built first.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Download &#039;&#039;&#039;NetCDF-C&#039;&#039;&#039; source code as a gzipped tarball or via git clone:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; wget https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-c-4.7.4.tar.gz&amp;lt;/div&amp;gt;or&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; git clone https://github.com/Unidata/netcdf-c&amp;lt;br /&amp;gt;&amp;gt; cd netcdf-c&amp;lt;br /&amp;gt;&amp;gt; git checkout tags/v4.7.4&amp;lt;br /&amp;gt;&amp;gt; autoconf -i&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Configure &#039;&#039;&#039;NetCDF-C&#039;&#039;&#039;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; ./configure CC=mpicc FC=mpifort CFLAGS=-O3 CPPFLAGS=&quot;-I/path/to/parallel/hdf5/1.10.6/include&quot; \&amp;lt;br /&amp;gt;      LDFLAGS=&quot;-L/path/to/parallel/hdf5/1.10.6/lib&quot; \&amp;lt;br /&amp;gt;      --with-mpiexec=/path/to/job/submistion/script \&amp;lt;br /&amp;gt;      --prefix=/path/to/parallel/netcdf/4.7.4 \&amp;lt;br /&amp;gt;      --enable-parallel-tests --disable-shared --disable-silent-rules&amp;lt;/div&amp;gt;{{note}} Note that &#039;&#039;--with-mpiexec&#039;&#039; is only needed for running test on clusters that use scheduling systems like SLURM. Your submission script should take &#039;&#039;&#039;-n&#039;&#039;&#039;, &#039;&#039;&#039;N&#039;&#039;&#039; (number of processes requested), and &#039;&#039;&#039;programName&#039;&#039;&#039; (in that order) as arguments to construct the appropriate command to run using the scheduling system on your cluster. A SLURM example is provided below:&amp;lt;div class=&quot;box&quot;&amp;gt;# 1) &amp;lt;this_script&amp;gt; -n N prog&amp;lt;br /&amp;gt;#    runs N copies of executable &quot;prog&quot; in parallel. The script must hide all&amp;lt;br /&amp;gt;#    of the system specific details, such as going through a queueing system&amp;lt;br /&amp;gt;#    and/or calling a system specific mpirun script with modified arguments.&amp;lt;br /&amp;gt;#&amp;lt;br /&amp;gt;# 2) The output of the application must arrive at the calling shell via&amp;lt;br /&amp;gt;#    stdout and stderr.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;if [ &quot;$1&quot; != &quot;-n&quot; ]&amp;lt;br /&amp;gt;then&amp;lt;br /&amp;gt;        echo &quot;Usage: mpirun -n # prog&quot;&amp;lt;br /&amp;gt;        exit 1&amp;lt;br /&amp;gt;fi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;num_procs=$2&amp;lt;br /&amp;gt;shift 2&amp;lt;br /&amp;gt;prog=$*&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;echo &quot;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&quot;&amp;lt;br /&amp;gt;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&amp;lt;/div&amp;gt;{{note}} &#039;&#039;&#039;Note:&#039;&#039;&#039; To compile &#039;&#039;&#039;serial&#039;&#039;&#039;, remove &#039;&#039;--with-mpiexec&#039;&#039; and &#039;&#039;--enable-parallel-tests&#039;&#039; and change the CC, and FC to the corresponding serial compilers (e.g. gcc and gfortran).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{note}} &#039;&#039;&#039;Note:&#039;&#039;&#039; If you would like shared libraries to be built, also remove &#039;&#039;--disable-shared&#039;&#039;.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Build, test, and install &#039;&#039;&#039;NetCDF-C&#039;&#039;&#039;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; make -j 5&amp;lt;br /&amp;gt;&amp;gt; make check&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;====Building NetCDF-Fortran====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Now we can build the Fortran API.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Download &#039;&#039;&#039;NetCDF-Fortran&#039;&#039;&#039; source code as a gzipped tarball or via git clone:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; wget https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-fortran-4.5.3.tar.gz&amp;lt;/div&amp;gt;or&amp;lt;div class=&quot;box&quot;&amp;gt;git clone https://github.com/Unidata/netcdf-fortran&amp;lt;br /&amp;gt;&amp;gt; cd netcdf-fortan&amp;lt;br /&amp;gt;&amp;gt; git checkout tags/v4.5.3&amp;lt;br /&amp;gt;&amp;gt; autoconf -i&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* There is a bug/typo in &#039;&#039;&#039;configure&#039;&#039;&#039; that makes &#039;&#039;nf-config&#039;&#039; report the wrong linking information to ROMS. To fix the error, edit the &#039;&#039;&#039;configure&#039;&#039;&#039; file (and &#039;&#039;&#039;configure.ac&#039;&#039;&#039; if you plan to run &#039;&#039;autoconf -i&#039;&#039; again) and change the line:&amp;lt;div class=&quot;box&quot;&amp;gt;NC_FLIBS=&quot;-lnetcdff $NC_FLIBS&quot;&amp;lt;/div&amp;gt;to&amp;lt;div class=&quot;box&quot;&amp;gt;NC_FLIBS=&quot;-lnetcdff $NC_LIBS&quot;&amp;lt;/div&amp;gt; more details can be found [https://github.com/Unidata/netcdf-fortran/issues/270 here].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Configure &#039;&#039;&#039;NetCDF-Fortran&#039;&#039;&#039;. Note that we set &#039;&#039;prefix&#039;&#039; to the same as &#039;&#039;&#039;NetCDF-C&#039;&#039;&#039; so the C and Fortran libraries live together:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; ./configure CC=mpicc FC=mpifort CFLAGS=-O3 FFLAGS=-O3 \&amp;lt;br /&amp;gt;      CPPFLAGS=&quot;-I/path/to/parallel/hdf5/1.10.6/include -I/path/to/parallel/netcdf/4.7.4/include&quot; \&amp;lt;br /&amp;gt;      LDFLAGS=&quot;-L/path/to/parallel/hdf5/1.10.6/lib -L/path/to/parallel/netcdf/4.7.4/lib&quot; \&amp;lt;br /&amp;gt;      LIBS=&quot;-lnetcdf -lhdf5_hl -lhdf5 -lm -lz -lcurl&quot; \&amp;lt;br /&amp;gt;      --with-mpiexec=/path/to/job/submistion/script \&amp;lt;br /&amp;gt;      --prefix=/path/to/parallel/netcdf/4.7.4 \&amp;lt;br /&amp;gt;      --enable-parallel-tests --disable-shared --disable-silent-rules&amp;lt;/div&amp;gt;{{note}} Note that &#039;&#039;--with-mpiexec&#039;&#039; should point to the submision script you created while building &#039;&#039;&#039;NetCDF-C&#039;&#039;&#039; and is only needed for running test on clusters that use scheduling systems like SLURM.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{note}} &#039;&#039;&#039;Note:&#039;&#039;&#039; To compile serial remove &#039;&#039;--with-mpiexec&#039;&#039; and &#039;&#039;--enable-parallel-tests&#039;&#039; and change the CC, and FC to the corresponding serial compilers (e.g. gcc and gfortran).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{note}} &#039;&#039;&#039;Note:&#039;&#039;&#039; If you would like shared libraries to be built, also remove &#039;&#039;--disable-shared&#039;&#039;.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* If you are running on clusters that use scheduling systems like SLURM, you will need to edit 4 testing scripts replacing all occurrences of &#039;&#039;&#039;mpiexec&#039;&#039;&#039; with the full path to the submision script you created for &#039;&#039;&#039;NetCDF-C&#039;&#039;&#039;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; vi examples/F90/run_f90_par_examples.sh&amp;lt;br /&amp;gt;&amp;gt; vi nf03_test4/run_f90_par_test.sh&amp;lt;br /&amp;gt;&amp;gt; vi nf_test4/run_f77_par_test_03.sh&amp;lt;br /&amp;gt;&amp;gt; vi nf_test4/run_f77_par_test.sh&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Build, test, and install &#039;&#039;&#039;NetCDF-C&#039;&#039;&#039;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; make -j 5&amp;lt;br /&amp;gt;&amp;gt; make check&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==MCT (Model Coupling Toolkit)==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==MCT (Model Coupling Toolkit)==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l51&quot;&gt;Line 51:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 83:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*If you downloaded the gzipped tarball, you should run &amp;#039;&amp;#039;make clean&amp;#039;&amp;#039; because some Fortran .mod files are included and need to be removed:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make clean&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*If you downloaded the gzipped tarball, you should run &amp;#039;&amp;#039;make clean&amp;#039;&amp;#039; because some Fortran .mod files are included and need to be removed:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make clean&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Configure &#039;&#039;&#039;PIO&#039;&#039;&#039;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; configure CC=mpicc CXX=mpicxx FC=mpifort CFLAGS=-O3 FFLAGS=-O3 FCFLAGS=-O3 \&amp;lt;br /&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/del&gt;CPPFLAGS=&quot;-I/path/to/netcdf/include -I/path/to/hdf5/include -I/path/to/pnetcdf/include&quot; \&amp;lt;br /&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/del&gt;LDFLAGS=&quot;-L/path/to/netcdf/lib -L/path/to/hdf5/lib -L/path/to/pnetcdf/lib&quot; \&amp;lt;br /&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/del&gt;LIBS=&quot;-lhdf5_hl -lhdf5 -lm -lcurl -lz&quot; \&amp;lt;br /&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/del&gt;--with-mpiexec=/path/to/cluster/submission/script \&amp;lt;br /&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/del&gt;--prefix=/pio/install/path --enable-fortran --disable-timing \&amp;lt;br /&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/del&gt;--disable-silent-rules --disable-shared&amp;lt;/div&amp;gt;{{note}} Note that &#039;&#039;--with-mpiexec&#039;&#039; is only needed for running test on clusters that use scheduling systems like SLURM. Your submission script should take &#039;&#039;&#039;-n&#039;&#039;&#039;, &#039;&#039;&#039;N&#039;&#039;&#039; (number of processes requested), and &#039;&#039;&#039;programName&#039;&#039;&#039; (in that order) as arguments to construct the appropriate command to run using the scheduling system on your cluster. A SLURM example is provided below:&amp;lt;div class=&quot;box&quot;&amp;gt;# 1) &amp;lt;this_script&amp;gt; -n N prog&amp;lt;br /&amp;gt;#    runs N copies of executable &quot;prog&quot; in parallel. The script must hide all&amp;lt;br /&amp;gt;#    of the system specific details, such as going through a queueing system&amp;lt;br /&amp;gt;#    and/or calling a system specific mpirun script with modified arguments.&amp;lt;br /&amp;gt;#&amp;lt;br /&amp;gt;# 2) The output of the application must arrive at the calling shell via&amp;lt;br /&amp;gt;#    stdout and stderr.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;if [ &quot;$1&quot; != &quot;-n&quot; ]&amp;lt;br /&amp;gt;then&amp;lt;br /&amp;gt;        echo &quot;Usage: mpirun -n # prog&quot;&amp;lt;br /&amp;gt;        exit 1&amp;lt;br /&amp;gt;fi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;num_procs=$2&amp;lt;br /&amp;gt;shift 2&amp;lt;br /&amp;gt;prog=$*&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;echo &quot;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&quot;&amp;lt;br /&amp;gt;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Configure &#039;&#039;&#039;PIO&#039;&#039;&#039;:&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;./&lt;/ins&gt;configure CC=mpicc CXX=mpicxx FC=mpifort CFLAGS=-O3 FFLAGS=-O3 FCFLAGS=-O3 \&amp;lt;br /&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/ins&gt;CPPFLAGS=&quot;-I/path/to/netcdf/include -I/path/to/hdf5/include -I/path/to/pnetcdf/include&quot; \&amp;lt;br /&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/ins&gt;LDFLAGS=&quot;-L/path/to/netcdf/lib -L/path/to/hdf5/lib -L/path/to/pnetcdf/lib&quot; \&amp;lt;br /&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/ins&gt;LIBS=&quot;-lhdf5_hl -lhdf5 -lm -lcurl -lz&quot; \&amp;lt;br /&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/ins&gt;--with-mpiexec=/path/to/cluster/submission/script \&amp;lt;br /&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/ins&gt;--prefix=/pio/install/path --enable-fortran --disable-timing \&amp;lt;br /&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/ins&gt;--disable-silent-rules --disable-shared&amp;lt;/div&amp;gt;{{note}} Note that &#039;&#039;--with-mpiexec&#039;&#039; is only needed for running test on clusters that use scheduling systems like SLURM. Your submission script should take &#039;&#039;&#039;-n&#039;&#039;&#039;, &#039;&#039;&#039;N&#039;&#039;&#039; (number of processes requested), and &#039;&#039;&#039;programName&#039;&#039;&#039; (in that order) as arguments to construct the appropriate command to run using the scheduling system on your cluster. A SLURM example is provided below:&amp;lt;div class=&quot;box&quot;&amp;gt;# 1) &amp;lt;this_script&amp;gt; -n N prog&amp;lt;br /&amp;gt;#    runs N copies of executable &quot;prog&quot; in parallel. The script must hide all&amp;lt;br /&amp;gt;#    of the system specific details, such as going through a queueing system&amp;lt;br /&amp;gt;#    and/or calling a system specific mpirun script with modified arguments.&amp;lt;br /&amp;gt;#&amp;lt;br /&amp;gt;# 2) The output of the application must arrive at the calling shell via&amp;lt;br /&amp;gt;#    stdout and stderr.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;if [ &quot;$1&quot; != &quot;-n&quot; ]&amp;lt;br /&amp;gt;then&amp;lt;br /&amp;gt;        echo &quot;Usage: mpirun -n # prog&quot;&amp;lt;br /&amp;gt;        exit 1&amp;lt;br /&amp;gt;fi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;num_procs=$2&amp;lt;br /&amp;gt;shift 2&amp;lt;br /&amp;gt;prog=$*&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;echo &quot;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&quot;&amp;lt;br /&amp;gt;srun --mpi=pmi2 --partition=my_partition --nodes=1 --ntasks=${num_procs} --cpus-per-task=1 --time=00:10:00 --exclusive --export=ALL $prog&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Build, test, and install &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039;:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make -j 5&amp;lt;br /&amp;gt;&amp;gt; make check&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;{{warning}} &amp;#039;&amp;#039;&amp;#039;Warning:&amp;#039;&amp;#039;&amp;#039; If you are using the Intel compilers, you will probably need to remove &amp;quot;&amp;#039;&amp;#039;&amp;#039;test_darray_async_many&amp;#039;&amp;#039;&amp;#039;&amp;quot; from line 50 of &amp;#039;&amp;#039;&amp;#039;test/cunit/run_tests.sh&amp;#039;&amp;#039;&amp;#039; for &amp;#039;&amp;#039;make check&amp;#039;&amp;#039; to complete without errors. Details [https://github.com/NCAR/ParallelIO/issues/1867 here].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Build, test, and install &amp;#039;&amp;#039;&amp;#039;PIO&amp;#039;&amp;#039;&amp;#039;:&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;gt; make -j 5&amp;lt;br /&amp;gt;&amp;gt; make check&amp;lt;br /&amp;gt;&amp;gt; make install&amp;lt;/div&amp;gt;{{warning}} &amp;#039;&amp;#039;&amp;#039;Warning:&amp;#039;&amp;#039;&amp;#039; If you are using the Intel compilers, you will probably need to remove &amp;quot;&amp;#039;&amp;#039;&amp;#039;test_darray_async_many&amp;#039;&amp;#039;&amp;#039;&amp;quot; from line 50 of &amp;#039;&amp;#039;&amp;#039;test/cunit/run_tests.sh&amp;#039;&amp;#039;&amp;#039; for &amp;#039;&amp;#039;make check&amp;#039;&amp;#039; to complete without errors. Details [https://github.com/NCAR/ParallelIO/issues/1867 here].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Robertson</name></author>
	</entry>
	<entry>
		<id>https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=5974&amp;oldid=prev</id>
		<title>Arango: /* MCT (Model Coupling Toolkit) */</title>
		<link rel="alternate" type="text/html" href="https://www.myroms.org/wiki/index.php?title=External_Libraries&amp;diff=5974&amp;oldid=prev"/>
		<updated>2021-05-24T01:37:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;MCT (Model Coupling Toolkit)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:37, 24 May 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l27&quot;&gt;Line 27:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 27:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==MCT (Model Coupling Toolkit)==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==MCT (Model Coupling Toolkit)==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;We used the &lt;/del&gt;Model &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Coupling Toolkit &lt;/del&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;MCT; &lt;/del&gt;http://www-unix.mcs.anl.gov/mct&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/; &lt;/del&gt;Larson&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;et al., 2004&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; Jacob et al., 2005) to couple ROMS with SWAN (Warner et al., in prep&lt;/del&gt;)&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, and ROMS to WRF. MCT is an open-source software library, distributed as a set of Fortran90 modules for constructing a coupled model system from individual component models&lt;/del&gt;. Each component model has its own grid and runs on its own set of processors. The MCT provides protocols for decomposition and allocation of model grids among different processors, efficient transfer of data fields between the different models, and interpolation algorithms for the data fields that are transferred. SWAN sends to ROMS arrays of wave height, wavelength, average wave periods at the surface and near the bottom, wave propagation direction, near-bottom orbital velocity, and wave-energy dissipation rate. ROMS provides &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to &lt;/del&gt;SWAN arrays of water depth, sea-surface elevation, and current velocity. Data exchange between SWAN and ROMS occurs at user-defined synchronization intervals. The frequency of data exchange depends on the application. If the exchanged fields fluctuate rapidly, more frequent synchronization is required. However, data exchange increases run time, so experience is required to determine the optimum synchronization interval for each application.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Open-source library distributed as a set of Fortran-90 modules for constructing a coupled model system from Earth System &lt;/ins&gt;Model (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ESM) components ([&lt;/ins&gt;http://www-unix.mcs.anl.gov/mct Larson et al., 2004&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt;). Each component model has its own grid and runs on its own set of processors. The MCT &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;library &lt;/ins&gt;provides protocols for decomposition and allocation of model grids among different processors, efficient transfer of data fields between the different models, and interpolation algorithms for the data fields that are transferred.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The MCT library is used to couple ROMS atmosphere models (like WRF) and wave models (like SWAN and WW3). For example, &lt;/ins&gt;SWAN sends to ROMS arrays of wave height, wavelength, average wave periods at the surface and near the bottom, wave propagation direction, near-bottom orbital velocity, and wave-energy dissipation rate. ROMS provides SWAN arrays of water depth, sea-surface elevation, and current velocity. Data exchange between SWAN and ROMS occurs at user-defined synchronization intervals. The frequency of data exchange depends on the application. If the exchanged fields fluctuate rapidly, more frequent synchronization is required. However, data exchange increases run time, so experience is required to determine the optimum synchronization interval for each application.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==PIO (Parallel I/O)==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==PIO (Parallel I/O)==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Arango</name></author>
	</entry>
</feed>