-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.html
120 lines (92 loc) · 7.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>Community Vertical Mixing Package</title>
<link rel="stylesheet" href="stylesheets/styles.css">
<link rel="stylesheet" href="stylesheets/pygment_trac.css">
<link rel="icon" type="image/x-icon" href="https://github.global.ssl.fastly.net/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body><div class="wrapper">
<menu>
<h1>CVMix</h1>
<p>CVMix source code (including protex documentation) as well as build system and examples / tests</p>
<p class="view"><a href="https://github.com/CVMix/CVMix-src">View the Project on GitHub <small>CVMix/CVMix-src</small></a></p>
<hr>
<h2>Recent versions</h2>
<p>1. Latest trunk (not for the faint of heart!):</p>
<ul>
<li><a href="https://github.com/CVMix/CVMix-src/zipball/master">Download <strong>ZIP File</strong></a></li>
<li><a href="https://github.com/CVMix/CVMix-src/tarball/master">Download <strong>TAR Ball</strong></a></li>
<li><a href="https://github.com/CVMix/CVMix-src">View On <strong>GitHub</strong></a></li>
</ul>
<p>2. Version 1.0:<br>
(Expected mid-January, 2015)</p>
<p>3. Version 0.63 for beta-testing:<br>
<ul>
<li><a href="https://github.com/CVMix/CVMix-src/archive/v0.63-beta.zip">Download <strong>ZIP File</strong></a></li>
<li><a href="https://github.com/CVMix/CVMix-src/archive/v0.63-beta.tar.gz">Download <strong>TAR Ball</strong></a></li>
<li><a href="https://github.com/CVMix/CVMix-src/tree/v0.63-beta">View On <strong>GitHub</strong></a></li>
</ul>
(Released Oct 31, 2014)</p>
<h2>Table of Contents</h2>
<p>1. <a href="#top">About CVMix</a><br>
2. <a href="#building">How to Build CVMix</a><br>
3. <a href="#running">How to Run CVMix</a><br>
4. <a href="#authors">Contributor List</a></p>
<h2>Useful Documents</h2>
<p>1. The <a href="https://github.com/CVMix/CVMix-description/raw/master/cvmix.pdf">scientific description</a> of CVMix<br>
2. Protex-generated <a href="https://github.com/CVMix/CVMix-src/raw/master/doc/protex_documentation.pdf">documentation of the code</a></p>
<h2>Contact Information</h2>
<p>Questions about CVMix or this webpage should be directed to <a href="http://github.com/mnlevy1981">Michael Levy</a> (mlevy_AT_ucar_DOT_edu)</p>
</menu>
<main>
<h3><a name="top" class="anchor" href="#top"><span class="octicon octicon-link"></span></a>About CVMix / How to Download</h3>
<p>The Community Vertical Mixing Project (CVMix) is a portable vertical mixing software package providing an extensible framework for the development of first-order closures. It can be downloaded via the links at the left or cloned directly from github:</p>
<pre><code>$ git clone [email protected]:CVMix/CVMix-src.git
</code></pre>
<p>The scientific description of the project and data needed for some of the stand-alone test cases provided are available from the <a href="https://github.com/CVMix/">CVMix project page</a> on github.</p>
<h3><a name="building" class="anchor" href="#building"><span class="octicon octicon-link"></span></a>How to Build</h3>
CVMix offers two options for building:</p>
<ol>
<li><p>The primary goal of the model is to provide a selection of vertical mixing libraries for use in ocean general circulation models (OGCMs). This only requires building libcvmix.a, which can be done by running <code>make</code> in the <code>src/shared/</code> directory. When you run <code>make</code>, you must pass the name of the compiler to use via the <code>$(FC)</code> variable to the <code>Makefile</code>; you can also pass compiler flags in the <code>$(FCFLAGS)</code> variable. Further, you can specify four directories (default value of each is the current directory):</p>
<ul>
<li><code>SRC_DIR</code> -- directory containing the mixing modules (<code>src/shared/</code>)
<li><code>OBJ_DIR</code> -- directory to store <code>.o</code> and <code>.mod</code> files when compiling.
<li><code>INC_DIR</code> -- directory to store <code>.mod</code> files. When you compile your OGCM, you want to compile your model with the <code>-I$(INC_DIR)</code> option. This directory can be the same as <code>$(OBJ_DIR)</code>.
<li><code>LIB_DIR</code> -- directory to store <code>libcvmix.a</code> file. When you compile your OGCM, you want to link your model with the <code>-L$(LIB_DIR) -lcvmix</code> flag.
</ul>
<p>For example, in CESM the POP ocean model build is launched from a c-shell script that reads in CESM environment variables; the CVMix library is built by running</p>
<pre><code>gmake -f $CODEROOT/ocn/pop2/source/cvmix/Makefile \
SRC_DIR=$CODEROOT/ocn/pop2/source/cvmix \
FC=$FC FCFLAGS="$FFLAGS $FREEFLAGS" \
LIB_DIR=$LIBROOT</code></pre>
<p>where <code>$CODEROOT/ocn/pop2/source/cvmix</code> is a copy of the <code>src/shared/</code> directory of the CVMix repository.</li>
<li><p>CVMix also provides a stand-alone mode to test the library on new machines and to aid in development. There is a simple I/O routine that can be compiled with or without netCDF support and some NCL scripts to produce plots for comparison. Developers wishing to add a mixing module to the library must also provide a stand-alone driver for regression testing.</p>
<p>The executable for the stand-alone driver is <code>bin/cvmix</code>, which can be built by running <code>make</code> from the <code>src/</code> directory. The first time you try to build the driver, you will be prompted to enter your compiler (there is no parallel code at this time, so a serial compiler is fine) and the location of netcdf (which is only used if you build the <code>netcdf</code> target). At this time, the following compilers are supported:</p>
<ul>
<li><code>gfortran</code></li>
<li><code>pgf90</code></li>
<li><code>ifort</code></li>
<li><code>xlf90</code></li>
<li><code>nagfor</code></li>
<li><code>pathf95</code></li>
<li><code>ftn</code>, provided the environment variable <code>PE_ENV</code> is one of the following: <code>GNU</code>, <code>PGI</code>, <code>INTEL</code>, <code>PATHSCALE</code>, or <code>CRAY</code>.</li>
</ul>
<p>Given one of the above compilers, the compiler flags will be set as specified in <code>bld/CompileFlags.mak</code>. The supported compilers put object and module files in <code>bld/obj</code> and build at the <code>O2</code> optimization level. The GNU and Intel compilers will also exit on warnings.
</ol>
<h3><a name="running" class="anchor" href="#running"><span class="octicon octicon-link"></span></a>How to Run the Stand-alone Driver</h3>
<h3><a name="authors-and-contributors" class="anchor" href="#authors-and-contributors"><span class="octicon octicon-link"></span></a>Authors and Contributors</h3>
<p>This project is a collaboration driven mainly by the Geophysical Fluid Dynamics Laboratory, Los Alamos National Laboratory, and the National Center for Atmospheric Research. The main contributors are Stephen Griffies, Alistair Adcroft, and Robert Hallberg from GFDL; Todd Ringler and Douglas Jacobsen from LANL; Gokhan Danabasoglu, William Large, and Michael Levy from NCAR.</p>
</main>
<footer>
<p>This project is maintained by <a href="https://github.com/CVMix">CVMix</a></p>
<p><small>Hosted on GitHub Pages — Theme by <a href="https://github.com/orderedlist">orderedlist</a> (with some small mods)</small></p>
</footer>
</div><script src="javascripts/scale.fix.js"></script></body>
</html>