<?xml version="1.0" encoding="iso-8859-1" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" 
"http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [ 
<!ENTITY mathml "http://www.w3.org/1998/Math/MathML"> 
]> 
<?xml-stylesheet type="text/css" href="cvs.css"?> 
<html  
xmlns="http://www.w3.org/1999/xhtml"  
><head><title></title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<meta name="generator" content="TeX4ht (http://www.cis.ohio-state.edu/~gurari/TeX4ht/mn.html)" /> 
<meta name="originator" content="TeX4ht (http://www.cis.ohio-state.edu/~gurari/TeX4ht/mn.html)" /> 
<!-- xhtml,mozilla --> 
<meta name="src" content="cvs.tex" /> 
<meta name="date" content="2004-01-29 11:50:00" /> 
<link rel="stylesheet" type="text/css" href="cvs.css" /> 
</head><body 
>
<div class="center" 
>
 Online version: <a 
href="http://dust.ess.uci.edu/doc/cvs" class="url" ><span 
class="cmtt-12">http://dust.ess.uci.edu/doc/cvs</span></a>                 January 29, 2004<br />
<span 
class="cmbx-12x-x-144">CVS Cheat Sheet</span><br />
by Charlie Zender<br />
University of California at Irvine<br />
</div>
<!--l. 110--><p class="nopar"> Department of Earth System Science                                                  zender@uci.edu
<br class="newline" />University of California                                                                                 Voice:
(949) 824-2987
<br class="newline" />Irvine, CA&#x00A0;&#x00A0;92697-3100                                                                                      Fax:
(949) 824-3256
</p>
   <h3 class="likesectionHead"><a 
  id="x1-1000"></a>Contents</h3>
   <div class="tableofcontents">
   <span class="sectionToc">1 <a 
href="#x1-20001" id="QQ2-1-2">General Points</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">1.0.1 <a 
href="#x1-30001.0.1" id="QQ2-1-3">Abbreviations</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">1.0.2 <a 
href="#x1-40001.0.2" id="QQ2-1-4">CVS Keywords</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">1.0.3 <a 
href="#x1-50001.0.3" id="QQ2-1-5">CVS Errors</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">1.0.4 <a 
href="#x1-60001.0.4" id="QQ2-1-6">CVS Debugging</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">1.0.5 <a 
href="#x1-70001.0.5" id="QQ2-1-7">CVS Environment Variables</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">1.0.6 <a 
href="#x1-80001.0.6" id="QQ2-1-8">CVS Administration</a></span>
<br />   <span class="sectionToc">2 <a 
href="#x1-90002" id="QQ2-1-9">Modules</a></span>
<br />   &#x00A0;<span class="subsectionToc">2.1 <a 
href="#x1-100002.1" id="QQ2-1-11">CVS Server Issues</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.1.1 <a 
href="#x1-110002.1.1" id="QQ2-1-12">Read-only Access</a></span>
<br />   &#x00A0;<span class="subsectionToc">2.2 <a 
href="#x1-120002.2" id="QQ2-1-13">Generic Modules</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.1 <a 
href="#x1-130002.2.1" id="QQ2-1-14">Import</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.2 <a 
href="#x1-140002.2.2" id="QQ2-1-15">Import RCS</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.3 <a 
href="#x1-150002.2.3" id="QQ2-1-16">Checkout</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.4 <a 
href="#x1-160002.2.4" id="QQ2-1-17">Add</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.5 <a 
href="#x1-170002.2.5" id="QQ2-1-18">Remove</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.6 <a 
href="#x1-180002.2.6" id="QQ2-1-19">Query</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.7 <a 
href="#x1-190002.2.7" id="QQ2-1-20">Diff</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.8 <a 
href="#x1-200002.2.8" id="QQ2-1-21">Commit</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.9 <a 
href="#x1-210002.2.9" id="QQ2-1-22">Tag</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.10 <a 
href="#x1-220002.2.10" id="QQ2-1-23">Rtag</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.11 <a 
href="#x1-230002.2.11" id="QQ2-1-24">Release</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.2.12 <a 
href="#x1-240002.2.12" id="QQ2-1-25">Update</a></span>
                                                                                         
                                                                                         
<br />   &#x00A0;<span class="subsectionToc">2.3 <a 
href="#x1-250002.3" id="QQ2-1-26">C++ Module</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.3.1 <a 
href="#x1-260002.3.1" id="QQ2-1-27">Checkout</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.3.2 <a 
href="#x1-270002.3.2" id="QQ2-1-28">Commit</a></span>
<br />   &#x00A0;<span class="subsectionToc">2.4 <a 
href="#x1-280002.4" id="QQ2-1-29">NCO Module</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.4.1 <a 
href="#x1-290002.4.1" id="QQ2-1-30">Checkout</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.4.2 <a 
href="#x1-300002.4.2" id="QQ2-1-31">Update</a></span>
<br />   &#x00A0;<span class="subsectionToc">2.5 <a 
href="#x1-310002.5" id="QQ2-1-32">CRM Module</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.5.1 <a 
href="#x1-320002.5.1" id="QQ2-1-33">Create Distribution</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.5.2 <a 
href="#x1-330002.5.2" id="QQ2-1-34">Update</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.5.3 <a 
href="#x1-340002.5.3" id="QQ2-1-35">Checkout</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.5.4 <a 
href="#x1-350002.5.4" id="QQ2-1-36">Export</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.5.5 <a 
href="#x1-360002.5.5" id="QQ2-1-37">Tag</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.5.6 <a 
href="#x1-370002.5.6" id="QQ2-1-38">Remote Checkout</a></span>
<br />   &#x00A0;<span class="subsectionToc">2.6 <a 
href="#x1-380002.6" id="QQ2-1-39">CCM-Dust Module</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.6.1 <a 
href="#x1-390002.6.1" id="QQ2-1-40">Checkout</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.6.2 <a 
href="#x1-400002.6.2" id="QQ2-1-41">Query</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.6.3 <a 
href="#x1-410002.6.3" id="QQ2-1-42">Release</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.6.4 <a 
href="#x1-420002.6.4" id="QQ2-1-43">Tag</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.6.5 <a 
href="#x1-430002.6.5" id="QQ2-1-44">Update</a></span>
<br />   &#x00A0;<span class="subsectionToc">2.7 <a 
href="#x1-440002.7" id="QQ2-1-45">MATCH-Dust Module</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.7.1 <a 
href="#x1-450002.7.1" id="QQ2-1-46">Repository changes</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.7.2 <a 
href="#x1-460002.7.2" id="QQ2-1-47">Checkout</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.7.3 <a 
href="#x1-470002.7.3" id="QQ2-1-48">Tag</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.7.4 <a 
href="#x1-480002.7.4" id="QQ2-1-49">Merge CCM into CCM-Dust</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.7.5 <a 
href="#x1-490002.7.5" id="QQ2-1-50">Merge MATCH into MATCH-Dust</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.7.6 <a 
href="#x1-500002.7.6" id="QQ2-1-51">Merge MATCH-Dust into CCM-Dust</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.7.7 <a 
href="#x1-510002.7.7" id="QQ2-1-52">Merge CCM-Dust into MATCH-Dust</a></span>
<br />   &#x00A0;<span class="subsectionToc">2.8 <a 
href="#x1-520002.8" id="QQ2-1-53">MOZART-Dust Module</a></span>
<br />   &#x00A0;&#x00A0;<span class="subsubsectionToc">2.8.1 <a 
href="#x1-530002.8.1" id="QQ2-1-54">Field names</a></span>
   </div>
<!--l. 127--><p class="noindent">
</p>
   <h3 class="sectionHead"><span class="titlemark">1   </span> <a 
  id="x1-20001"></a>General Points</h3>
<!--l. 129--><p class="noindent">This document describes the CVS commands I consider to be most useful in general, with working
examples from a number of specific modules. After the generic commands in Section&#x00A0; <a 
href="#x1-120002.2">2.2<!--tex4ht:ref: sxn:gnr --></a>, the
examples proceed in order of increasing complexity.
</p><!--l. 134--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">1.0.1   </span> <a 
  id="x1-30001.0.1"></a>Abbreviations</h5>
                                                                                         
                                                                                         
<!--l. 135--><p class="noindent">The following abbreviations are used: CWD means the working copy of the CVS module in and
beneath the Current Working Directory; <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl</span></span></span> = module name; <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">fl</span></span></span> = file name; <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">brnch</span></span></span> = branch tag;
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">vrs</span></span></span> = version name (which can be a branch tag).
</p><!--l. 141--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">1.0.2   </span> <a 
  id="x1-40001.0.2"></a>CVS Keywords</h5>
<!--l. 142--><p class="noindent">Only &#x201C;<span 
class="cmtt-12">cvs commit</span>&#x201D;, &#x201C;<span 
class="cmtt-12">cvs tag</span>&#x201D;, and &#x201C;<span 
class="cmtt-12">cvs rtag</span>&#x201D; change the repository. All other CVS commands
change, if anything, the contents of the CWD only, and so are recoverable. CVS commands should
be executed from the top level of the CWD. In this case, the module name <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl</span></span></span> may be optional
at the end of the command (because CVS finds the module name by looking in the
&#x201C;CVS&#x201D; subdirectory <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl/CVS</span></span></span>). Executing CVS commands from one level above the
module requires specification of the module name so that CVS knows where to find
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl/CVS</span></span></span>.
</p><!--l. 153--><p class="indent">   In addition to the usual RCS keywords (<span 
class="cmtt-12">Header</span>, <span 
class="cmtt-12">Date</span>, &#x2026;), CVS defines the keyword <span 
class="cmtt-12">Name</span>. The
string &#x201C;<span 
class="cmtt-12">$Name$</span>&#x201D; expands to include the tag specified when the module was checked out, e.g., &#x201C;<span 
class="cmtt-12">cvs</span>
<span 
class="cmtt-12">co -r ccm3</span><span 
class="cmtt-12">_5</span><span 
class="cmtt-12">_22 ccm</span>&#x201D; produces &#x201C;<span 
class="cmtt-12">$Name:ccm3</span><span 
class="cmtt-12">_5</span><span 
class="cmtt-12">_22 $</span>&#x201D; but &#x201C;<span 
class="cmtt-12">cvs co ccm</span>&#x201D; produces
&#x201C;<span 
class="cmtt-12">$Name:$</span>&#x201D; for two reasons. First, no tag was specified with the checkout so the default <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm</span></span></span>
module, i.e., the main trunk, is retrieved. The main trunk has no default tag name, so the
keyword value is an empty string. Second, checking out the main trunk never expands
&#x201C;<span 
class="cmtt-12">$Name$</span>&#x201D;, but checking out a branch, any branch, does. Branch tags are sticky, so a branch
always has an associated tag name. The rest of the RCS keywords expand to their usual
meanings regardless of whether the module is a tagged version or branch. To explicitly
turn off CVS keyword expansion when checking out a module (recommended to avoid
unnecessary conflicts due to CVS metadata changes), use the &#x201C;<span 
class="cmtt-12">-kk</span>&#x201D; option instead of the
default, &#x201C;<span 
class="cmtt-12">-kkv</span>&#x201D;. The <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-k</span></span></span> options are <span 
class="cmti-12">sticky</span>, meaning they apply to any derived files as
well.
</p><!--l. 177--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">1.0.3   </span> <a 
  id="x1-50001.0.3"></a>CVS Errors</h5>
<!--l. 178--><p class="noindent">Occasionally CVS does not perform as expected. Two errors are particularly frequent, and easy to
fix. The first is that, when asked to commit files to the repository, CVS complains that some
subset of the files is out-of-date, and asks you to fix this before it proceeds. This is, in fact, not an
error, but very helpful behavior by CVS telling you that somehow your working directory is out
of date with respect to the repository. Some versions of CVS will commit those files
that are modified but not commit those that are out of date. Other versions of CVS
will not commit any file until all files in the CWD are current. In this case, simply
perform a &#x201C;<span 
class="cmtt-12">cvs update</span>&#x201D; before attempting to &#x201C;<span 
class="cmtt-12">cvs commit</span>&#x201D; again. This should solve the
problem.
</p><!--l. 194--><p class="indent">   The second error occurs when CVS attempts to modify the repository, e.g., during a &#x201C;<span 
class="cmtt-12">cvs</span>
<span 
class="cmtt-12">commit</span>&#x201D; operation, and it complains that it has never heard of any of the files, e.g., &#x201C;<span 
class="cmtt-12">cvsbin</span>
                                                                                         
                                                                                         
<span 
class="cmtt-12">commit: nothing known about &#x2018;to&#x2019;</span>&#x201D;. If this occurs on the CGD Sun network, it might be
because you have used simply <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">cvs</span></span></span> rather than <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">cvsbin</span></span></span> as the CVS command. Check this and try
your command again.
</p><!--l. 202--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">1.0.4   </span> <a 
  id="x1-60001.0.4"></a>CVS Debugging</h5>
<!--l. 203--><p class="noindent">When attempting to solve problems with CVS, try using the &#x201C;<span 
class="cmtt-12">-t</span>&#x201D; switch so CVS will trace its
execution.
</p><!--l. 206--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">1.0.5   </span> <a 
  id="x1-70001.0.5"></a>CVS Environment Variables</h5>
<!--l. 207--><p class="noindent">CVS makes use of several environment variables<a 
  id="dx1-7001"></a>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
export&#x00A0;CVS&#x005F;RSH=&#x2019;ssh&#x2019;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Needed&#x00A0;for&#x00A0;ssh&#x00A0;access&#x00A0;to&#x00A0;NCAR&#x00A0;CGD&#x00A0;CVS
&#x00A0;<br />export&#x00A0;CVSROOT=&#x2019;:ext:dust.ess.uci.edu:/home/zender/cvs&#x2019;
&#x00A0;<br />export&#x00A0;CVSUMASK=&#x2019;002&#x2019;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Default&#x00A0;file&#x00A0;permissions&#x00A0;for&#x00A0;CVS
</div>
</td></tr></table>
<!--l. 214--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">1.0.6   </span> <a 
  id="x1-80001.0.6"></a>CVS Administration</h5>
<!--l. 215--><p class="noindent">In order to execute the <span 
class="cmtt-12">cvs admin</span><a 
  id="dx1-8001"></a> command, the user must be a member of the <span 
class="cmss-12">cvsadmin </span>group, if
it exists.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;admin&#x00A0;-oREV::
&#x00A0;<br />cvs&#x00A0;admin&#x00A0;-mREV:MSG&#x00A0;Replace&#x00A0;the&#x00A0;log&#x00A0;message&#x00A0;of&#x00A0;revision&#x00A0;REV&#x00A0;with&#x00A0;MSG.
</div>
</td></tr></table>
<!--l. 222--><p class="indent">   It took five years since I began using CVS in 1998 before I needed to learn how to
use CVS administrative commands to repair repositories. On July&#x00A0;30, 2003 the laptop
I was using ran out of power and somehow wrote binary garbage into every file that
<span 
class="cmtt-12">emacs</span><a 
  id="dx1-8002"></a> was visiting. I only lost a few hours of work, and it seemed like time to backup
everything I was working on. That made things a little worse because I incidentally
committed the binary garbage to CVS. How did I remove the binary garbage from the
repository?
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;Replace&#x00A0;corrupt&#x00A0;file&#x00A0;with&#x00A0;latest&#x00A0;working&#x00A0;backup
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-r&#x00A0;1.65&#x00A0;-p&#x00A0;pnp.tex&#x00A0;&#x003E;&#x00A0;pnp.tex
&#x00A0;<br />#&#x00A0;Delete&#x00A0;garbage&#x00A0;file&#x00A0;from&#x00A0;repository
&#x00A0;<br />cvs&#x00A0;admin&#x00A0;-o&#x00A0;1.65:1.67&#x00A0;pnp.tex&#x00A0;#&#x00A0;Method&#x00A0;1:&#x00A0;Collapse&#x00A0;everything&#x00A0;between
&#x00A0;<br />cvs&#x00A0;admin&#x00A0;-o&#x00A0;1.66&#x00A0;pnp.tex&#x00A0;#&#x00A0;Method&#x00A0;2:&#x00A0;Delete&#x00A0;a&#x00A0;specific&#x00A0;version
&#x00A0;<br />#&#x00A0;Delete&#x00A0;garbage&#x00A0;file&#x00A0;from&#x00A0;repository
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-r&#x00A0;1.53&#x00A0;-p&#x00A0;prp&#x005F;mri.tex&#x00A0;&#x003E;&#x00A0;prp&#x005F;mri.tex
&#x00A0;<br />cvs&#x00A0;admin&#x00A0;-o&#x00A0;1.54&#x00A0;prp&#x005F;mri.tex
</div>
</td></tr></table>
<!--l. 243--><p class="noindent">
</p>
   <h3 class="sectionHead"><span class="titlemark">2   </span> <a 
  id="x1-90002"></a>Modules</h3>
<!--l. 244--><p class="noindent">To create a CVS repository, use
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;-d&#x00A0;${HOME}/cvs&#x00A0;init
</div>
</td></tr></table>
<!--l. 248--><p class="indent">   The following subsections present specific examples for both generic and CGD-related modules.
Many of the same examples are used for different modules, so that the examples might differ only
in the name of the target module, and sometimes not at all (e.g., &#x201C;<span 
class="cmtt-12">cvs co</span>&#x201D;). The goal has been to
keep the examples self-contained for each module, at the expense of document length and
redundancy. The examples are drawn from modules in active use in CGD. Table&#x00A0; <a 
href="#x1-90071">1<!--tex4ht:ref: tbl:rps --></a>&#x00A0;summarizes the
three repositories used in the examples.
                                                                                         
                                                                                         
                                                                                                                                                                                                                                                               
                                                                                         
                                                                                         
                                                                                         <a 
  id="x1-90071"></a>
</p>
     <hr class="float" /><div class="float" 
><table class="float"><tr class="float"><td class="float" 
>
                                                                                                                                                                      
                                                                                         
                                                                                         
                                                                                         <div class="center" 
>
 <!--tex4ht:inline--><div class="tabular"><table class="tabular" 
cellspacing="0pt" cellpadding="0"  
frame="void" id="TBL-1-" ><colgroup id="TBL-1-1g"><col 
id="TBL-1-1" /><col 
id="TBL-1-2" /><col 
id="TBL-1-3" /><col 
id="TBL-1-4" /></colgroup><tr 
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr  
 valign="baseline" id="TBL-1-1-"><td  align="left" style="white-space:nowrap;" id="TBL-1-1-1"  
class="td11">  Software                                                                                                                                                                         </td><td  align="left" style="white-space:nowrap;" id="TBL-1-1-2"  
class="td11">  Machine                   </td><td  align="left" style="white-space:nowrap;" id="TBL-1-1-3"  
class="td11">  <span 
class="cmtt-12">Repository Location          </span></td><td  align="left" style="white-space:nowrap;" id="TBL-1-1-4"  
class="td11">  <span 
class="cmtt-12">Module(s)                   </span></td>
</tr><tr  
 valign="baseline" id="TBL-1-2-"><td  align="left" style="white-space:nowrap;" id="TBL-1-2-1"  
class="td11">  </td></tr><tr><td colspan="4"></td></tr><tr  
 valign="baseline" id="TBL-01-2-"><td  align="left" style="white-space:nowrap;" id="TBL-01-2-1"  
class="td11">                                                                                                                                                                                  </td>
</tr><tr  
 valign="baseline" id="TBL-01-3-"><td  align="left" style="white-space:nowrap;" id="TBL-01-3-1"  
class="td11">                                                                                                                                                                                      </td>
</tr><tr 
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr 
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr  
 valign="baseline" id="TBL-01-4-"><td  align="left" style="white-space:nowrap;" id="TBL-01-4-1"  
class="td11">  C<span 
class="cmbx-6">+</span> <span 
class="cmbx-6">+</span>, mie<a 
href="cvs2.xml" id="cvs2.xml" ><sup>1</sup></a> </td><td  align="left" style="white-space:nowrap;" id="TBL-01-4-2"  
class="td11">  <span 
class="cmss-12">dust.ess.uci.edu</span><a 
  id="dx1-9002"></a>           </td><td  align="left" style="white-space:nowrap;" id="TBL-01-4-3"  
class="td11">  <span 
class="cmtt-12">/home/zender/cvs             </span></td><td  align="left" style="white-space:nowrap;" id="TBL-01-4-4"  
class="td11">  <span 
class="cmtt-12">c++ mie                     </span></td>
</tr><tr 
class="vspace" style="font-size:2.58333pt"><td 
>&nbsp;</td><td 
>&nbsp;</td><td 
>&nbsp;</td><td 
>&nbsp;</td></tr><tr  
 valign="baseline" id="TBL-01-5-"><td  align="left" style="white-space:nowrap;" id="TBL-01-5-1"  
class="td11">  NCO                                                                                                                                                                              </td><td  align="left" style="white-space:nowrap;" id="TBL-01-5-2"  
class="td11">  <span 
class="cmss-12">cvs.nco.sourceforge.net</span><a 
  id="dx1-9003"></a>  </td><td  align="left" style="white-space:nowrap;" id="TBL-01-5-3"  
class="td11">  <span 
class="cmtt-12">/cvsroot/nco                 </span></td><td  align="left" style="white-space:nowrap;" id="TBL-01-5-4"  
class="td11">  <span 
class="cmtt-12">nco                         </span></td>
</tr><tr 
class="vspace" style="font-size:2.58333pt"><td 
>&nbsp;</td><td 
>&nbsp;</td><td 
>&nbsp;</td><td 
>&nbsp;</td></tr><tr  
 valign="baseline" id="TBL-01-6-"><td  align="left" style="white-space:nowrap;" id="TBL-01-6-1"  
class="td11">  CCM, CCM-Dust, CRM                                                                                                                                                    </td><td  align="left" style="white-space:nowrap;" id="TBL-01-6-2"  
class="td11">  <span 
class="cmss-12">goldhill.cgd.ucar.edu</span><a 
  id="dx1-9004"></a>     </td><td  align="left" style="white-space:nowrap;" id="TBL-01-6-3"  
class="td11">  <span 
class="cmtt-12">/fs/cgd/csm/models/CVS.REPOS </span></td><td  align="left" style="white-space:nowrap;" id="TBL-01-6-4"  
class="td11">  <span 
class="cmtt-12">ccm ccm</span><span 
class="cmtt-12">_dst crm             </span></td>
</tr><tr 
class="vspace" style="font-size:2.58333pt"><td 
>&nbsp;</td><td 
>&nbsp;</td><td 
>&nbsp;</td><td 
>&nbsp;</td></tr><tr  
 valign="baseline" id="TBL-01-7-"><td  align="left" style="white-space:nowrap;" id="TBL-01-7-1"  
class="td11">  MATCH, MATCH-Dust                                                                                                                                                     </td><td  align="left" style="white-space:nowrap;" id="TBL-01-7-2"  
class="td11">  <span 
class="cmss-12">goldhill.cgd.ucar.edu</span><a 
  id="dx1-9005"></a>     </td><td  align="left" style="white-space:nowrap;" id="TBL-01-7-3"  
class="td11">  <span 
class="cmtt-12">/fs/cgd/csm/people/eaton/CVS </span></td><td  align="left" style="white-space:nowrap;" id="TBL-01-7-4"  
class="td11">  <span 
class="cmtt-12">match match</span><span 
class="cmtt-12">_dst dst         </span></td>
</tr><tr 
class="vspace" style="font-size:2.58333pt"><td 
>&nbsp;</td><td 
>&nbsp;</td><td 
>&nbsp;</td><td 
>&nbsp;</td></tr><tr  
 valign="baseline" id="TBL-01-8-"><td  align="left" style="white-space:nowrap;" id="TBL-01-8-1"  
class="td11">  CAM                                                                                                                                                                             </td><td  align="left" style="white-space:nowrap;" id="TBL-01-8-2"  
class="td11">  <span 
class="cmss-12">goldhill.cgd.ucar.edu</span><a 
  id="dx1-9006"></a>     </td><td  align="left" style="white-space:nowrap;" id="TBL-01-8-3"  
class="td11">  <span 
class="cmtt-12">/fs/cgd/csm/models/CVS.REPOS </span></td><td  align="left" style="white-space:nowrap;" id="TBL-01-8-4"  
class="td11">  <span 
class="cmtt-12">cam2</span><span 
class="cmtt-12">_0</span><span 
class="cmtt-12">_2</span><span 
class="cmtt-12">_dev41</span><span 
class="cmtt-12">_brnchT</span><span 
class="cmtt-12">_dust2 </span></td>
</tr><tr 
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr 
class="vspace" style="font-size:2.58333pt"><td 
>&nbsp;</td><td 
>&nbsp;</td><td 
>&nbsp;</td><td 
>&nbsp;</td></tr><tr  
 valign="baseline" id="TBL-01-9-"><td  align="left" style="white-space:nowrap;" id="TBL-01-9-1"  
class="td11">                                                                                                                                                                                      </td></tr></table>
</div>
<!--l. 272--><p class="nopar">
<br /> </p><table class="caption" 
><tr valign="baseline" class="caption"><td class="id">Table&#x00A0;1: </td><td  
class="content">CVS Repositories Used in Examples</td></tr></table><!--tex4ht:label?: x1-90071 -->
</div>
<!--l. 274--><p class="nopar">
                                                                                                                                                                      
                                                                                         
                                                                                         
                                                                                         </p>
     </td></tr></table></div><hr class="endfloat" />
                                                                                                                                                                      
                                                                                         
                                                                                         
<!--l. 277--><p class="indent">   Most of the examples do not explicitly specify the repository (with the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-d</span></span></span> argument). This is
because most commands are executed within, rather than above, the CWD. Table&#x00A0; <a 
href="#x1-90071">1<!--tex4ht:ref: tbl:rps --></a>&#x00A0;should be
consulted when the repository to use is in doubt.
</p>
   <h4 class="subsectionHead"><span class="titlemark">2.1   </span> <a 
  id="x1-100002.1"></a>CVS Server Issues</h4>
<!--l. 286--><p class="noindent">A precise discussion of setting up a CVS server is given at
<a 
href="http://www.korayguclu.de/index.php?&file=linux.cvs.pserver.xml" class="url" ><span 
class="cmtt-12">http://www.korayguclu.de/index.php?&#x0026;file=linux.cvs.pserver.xml</span></a>. The CVS
documentation describes the necessary modifications to the internet daemon<a 
  id="dx1-10001"></a> configuration file
<span 
class="cmss-12">/etc/inetd.conf</span><a 
  id="dx1-10002"></a>. RedHat Linux<a 
  id="dx1-10003"></a> uses a more powerful and complex (some call this sophisticated)
daemon, <span 
class="cmtt-12">xinetd</span><a 
  id="dx1-10004"></a> (pronounced &#x201C;zy-net-d&#x201D;), configured in <span 
class="cmss-12">/etc/xinetd.conf</span><a 
  id="dx1-10005"></a>. On RedHat
systems, CVS password server services are controlled by a file called <span 
class="cmss-12">cvspserver</span><a 
  id="dx1-10006"></a> located in
<span 
class="cmss-12">/etc/xinetd.Dachau&#x2019;s</span><a 
  id="dx1-10007"></a>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;Others
&#x00A0;<br />sudo&#x00A0;scp&#x00A0;~/linux/etc/inetd.conf.dust&#x00A0;/etc/inetd.conf
&#x00A0;<br />#&#x00A0;RedHat
&#x00A0;<br />sudo&#x00A0;scp&#x00A0;~/linux/etc/xinetd.d/cvspserver&#x00A0;/etc/xinetd.d
&#x00A0;<br />sudo&#x00A0;/etc/rc.d/init.d/xinetd&#x00A0;restart
</div>
</td></tr></table>
<!--l. 302--><p class="indent">   The CVS documentation specifies how to configure the <span 
class="cmtt-12">port number</span><a 
  id="dx1-10008"></a> (2401), <span 
class="cmtt-12">socket</span><span 
class="cmtt-12">_type</span><a 
  id="dx1-10009"></a>, and
<span 
class="cmtt-12">server</span><span 
class="cmtt-12">_args</span><a 
  id="dx1-10010"></a> flags. Internet daemon services (i.e., <span 
class="cmtt-12">inetd </span>or <span 
class="cmtt-12">xinetd</span>) should be started
automatically, in, say, system runlevel<a 
  id="dx1-10011"></a>&#x00A0;3.
</p><!--l. 308--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.1.1   </span> <a 
  id="x1-110002.1.1"></a>Read-only Access</h5>
<!--l. 309--><p class="noindent">Place the <span 
class="cmss-12">readers</span><a 
  id="dx1-11001"></a>, <span 
class="cmss-12">writers</span><a 
  id="dx1-11002"></a>, and <span 
class="cmss-12">passwd</span><a 
  id="dx1-11003"></a> file in the directory <span 
class="cmss-12">$CVSROOT/CVSROOT</span>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
%&#x00A0;cat&#x00A0;&#x003E;&#x00A0;/home/zender/cvs/CVSROOT/readers
&#x00A0;<br />sci&#x005F;prg
&#x00A0;<br />esmf
&#x00A0;<br />jtalaman
&#x00A0;<br />%&#x00A0;cat&#x00A0;&#x003E;&#x00A0;/home/zender/cvs/CVSROOT/writers
&#x00A0;<br />zender
&#x00A0;<br />%&#x00A0;cat&#x00A0;&#x003E;&#x00A0;/home/zender/cvs/CVSROOT/passwd
&#x00A0;<br />sci&#x005F;prg::cvspub
&#x00A0;<br />esmf::cvspub
</div>
</td></tr></table>
<!--l. 322--><p class="indent">   Add the user <span 
class="cmss-12">cvspub</span><a 
  id="dx1-11004"></a> to the system. Do not give the user a home directory or interactive
access.
</p><!--l. 325--><p class="indent">   Once read-only services work, outside users may check out modules by logging in as the
anonymous user<a 
  id="dx1-11005"></a>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;-d&#x00A0;:pserver:sci&#x005F;prg@dust.ess.uci.edu:/home/zender/cvs&#x00A0;login
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:pserver:sci&#x005F;prg@dust.ess.uci.edu:/home/zender/cvs&#x00A0;co&#x00A0;-kk&#x00A0;c++
</div>
</td></tr></table>
<!--l. 332--><p class="noindent">
</p>
   <h4 class="subsectionHead"><span class="titlemark">2.2   </span> <a 
  id="x1-120002.2"></a>Generic Modules</h4>
<!--l. 334--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.1   </span> <a 
  id="x1-130002.2.1"></a>Import an existing directory</h5>
<!--l. 335--><p class="noindent">Import files in directory <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl</span></span></span> to create new CVS module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl</span></span></span>. The keywords &#x201C;zender&#x201D; (vendor tag)
and &#x201C;mdl-0_1&#x201D; (release tag) are used for initial module tags.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;mdl
&#x00A0;<br />cvs&#x00A0;import&#x00A0;-m&#x00A0;&#x0022;Imported&#x00A0;sources&#x0022;&#x00A0;mdl&#x00A0;zender&#x00A0;mdl-0&#x005F;1
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:dust.ess.uci.edu:/home/zender/cvs&#x00A0;import&#x00A0;-m&#x00A0;&#x0022;Imported&#x00A0;sources&#x0022;&#x00A0;mdl&#x00A0;zender&#x00A0;mdl-0&#x005F;1
&#x00A0;<br />cd&#x00A0;..
&#x00A0;<br />mv&#x00A0;mdl&#x00A0;mdl.bck
&#x00A0;<br />cvs&#x00A0;co&#x00A0;-kk&#x00A0;mdl
&#x00A0;<br />ls&#x00A0;-R&#x00A0;mdl
&#x00A0;<br />/bin/rm&#x00A0;-r&#x00A0;mdl.bck
</div>
</td></tr></table>
<!--l. 350--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.2   </span> <a 
  id="x1-140002.2.2"></a>Import RCS files</h5>
<!--l. 351--><p class="noindent">Edit the CVS repository to create the appropriate source directories. Make sure all RCS files are
unlocked, then copy them into the CVS repository.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;mdl/RCS
&#x00A0;<br />rcs&#x00A0;-u&#x00A0;*
&#x00A0;<br />mkdir&#x00A0;$CVSROOT/mdl
&#x00A0;<br />cp&#x00A0;.*,v&#x00A0;*,v&#x00A0;$CVSROOT/mdl
&#x00A0;<br />cd&#x00A0;../..
&#x00A0;<br />mv&#x00A0;mdl&#x00A0;mdl.bck
&#x00A0;<br />cvs&#x00A0;co&#x00A0;mdl
&#x00A0;<br />ls&#x00A0;-R&#x00A0;mdl
&#x00A0;<br />/bin/rm&#x00A0;-r&#x00A0;mdl.bck
</div>
</td></tr></table>
<!--l. 366--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.3   </span> <a 
  id="x1-150002.2.3"></a>Checkout</h5>
<!--l. 367--><p class="noindent">Checkout module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl</span></span></span>. A <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-d</span></span></span> argument before the verb specifies the CVS repository to use (instead
of <span 
class="cmtt-12">$CVSROOT</span>). By default, a module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl</span></span></span> is placed in the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl</span></span></span> directory of the CWD. A <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-d</span></span></span> argument
after the verb specifies an arbitrary directory for the module. The <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-kk</span></span></span> option suppresses RCS
keyword expansion (e.g., of &#x201C;<span 
class="cmtt-12">$Header:: $</span>&#x201D;), thereby minimizing the number of conflicts
during a future <span 
class="cmtt-12">cvs update</span>. Note that <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">co</span></span></span> is a synonym for <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">checkout</span></span></span>&#x2014;the two are
interchangeable.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;co&#x00A0;mdl&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Expands&#x00A0;keywords
&#x00A0;<br />cvs&#x00A0;co&#x00A0;-kk&#x00A0;mdl&#x00A0;#&#x00A0;Does&#x00A0;not&#x00A0;expand&#x00A0;keywords.&#x00A0;Use&#x00A0;prior&#x00A0;to&#x00A0;cvs&#x00A0;update.
&#x00A0;<br />cvs&#x00A0;checkout&#x00A0;-d&#x00A0;drc&#x00A0;mdl
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;mdl
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-d&#x00A0;drc&#x00A0;mdl
</div>
</td></tr></table>
<!--l. 387--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.4   </span> <a 
  id="x1-160002.2.4"></a>Add</h5>
<!--l. 388--><p class="noindent">Schedule file <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">fl</span></span></span> for addition to the repository. Actual addition takes effect with the next &#x201C;<span 
class="cmtt-12">cvs</span>
<span 
class="cmtt-12">commit</span>&#x201D; command.
<br class="newline" /><span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">cvs</span>&#x00A0;<span 
class="cmtt-12">add</span>&#x00A0;<span 
class="cmtt-12">fl</span></span></span>
</p><!--l. 393--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.5   </span> <a 
  id="x1-170002.2.5"></a>Remove</h5>
<!--l. 394--><p class="noindent">Schedule file <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">fl</span></span></span> for removal from the repository. Actual removal takes effect with the next &#x201C;<span 
class="cmtt-12">cvs</span>
<span 
class="cmtt-12">commit</span>&#x201D; command.
<br class="newline" /><span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">cvs</span>&#x00A0;<span 
class="cmtt-12">remove</span>&#x00A0;<span 
class="cmtt-12">fl</span></span></span>
</p><!--l. 399--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.6   </span> <a 
  id="x1-180002.2.6"></a>Query</h5>
<!--l. 400--><p class="noindent">Show changes of CWD relative to repository. Option <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-n</span></span></span> specifies that no changes to the repository
will occur.
<br class="newline" /><span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">cvs</span>&#x00A0;<span 
class="cmtt-12">-n</span>&#x00A0;<span 
class="cmtt-12">update</span></span></span>
</p><!--l. 405--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.7   </span> <a 
  id="x1-190002.2.7"></a>Diff</h5>
<!--l. 406--><p class="noindent">Show changes relative to particular versions, tags, or times.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;diff&#x00A0;-kk&#x00A0;main.c
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-r&#x00A0;ccm3&#x005F;6&#x00A0;-kk&#x00A0;main.c
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-r&#x00A0;1.1&#x00A0;-kk&#x00A0;main.c
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-D&#x00A0;&#x0022;last&#x00A0;week&#x0022;&#x00A0;-kk&#x00A0;main.c
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-D&#x00A0;&#x0022;4&#x00A0;days&#x00A0;ago&#x0022;&#x00A0;-kk&#x00A0;main.c
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-D&#x00A0;&#x0022;3/12/98&#x0022;&#x00A0;-kk&#x00A0;main.c
</div>
</td></tr></table>
<!--l. 416--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.8   </span> <a 
  id="x1-200002.2.8"></a>Commit</h5>
<!--l. 417--><p class="noindent">Commit changes beneath CWD. The <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">commit</span></span></span> verb accepts optional filename arguments for
file-by-file (rather than entire module) commits.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;commit&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Invokes&#x00A0;editor&#x00A0;for&#x00A0;log&#x00A0;message
&#x00A0;<br />cvs&#x00A0;commit&#x00A0;-m&#x00A0;&#x0022;fixed&#x00A0;bug&#x0022;&#x00A0;#&#x00A0;Uses&#x00A0;&#x0022;fixed&#x00A0;bug&#x0022;&#x00A0;for&#x00A0;log&#x00A0;message
&#x00A0;<br />cvs&#x00A0;commit&#x00A0;README&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Only&#x00A0;commits&#x00A0;README&#x00A0;file
</div>
</td></tr></table>
<!--l. 426--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.9   </span> <a 
  id="x1-210002.2.9"></a>Tag</h5>
<!--l. 427--><p class="noindent">Tag CWD with <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl-1&#x005F;0</span></span></span>. Option <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-c</span></span></span> causes <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">tag</span></span></span> to verify that files beneath CWD are not modified
relative to the repository. This ensures the repository has all the information needed to exactly
reproduce the CWD from the tag name in the future (with, e.g., &#x201C;<span 
class="cmtt-12">cvs co -r mdl1</span><span 
class="cmtt-12">_0</span>
<span 
class="cmtt-12">mdl</span>&#x201D;.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;tag&#x00A0;-c&#x00A0;mdl-1&#x005F;0&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;From&#x00A0;top-level&#x00A0;of&#x00A0;CWD
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;mdl-1&#x005F;0&#x00A0;mdl&#x00A0;#&#x00A0;Above&#x00A0;top-level&#x00A0;of&#x00A0;CWD
</div>
</td></tr></table>
<!--l. 438--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.10   </span> <a 
  id="x1-220002.2.10"></a>Rtag</h5>
<!--l. 439--><p class="noindent">&#x201C;Repository&#x201D; tag (<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">rtag</span></span></span>) the module with <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">tag&#x005F;nm</span></span></span>. Verb <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">rtag</span></span></span>, as opposed to <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">tag</span></span></span>, operates on the
repository, not the CWD. Does this only tag those portions of the repository in and beneath the
CWD? (fxm). By default, <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">rtag</span></span></span> tags the most recent version of the module. This can be overridden
with <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-D</span>&#x00A0;<span 
class="cmtt-12">date</span></span></span> option. Use (<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">rtag</span></span></span>) with caution on branches, because it will update the main
repository as well (fxm).
<br class="newline" /><span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">cvs</span>&#x00A0;<span 
class="cmtt-12">rtag</span>&#x00A0;<span 
class="cmtt-12">tag&#x005F;nm</span></span></span>
</p><!--l. 451--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.11   </span> <a 
  id="x1-230002.2.11"></a>Release</h5>
<!--l. 452--><p class="noindent">Release module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl</span></span></span> and delete its working directories. CVS prompts the user whether to actually
delete the directory:
<br class="newline" /><span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">cvs</span>&#x00A0;<span 
class="cmtt-12">release</span>&#x00A0;<span 
class="cmtt-12">-d</span>&#x00A0;<span 
class="cmtt-12">mdl</span>&#x00A0;<span 
class="cmtt-12">#</span>&#x00A0;<span 
class="cmtt-12">From</span>&#x00A0;<span 
class="cmtt-12">level</span>&#x00A0;<span 
class="cmtt-12">above</span>&#x00A0;<span 
class="cmtt-12">CWD</span></span></span>
</p><!--l. 457--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.2.12   </span> <a 
  id="x1-240002.2.12"></a>Update</h5>
<!--l. 458--><p class="noindent">Update the CWD for <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl</span></span></span> so that it reflects the latest version of the repository. One, and only one,
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-j</span></span></span> option, &#x201C;<span 
class="cmtt-12">-j vrs</span>&#x201D;, updates the CWD of <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl</span></span></span> to the latest revision of the <span 
class="cmti-12">ancestor </span>of
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">vrs</span></span></span>. The ancestor is the model from which the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">vrs</span></span></span> branch split. Given two <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-j</span></span></span> options,
&#x201C;<span 
class="cmtt-12">-j vrs1 -j vrs2</span>&#x201D;, the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">update</span></span></span> command takes the differences (uses <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">diff</span></span></span>) between
version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">vrs1</span></span></span> and version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">vrs2</span></span></span> and applies them (uses <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">patch</span></span></span>) to the CWD. The <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-kk</span></span></span>
option suppresses RCS keyword expansion, thereby minimizing the number of conflicts
during an update. For this reason, it is wise to use <span 
class="cmtt-12">cvs co -kk mdl </span>before using <span 
class="cmtt-12">cvs</span>
<span 
class="cmtt-12">update</span>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;update&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Update&#x00A0;all&#x00A0;files&#x00A0;in&#x00A0;module
&#x00A0;<br />cvs&#x00A0;update&#x00A0;*&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Update&#x00A0;currently&#x00A0;checked-out&#x00A0;files&#x00A0;only
&#x00A0;<br />cvs&#x00A0;update&#x00A0;mdl&#x00A0;&#x00A0;#&#x00A0;Above&#x00A0;top-level&#x00A0;of&#x00A0;CWD
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-kk
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-j&#x00A0;vrs&#x00A0;-kk
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-j&#x00A0;vrs1&#x00A0;-j&#x00A0;vrs2&#x00A0;-kk
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-kk&#x00A0;-p&#x00A0;params.h&#x00A0;&#x003E;&#x00A0;foo&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Redirect&#x00A0;file&#x00A0;to&#x00A0;stdout
&#x00A0;<br />#&#x00A0;Replace&#x00A0;modified&#x00A0;file&#x00A0;with&#x00A0;repository&#x00A0;file
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-kk&#x00A0;-p&#x00A0;params.h&#x00A0;&#x003E;&#x00A0;params.h
</div>
</td></tr></table>
<!--l. 484--><p class="noindent">
</p>
   <h4 class="subsectionHead"><span class="titlemark">2.3   </span> <a 
  id="x1-250002.3"></a>C++ Module</h4>
<!--l. 485--><p class="noindent">The C++ module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">c++</span></span></span> was imported using &#x201C;<span 
class="cmtt-12">cvs import -m &#x0022;Imported sources&#x0022; c++ zender</span>
<span 
class="cmtt-12">c++-1</span><span 
class="cmtt-12">_0</span>&#x201D;.
</p><!--l. 488--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.3.1   </span> <a 
  id="x1-260002.3.1"></a>Checkout</h5>
<!--l. 489--><p class="noindent">Checkout the latest version of the C++ module.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;From&#x00A0;NCAR,&#x00A0;from&#x00A0;~
&#x00A0;<br />cvsbin&#x00A0;co&#x00A0;c++
&#x00A0;<br />#&#x00A0;From&#x00A0;home,&#x00A0;from&#x00A0;~
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:pserver:zender@bearmtn.cgd.ucar.edu:/home/zender/cvs&#x00A0;login
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:pserver:zender@bearmtn.cgd.ucar.edu:/home/zender/cvs&#x00A0;co&#x00A0;-kk&#x00A0;c++
&#x00A0;<br />#&#x00A0;From&#x00A0;UCI,&#x00A0;from&#x00A0;~
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/home/zender/cvs&#x00A0;co&#x00A0;-kk&#x00A0;c++
</div>
</td></tr></table>
<!--l. 500--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.3.2   </span> <a 
  id="x1-270002.3.2"></a>Commit</h5>
<!--l. 501--><p class="noindent">Commit C++ CWD to remote repository. One of the nicest feature about CVS is that it
knows about remote repositories, so commands like <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">commit</span></span></span> and <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">update</span></span></span> need no extra
arguments.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;Update&#x00A0;CWD&#x00A0;at&#x00A0;home&#x00A0;and&#x00A0;continue&#x00A0;working
&#x00A0;<br />cvs&#x00A0;update&#x00A0;c++&#x00A0;#&#x00A0;From&#x00A0;home&#x00A0;~/
&#x00A0;<br />#&#x00A0;Commit&#x00A0;CWD&#x00A0;at&#x00A0;home&#x00A0;to&#x00A0;repository&#x00A0;at&#x00A0;NCAR
&#x00A0;<br />cvs&#x00A0;commit&#x00A0;c++&#x00A0;#&#x00A0;From&#x00A0;home&#x00A0;~/
</div>
</td></tr></table>
<!--l. 512--><p class="noindent">
</p>
   <h4 class="subsectionHead"><span class="titlemark">2.4   </span> <a 
  id="x1-280002.4"></a>NCO Module</h4>
<!--l. 514--><p class="noindent">The NCO module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">nco</span></span></span> was imported using &#x201C;<span 
class="cmtt-12">cvs import -m &#x0022;Imported sources&#x0022; nco zender</span>
<span 
class="cmtt-12">nco-1</span><span 
class="cmtt-12">_0</span>&#x201D;.
</p><!--l. 517--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.4.1   </span> <a 
  id="x1-290002.4.1"></a>Checkout</h5>
<!--l. 518--><p class="noindent">Checkout the latest version of the NCO module.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;From&#x00A0;home,&#x00A0;from&#x00A0;~/nc
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:pserver:zender@bearmtn.cgd.ucar.edu:/home/zender/cvs&#x00A0;login
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:pserver:zender@bearmtn.cgd.ucar.edu:/home/zender/cvs&#x00A0;co&#x00A0;nco
</div>
</td></tr></table>
<!--l. 525--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.4.2   </span> <a 
  id="x1-300002.4.2"></a>Update</h5>
<!--l. 526--><p class="noindent">Update a remote module (i.e., at home) to the current NCAR NCO repository.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;status
&#x00A0;<br />cvs&#x00A0;-n&#x00A0;update
&#x00A0;<br />cvs&#x00A0;update&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Update&#x00A0;all&#x00A0;files&#x00A0;in&#x00A0;module
&#x00A0;<br />cvs&#x00A0;update&#x00A0;*&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Update&#x00A0;currently&#x00A0;checked-out&#x00A0;files&#x00A0;only
</div>
</td></tr></table>
<!--l. 535--><p class="noindent">
</p>
   <h4 class="subsectionHead"><span class="titlemark">2.5   </span> <a 
  id="x1-310002.5"></a>CRM Module</h4>
<!--l. 537--><p class="noindent">The CRM module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">crm</span></span></span> was created as a branch of CCM version 3.5.22. First, we defined module
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">crm</span></span></span> by editing the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">/fs/cgd/csm/models/CVS.REPOS/CVSROOT/modules</span></span></span> file to contain the
following lines:
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
...
&#x00A0;<br />#&#x00A0;CCM&#x00A0;Column&#x00A0;models
&#x00A0;<br />crm&#x00A0;atm/ccm&#x005F;crm&#x00A0;&#x0026;ccm&#x005F;crm&#x005F;src
&#x00A0;<br />ccm&#x005F;crm&#x005F;src&#x00A0;-d&#x00A0;src&#x00A0;atm/ccm&#x005F;crm&#x005F;src&#x00A0;&#x0026;eul&#x00A0;&#x0026;physics&#x00A0;&#x0026;ccmlsm&#x005F;share&#x00A0;&#x0026;dom&#x00A0;&#x0026;csm&#x005F;share&#x00A0;&#x0026;
&#x00A0;<br />srchutil&#x00A0;&#x0026;control
&#x00A0;<br />...
</div>
</td></tr></table>
<!--l. 550--><p class="indent">   Finally, we executed the following commands to create the CRM branch of the CCM:
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;co&#x00A0;-r&#x00A0;ccm3&#x005F;5&#x005F;22&#x00A0;crm
&#x00A0;<br />cd&#x00A0;src/crm
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-b&#x00A0;ccm&#x005F;brnch&#x005F;crm
&#x00A0;<br />cd&#x00A0;src/control
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-b&#x00A0;ccm&#x005F;brnch&#x005F;crm&#x00A0;[list&#x00A0;of&#x00A0;files&#x00A0;in&#x00A0;control&#x00A0;needed&#x00A0;by&#x00A0;CRM]
&#x00A0;<br />cd&#x00A0;src/physics
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-b&#x00A0;ccm&#x005F;brnch&#x005F;crm&#x00A0;[list&#x00A0;of&#x00A0;files&#x00A0;in&#x00A0;physics&#x00A0;needed&#x00A0;by&#x00A0;CRM]
&#x00A0;<br />...
</div>
</td></tr></table>
<!--l. 562--><p class="indent">   Note that we used <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">tag</span></span></span> rather than <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">rtag</span></span></span> in the above because only <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">tag</span></span></span> allows one to
tag a specified subset of the files in a given module. In this case, the desired subset
was the CCM files which are also required by the CRM, but no others (this excluded
superfluous files, e.g., <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">vdiff.F</span></span></span>). All work on the CRM module is actually performed on this
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm&#x005F;brnch&#x005F;crm</span></span></span> branch of the CRM, rather than the CRM main trunk This methodology, i.e.,
working on the branch rather than the main trunk, is also used for the Dust module
component of CCM, MATCH, and MOZART described in Sections&#x00A0; <a 
href="#x1-380002.6">2.6<!--tex4ht:ref: sxn:ccm_dst --></a>,  <a 
href="#x1-440002.7">2.7<!--tex4ht:ref: sxn:match_dst --></a>, and  <a 
href="#x1-520002.8">2.8<!--tex4ht:ref: sxn:mozart_dst --></a>
respectively.
</p><!--l. 575--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.5.1   </span> <a 
  id="x1-320002.5.1"></a>Create Distribution</h5>
<!--l. 576--><p class="noindent">Release a new CRM. This process uses many CVS commands. First, make sure the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">crm</span></span></span> module in
the repository is up-to-date, so that the CWD can be exactly reproduced. Second, release the
module. Third, check out the CRM with the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-kk</span></span></span> option. Fourth, difference the CWD with the
most recent branch tag. This difference file shows the differences between the releases. Do
these differences make sense? Fifth, tag the module. Sixth, execute the distribution
script.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;..&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Move&#x00A0;above&#x00A0;top-level&#x00A0;of&#x00A0;CWD
&#x00A0;<br />cvs&#x00A0;commit&#x00A0;crm&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Above&#x00A0;top-level&#x00A0;of&#x00A0;CWD
&#x00A0;<br />cvs&#x00A0;release&#x00A0;-d&#x00A0;crm&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Above&#x00A0;top-level&#x00A0;of&#x00A0;CWD
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;crm&#x00A0;-kk&#x00A0;crm
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;ccm3&#x005F;6&#x00A0;crm&#x00A0;&#x003E;&#x00A0;pre.diff
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;ccm3&#x005F;6&#x005F;brnchT&#x005F;crm2&#x005F;0&#x00A0;crm
&#x00A0;<br />crm&#x005F;dst.pl&#x00A0;--dbg=1&#x00A0;ccm3&#x005F;6&#x005F;brnchT&#x005F;crm2&#x005F;0
</div>
</td></tr></table>
<!--l. 597--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.5.2   </span> <a 
  id="x1-330002.5.2"></a>Update to newer CCM version</h5>
<!--l. 598--><p class="noindent">Update the CWD to a newer CCM version. This process uses many CVS commands. First,
checkout a clean copy of the CRM branch into the CWD. Second, difference the pre-merged CRM
from its current CCM base. This difference file shows all the CRM-specific modifications to the
current CCM base code. Third, update the CWD to the desired CCM version. Given two <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-j</span></span></span>
options, (&#x201C;<span 
class="cmtt-12">-j ccm3</span><span 
class="cmtt-12">_5</span><span 
class="cmtt-12">_22 -j ccm3</span><span 
class="cmtt-12">_6</span><span 
class="cmtt-12">_0</span>&#x201D;), the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">update</span></span></span> command takes the differences (uses <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">diff</span></span></span>)
from CCM version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;5&#x005F;22</span></span></span> to CCM version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;6&#x005F;0</span></span></span> and applies them (uses <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">patch</span></span></span>) to the
CWD. Fourth, examine and fix the conflicts caused by this merge. Use, e.g., &#x201C;<span 
class="cmtt-12">cvs status</span>&#x201D; to
locate conflicts. Make sure to compile, test, and generate new *.out files for the updated model.
This ensures that any new source files will be included in <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">Srcfiles</span></span></span> and <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">Depends</span></span></span>. Also, it is
important to compile with &#x201C;<span 
class="cmtt-12">-DSINGLE</span><span 
class="cmtt-12">_SOURCE</span><span 
class="cmtt-12">_FILE</span>&#x201D; option. This verifies that any new
files merged into, and needed by, the CRM are accounted for. Unfortunately, there is
no simple way to ensure that superfluous source files have not crept into the CRM.
Fifth, difference the post-merged CRM from the new CCM base. This difference file
shows all the CRM-specific modifications to the new CCM base code. Sixth, difference
the two difference files. This file highlights conflicts caused by the merge process and,
hopefully, any mistakes CVS made in performing the update. Seventh, commit the updated
code to the head of the branch. Eighth, if desired, tag the branch as a new release of
CRM.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;Above&#x00A0;top-level&#x00A0;of&#x00A0;CWD
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;crm&#x00A0;-kk&#x00A0;crm
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;ccm3&#x005F;5&#x005F;22&#x00A0;crm&#x00A0;&#x003E;&#x00A0;pre.diff
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-j&#x00A0;ccm3&#x005F;5&#x005F;22&#x00A0;-j&#x00A0;ccm3&#x005F;6&#x00A0;crm
&#x00A0;<br />cvs&#x00A0;status&#x00A0;crm&#x00A0;|&#x00A0;grep&#x00A0;-i&#x00A0;conflict
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;ccm3&#x005F;6&#x00A0;crm&#x00A0;&#x003E;&#x00A0;post.diff
&#x00A0;<br />diff&#x00A0;pre.diff&#x00A0;post.diff&#x00A0;&#x003E;&#x00A0;diff.diff
&#x00A0;<br />cvs&#x00A0;commit&#x00A0;crm
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;ccm3&#x005F;6&#x005F;brnchT&#x005F;crm2&#x005F;0&#x00A0;crm
</div>
</td></tr></table>
<!--l. 641--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.5.3   </span> <a 
  id="x1-340002.5.3"></a>Checkout</h5>
<!--l. 642--><p class="noindent">Checkout the latest version of the CRM. By default, the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">crm</span></span></span> module is placed in the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">crm</span></span></span> directory
of the CWD. A <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-d</span></span></span> argument after the verb specifies an arbitrary directory.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;crm&#x00A0;-kk&#x00A0;crm
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;crm&#x00A0;-kk&#x00A0;crm
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;crm&#x00A0;-d&#x00A0;drc&#x00A0;crm
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:pserver:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;&#x005C;
&#x00A0;<br />co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;crm&#x00A0;-kk&#x00A0;crm
</div>
</td></tr></table>
<!--l. 658--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.5.4   </span> <a 
  id="x1-350002.5.4"></a>Export</h5>
<!--l. 659--><p class="noindent">Export the latest version of the module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">crm</span></span></span> from CCM branch <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm&#x005F;brnch&#x005F;crm</span></span></span> into directory
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">/data/zender/crm-1.1</span></span></span> and prepare a compressed tarfile distribution. The <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">export</span></span></span> command
strips all the CVS directories from the output. This is most useful for creating distributions for
public release. Using <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-kkv</span></span></span> instead of <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-kv</span></span></span> would expand CVS keywords into keywords plus
values.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
/bin/rm&#x00A0;-r&#x00A0;-f&#x00A0;/data/zender/crm-1.1
&#x00A0;<br />cvs&#x00A0;export&#x00A0;-kv&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;crm&#x00A0;-d&#x00A0;/data/zender/crm-1.1&#x00A0;crm
&#x00A0;<br />cd&#x00A0;/data/zender;&#x00A0;gtar&#x00A0;-cvzf&#x00A0;crm-1.1.tar.gz&#x00A0;./crm-1.1
</div>
</td></tr></table>
<!--l. 674--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.5.5   </span> <a 
  id="x1-360002.5.5"></a>Tag</h5>
<!--l. 675--><p class="noindent">Tag CWD with <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;6&#x005F;brnchT&#x005F;crm2&#x005F;0</span></span></span>. Option <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-c</span></span></span> causes <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">tag</span></span></span> to verify that files beneath CWD
are not modified relative to the repository. This ensures the repository has all the information
needed to exactly reproduce the CWD from the tag name in the future. Note it is wise to tag only
modules which have been checked out with the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-kk</span></span></span> option. This prevents large numbers of trivial
differences between tagged versions.
<br class="newline" /><span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">cvs</span>&#x00A0;<span 
class="cmtt-12">tag</span>&#x00A0;<span 
class="cmtt-12">-c</span>&#x00A0;<span 
class="cmtt-12">ccm3&#x005F;6&#x005F;brnchT&#x005F;crm2&#x005F;0</span></span></span>
</p><!--l. 686--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.5.6   </span> <a 
  id="x1-370002.5.6"></a>Remote Checkout</h5>
<!--l. 687--><p class="noindent">Checkout the latest version of the CRM from home. The first <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-d</span></span></span> option specifies the remote
repository. The second <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-d</span></span></span> option specifies the name of the directory to place the module in. The
final argument, <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">crm</span></span></span>, is the name of the module to checkout. For unknown reasons this command
erroneously places the src directories one level too high in most cases. This is apparently a CVS
bug fixed in later versions of CVS.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;&#x005C;
&#x00A0;<br />co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;crm&#x00A0;-N&#x00A0;-d&#x00A0;crm&#x00A0;crm
</div>
</td></tr></table>
<!--l. 699--><p class="indent">   Here is a workaround for the above problem:
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
mv&#x00A0;ccmlsm&#x005F;share&#x00A0;dom&#x00A0;physics&#x00A0;srchutil&#x00A0;control&#x00A0;csm&#x005F;share&#x00A0;eul&#x00A0;src
&#x00A0;<br />mv&#x00A0;src&#x00A0;crm
</div>
</td></tr></table>
<!--l. 705--><p class="noindent">
</p>
   <h4 class="subsectionHead"><span class="titlemark">2.6   </span> <a 
  id="x1-380002.6"></a>CCM-Dust Module</h4>
<!--l. 706--><p class="noindent">The module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm&#x005F;dst</span></span></span> comprises the sub-modules <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm</span></span></span> and <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dst</span></span></span>. Thus <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm&#x005F;dst</span></span></span> is the complete CCM
with the dust modifications. Code modifications related to dust appear in the usual files in <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">src</span></span></span>
(e.g., file <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">physics/aphys.F</span></span></span>). Most of the dust physics are isolated in the new directory <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">src/dust</span></span></span>.
The branch <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm&#x005F;brnch&#x005F;dst</span></span></span> was created as a branch of CCM version 3.5.22. First, we defined
module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm&#x005F;dst</span></span></span> by editing the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">/fs/cgd/csm/models/CVS.REPOS/CVSROOT/modules</span></span></span> file to contain
the following lines:
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
...
&#x00A0;<br />#&#x00A0;Atmospheric&#x00A0;models
&#x00A0;<br />ccm&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;atm/ccm&#x00A0;&#x0026;ccm&#x005F;src&#x00A0;&#x0026;ccm&#x005F;tools
&#x00A0;<br />ccm&#x005F;dst&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;atm/ccm&#x00A0;&#x0026;ccm&#x005F;dust&#x005F;src&#x00A0;&#x0026;ccm&#x005F;tools
&#x00A0;<br />...
&#x00A0;<br />#&#x00A0;&#x00A0;Sub-modules&#x00A0;to&#x00A0;ccm
&#x00A0;<br />ccm&#x005F;src&#x00A0;-d&#x00A0;src&#x00A0;atm/ccm&#x005F;src&#x00A0;&#x0026;dynamics&#x00A0;&#x0026;physics&#x00A0;&#x0026;control&#x00A0;&#x0026;spmd&#x00A0;&#x0026;dom&#x00A0;&#x0026;som&#x00A0;&#x005C;
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x0026;lsm&#x00A0;&#x0026;ccmlsm&#x005F;share&#x00A0;&#x0026;csm&#x005F;share&#x00A0;&#x0026;mathutil&#x00A0;&#x0026;srchutil
&#x00A0;<br />ccm&#x005F;dust&#x005F;src&#x00A0;-d&#x00A0;src&#x00A0;atm/ccm&#x005F;src&#x00A0;&#x0026;dst&#x00A0;&#x0026;dynamics&#x00A0;&#x0026;physics&#x00A0;&#x0026;control&#x00A0;&#x0026;spmd&#x00A0;&#x0026;dom&#x00A0;&#x0026;som&#x00A0;&#x005C;
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x0026;lsm&#x00A0;&#x0026;ccmlsm&#x005F;share&#x00A0;&#x0026;csm&#x005F;share&#x00A0;&#x0026;mathutil&#x00A0;&#x0026;srchutil
&#x00A0;<br />...
&#x00A0;<br />physics&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;atm/ccm&#x005F;src&#x005F;dirs/physics
&#x00A0;<br />dst&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;atm/ccm&#x005F;src&#x005F;dirs/dust
&#x00A0;<br />...
</div>
</td></tr></table>
<!--l. 734--><p class="indent">   Finally, we executed the following commands to create the Dust branch of the CCM:
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;co&#x00A0;ccm&#x005F;dst
&#x00A0;<br />cd&#x00A0;ccm&#x005F;dst
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-b&#x00A0;ccm&#x005F;brnch&#x005F;dst
</div>
</td></tr></table>
<!--l. 742--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.6.1   </span> <a 
  id="x1-390002.6.1"></a>Checkout</h5>
<!--l. 743--><p class="noindent">Checkout the latest version of the CCM-Dust module. A <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-d</span></span></span> argument after the verb specifies an
arbitrary directory for the module.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;/fs/cgd/data0/zender
&#x00A0;<br />cvsbin&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;ccm&#x005F;dst
&#x00A0;<br />#&#x00A0;From&#x00A0;home,&#x00A0;from&#x00A0;~/fsh/dst
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;&#x005C;
&#x00A0;<br />co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;ccm&#x005F;dst
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:pserver:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;&#x005C;
&#x00A0;<br />co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;ccm&#x005F;dst
&#x00A0;<br />#&#x00A0;From&#x00A0;UCI
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;ccm&#x005F;dst
&#x00A0;<br />#&#x00A0;CCM&#x00A0;Box&#x00A0;model&#x00A0;only
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;-d&#x00A0;aer&#x00A0;dst
&#x00A0;<br />#&#x00A0;Standard&#x00A0;CCM,&#x00A0;from&#x00A0;UCI
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-kk&#x00A0;-d&#x00A0;ccm&#x005F;o2x&#x00A0;ccm
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm3&#x005F;10&#x00A0;-d&#x00A0;ccm&#x005F;o2x&#x00A0;ccm
&#x00A0;<br />#&#x00A0;Source&#x00A0;directory&#x00A0;only
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm3&#x005F;10&#x00A0;-d&#x00A0;src&#x00A0;ccm&#x005F;src
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-kk&#x00A0;-d&#x00A0;src&#x00A0;ccm&#x005F;src
&#x00A0;<br />#&#x00A0;Then&#x00A0;when&#x00A0;updating&#x00A0;parent,&#x00A0;use&#x00A0;cvs&#x00A0;update&#x00A0;-l&#x00A0;-kk&#x00A0;for&#x00A0;local&#x00A0;update&#x00A0;only
&#x00A0;<br />#&#x00A0;Marianna&#x2019;s&#x00A0;dust&#x00A0;CLM
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;clm2&#x005F;deva&#x005F;52&#x00A0;-d&#x00A0;clm2&#x005F;deva&#x005F;52&#x00A0;clm2
&#x00A0;<br />#&#x00A0;Natalie&#x2019;s&#x00A0;dust&#x00A0;CAM/CLM
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;cam2&#x005F;0&#x005F;2&#x005F;dev41&#x005F;brnchT&#x005F;dust2&#x00A0;-d&#x00A0;cam2&#x005F;0&#x005F;2&#x005F;dev41&#x005F;brnchT&#x005F;dust2&#x00A0;cam1
&#x00A0;<br />#&#x00A0;Head&#x00A0;of&#x00A0;CAM
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;cam&#x005F;dev&#x00A0;-d&#x00A0;cam&#x005F;dev&#x00A0;cam1
</div>
</td></tr></table>
<!--l. 774--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.6.2   </span> <a 
  id="x1-400002.6.2"></a>Query</h5>
<!--l. 775--><p class="noindent">Show which files in CWD have changed relative to the most recent committed version in the Dust
repository. Then show precisely what has changed for file <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dstmbl.F</span></span></span>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;-nq&#x00A0;update&#x00A0;-kk
</div>
</td></tr></table>
<!--l. 781--><p class="indent">   The result of <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">cvs</span>&#x00A0;<span 
class="cmtt-12">-n</span>&#x00A0;<span 
class="cmtt-12">update</span></span></span> is a list of files which differ from the repository. Each file is prefixed
by a code. The most common codes are <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">C</span></span></span> (for conflicts), <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">M</span></span></span> (local modifications newer than
repository), and <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">U</span></span></span> (local file needs updating). Conflicts
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
/home/zender/f:&#x00A0;cvs&#x00A0;-n&#x00A0;update
&#x00A0;<br />cvsbin&#x00A0;update:&#x00A0;Updating&#x00A0;.
&#x00A0;<br />C&#x00A0;Makefile
&#x00A0;<br />M&#x00A0;csz&#x005F;f77.F
&#x00A0;<br />U&#x00A0;sng.F
</div>
</td></tr></table>
<!--l. 795--><p class="indent">   The precise differences relative to the repository are shown with
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;diff&#x00A0;-kk
</div>
</td></tr></table>
<!--l. 799--><p class="indent">   Show which files in CWD have changed relative to version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mdl-1&#x005F;0</span></span></span> in the CCM repository.
Then show precisely what has changed for file <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">Makefile</span></span></span>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;-nq&#x00A0;update&#x00A0;-r&#x00A0;mdl-1&#x005F;0&#x00A0;-kk
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-r&#x00A0;mdl-1&#x005F;0&#x00A0;-kk&#x00A0;Makefile
</div>
</td></tr></table>
<!--l. 807--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.6.3   </span> <a 
  id="x1-410002.6.3"></a>Release</h5>
<!--l. 808--><p class="noindent">Release the current Dust module and check out a new working copy.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;Above&#x00A0;top-level&#x00A0;of&#x00A0;CWD
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;release&#x00A0;-d&#x00A0;ccm&#x005F;dst
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;ccm&#x005F;dst
</div>
</td></tr></table>
<!--l. 815--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.6.4   </span> <a 
  id="x1-420002.6.4"></a>Tag</h5>
<!--l. 816--><p class="noindent">Note that tagging in the CCM repository invokes error checking modules and, by default, launches
windows which request one line summaries on the local machine. Attempting to tag from behind a
firewall or proxy can thus result in failure because the windows are unable to open on the
requested console. In this case, the tagging must be done from <span 
class="cmss-12">goldhill.cgd.ucar.edu</span>, and the user&#x2019;s
<span 
class="cmtt-12">DISPLAY</span><a 
  id="dx1-42001"></a> must be set to <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">NONE</span></span></span>
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
export&#x00A0;DISPLAY=NONE
</div>
</td></tr></table>
<!--l. 828--><p class="indent">   This problem does not arise when tagging from an unfiltered IP address.
</p><!--l. 830--><p class="indent">   Tag CWD with <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;6&#x005F;brnchT&#x005F;dst1&#x005F;2</span></span></span>. Option <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-c</span></span></span> causes <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">tag</span></span></span> to verify that files
beneath CWD are not modified relative to the repository. This ensures the repository has
all the information needed to exactly reproduce the CWD from the tag name in the
future.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;ccm&#x005F;dst&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Move&#x00A0;to&#x00A0;top-level&#x00A0;of&#x00A0;CWD
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;ccm3&#x005F;6&#x005F;brnchT&#x005F;dst1&#x005F;2
</div>
</td></tr></table>
<!--l. 840--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.6.5   </span> <a 
  id="x1-430002.6.5"></a>Update</h5>
<!--l. 841--><p class="noindent">Update the CWD to a newer CCM version.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;Above&#x00A0;top-level&#x00A0;of&#x00A0;CWD
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;ccm&#x005F;dst
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;ccm3&#x005F;5&#x005F;22&#x00A0;ccm&#x005F;dst&#x00A0;&#x003E;&#x00A0;pre.diff
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;update&#x00A0;-j&#x00A0;ccm3&#x005F;5&#x005F;22&#x00A0;-j&#x00A0;ccm3&#x005F;6&#x00A0;ccm&#x005F;dst
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;status&#x00A0;ccm&#x005F;dst&#x00A0;|&#x00A0;grep&#x00A0;-i&#x00A0;conflict
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;ccm3&#x005F;6&#x00A0;ccm&#x005F;dst&#x00A0;&#x003E;&#x00A0;post.diff
&#x00A0;<br />diff&#x00A0;pre.diff&#x00A0;post.diff&#x00A0;&#x003E;&#x00A0;diff.diff
&#x00A0;<br />cvs&#x00A0;commit&#x00A0;ccm&#x005F;dst
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;ccm3&#x005F;6&#x005F;brnchT&#x005F;dst1&#x005F;0&#x00A0;ccm&#x005F;dst
</div>
</td></tr></table>
<!--l. 854--><p class="noindent">
</p>
   <h4 class="subsectionHead"><span class="titlemark">2.7   </span> <a 
  id="x1-440002.7"></a>MATCH-Dust Module</h4>
<!--l. 855--><p class="noindent">The module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match&#x005F;dst</span></span></span> comprises the sub-modules <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match</span></span></span> and <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dst</span></span></span>. Thus <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match&#x005F;dst</span></span></span> is the
complete MATCH with the dust modifications. Code modifications related to dust appear in the
usual files in <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">src</span></span></span> (e.g., file <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">physlic.F</span></span></span>). Most of the dust physics are isolated in new
files in the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dst</span></span></span> directory, e.g., <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dstmbl.F</span></span></span>. The branch <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match&#x005F;dst-0</span></span></span> was created as a
branch of MATCH Spitfire version 3.2.9. First, we defined module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match&#x005F;dst</span></span></span> by editing
the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">/fs/cgd/csm/people/eaton/CVS/CVSROOT/modules</span></span></span> file to contain the following
lines:
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
match&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;match
&#x00A0;<br />matchSrc&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;-d&#x00A0;src&#x00A0;match/src
&#x00A0;<br />matchReaders&#x00A0;&#x00A0;&#x00A0;&#x00A0;-d&#x00A0;readers&#x00A0;match/readers
&#x00A0;<br />...
&#x00A0;<br />dst&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;dust
&#x00A0;<br />match&#x005F;dst&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;match&#x00A0;&#x0026;dst
</div>
</td></tr></table>
<!--l. 875--><p class="indent">   The <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dust</span></span></span> source directory in the MATCH repository is actually a symbolic link to the dust
source in the CSM repository:
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;/fs/cgd/csm/people/eaton/CVS
&#x00A0;<br />ln&#x00A0;-s&#x00A0;/fs/cgd/csm/models/CVS.REPOS/atm/ccm&#x005F;src&#x005F;dirs/dust&#x00A0;.
</div>
</td></tr></table>
<!--l. 881--><p class="indent">   Next, we added a MATCH tag to the CCM branch of the Dust module.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/models/CVS.REPOS&#x00A0;co&#x00A0;-kk&#x00A0;-r&#x00A0;ccm&#x005F;brnch&#x005F;dst&#x00A0;dst
&#x00A0;<br />cd&#x00A0;dst
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;MATCH&#x005F;SPITFIRE-3&#x005F;2&#x005F;9
</div>
</td></tr></table>
<!--l. 887--><p class="indent">   This enabled us to check out both MATCH and Dust at the same time in preparation for the
next step, creating the MATCH-Dust branch. Note that in order to apply MATCH tags to files in
the CCM repository, we had to disconnect the CCM-Dust module from the default
CCM tag syntax checking routines. Finally, we created and tagged the MATCH-Dust
branch.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/people/eaton/CVS&#x00A0;rtag&#x00A0;-b&#x00A0;-r&#x00A0;MATCH&#x005F;SPITFIRE-3&#x005F;2&#x005F;9&#x00A0;&#x005C;
&#x00A0;<br />match&#x005F;brnch&#x005F;dst&#x00A0;match&#x005F;dst
</div>
</td></tr></table>
<!--l. 897--><p class="indent">   In the preceding command, <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">MATCH&#x005F;SPITFIRE-3&#x005F;2&#x005F;9</span></span></span> is the pre-existing tag associated with all
files that were placed in the new <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match&#x005F;brnch&#x005F;dst</span></span></span> branch of the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match&#x005F;dst</span></span></span> module. Originally,
we left the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">MATCH&#x005F;SPITFIRE-3&#x005F;2&#x005F;9</span></span></span> tag on the files in the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dst</span></span></span> directory, but this caused problems
when merging changes to the main trunk of the MATCH into MATCH-Dust. The tag caused
CVS to think that the Dust-specific files were parts of <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">MATCH&#x005F;SPITFIRE-3&#x005F;2&#x005F;9</span></span></span>, and
thus CVS tried to remove them when updating to a later version on the main trunk.
Thus, we later removed the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">MATCH&#x005F;SPITFIRE-3&#x005F;2&#x005F;9</span></span></span> tag from all the files in the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dst</span></span></span>
directory.
</p><!--l. 909--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.7.1   </span> <a 
  id="x1-450002.7.1"></a>Changes to standard MATCH repository</h5>
<!--l. 910--><p class="noindent">Once these commands were completed, we slightly altered the architecture of the MATCH-Dust
repository to facilitate CCM-style compiling methods (i.e., compile from list of directories rather
than list of individual files plus directories). <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match&#x005F;brnch&#x005F;dst</span></span></span> was created from the
MATCH 3.2 repository, and these commands were used to modify the standard MATCH
repository:
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;Routine&#x00A0;to&#x00A0;read&#x00A0;CCM&#x00A0;dynamics&#x00A0;data&#x00A0;conflicts&#x00A0;with&#x00A0;NCEP&#x00A0;reader&#x00A0;routine.
&#x00A0;<br />#&#x00A0;Store&#x00A0;it&#x00A0;in&#x00A0;parallel,&#x00A0;non-conflicting,&#x00A0;directory:
&#x00A0;<br />cd&#x00A0;/fs/cgd/data0/zender/match&#x005F;dst/readers
&#x00A0;<br />mkdir&#x00A0;ccm
&#x00A0;<br />cvs&#x00A0;add&#x00A0;ccm
&#x00A0;<br />cd&#x00A0;ccm
&#x00A0;<br />mv&#x00A0;/fs/cgd/data0/zender/match&#x005F;dst/src/dyninp.F&#x00A0;.
&#x00A0;<br />cvs&#x00A0;remove&#x00A0;/fs/cgd/data0/zender/match&#x005F;dst/src/dyninp.F
&#x00A0;<br />cvs&#x00A0;add&#x00A0;dyninp.F
&#x00A0;<br />
&#x00A0;<br />/bin/rm&#x00A0;extoro.F&#x00A0;setzen.F&#x00A0;#&#x00A0;Remove&#x00A0;relics&#x00A0;from&#x00A0;Mark&#x00A0;Lawrence
&#x00A0;<br />cvs&#x00A0;remove&#x00A0;extoro.F&#x00A0;setzen.F
&#x00A0;<br />/bin/rm&#x00A0;cloud&#x005F;dum.F&#x00A0;#&#x00A0;Routines&#x00A0;superceded&#x00A0;by&#x00A0;prognostic&#x00A0;cloud&#x00A0;water
&#x00A0;<br />cvs&#x00A0;remove&#x00A0;cloud&#x005F;dum.F
&#x00A0;<br />
&#x00A0;<br />cd&#x00A0;..
&#x00A0;<br />cvs&#x00A0;commit&#x00A0;-m&#x00A0;&#x0022;Rearranged&#x00A0;files&#x00A0;to&#x00A0;work&#x00A0;with&#x00A0;MATCH-Dust&#x00A0;Makefile&#x0022;
</div>
</td></tr></table>
<!--l. 935--><p class="indent">   To create a dust branch from the standard MATCH 4.X repository, the following changes to the
standard directory structure would be required:
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;Routine&#x00A0;to&#x00A0;read&#x00A0;CCM&#x00A0;dynamics&#x00A0;data&#x00A0;conflicts&#x00A0;with&#x00A0;NCEP&#x00A0;reader&#x00A0;routine.
&#x00A0;<br />#&#x00A0;Store&#x00A0;it&#x00A0;in&#x00A0;parallel,&#x00A0;non-conflicting,&#x00A0;directory:
&#x00A0;<br />cd&#x00A0;/fs/cgd/data0/zender/match&#x005F;dst/readers
&#x00A0;<br />mkdir&#x00A0;ccm
&#x00A0;<br />cvs&#x00A0;add&#x00A0;ccm
&#x00A0;<br />cd&#x00A0;ccm
&#x00A0;<br />mv&#x00A0;/fs/cgd/data0/zender/match&#x005F;dst/src/dyninp.F&#x00A0;.
&#x00A0;<br />cvs&#x00A0;remove&#x00A0;/fs/cgd/data0/zender/match&#x005F;dst/src/dyninp.F
&#x00A0;<br />cvs&#x00A0;add&#x00A0;dyninp.F
&#x00A0;<br />
&#x00A0;<br />#&#x00A0;Remove&#x00A0;routines&#x00A0;in&#x00A0;libncaru.a&#x00A0;and&#x00A0;libmss.a&#x00A0;on&#x00A0;NCAR&#x00A0;computers
&#x00A0;<br />/bin/rm&#x00A0;setzen.F&#x00A0;#&#x00A0;Remove&#x00A0;relics&#x00A0;from&#x00A0;Mark&#x00A0;Lawrence
&#x00A0;<br />cvs&#x00A0;remove&#x00A0;setzen.F
&#x00A0;<br />
&#x00A0;<br />cd&#x00A0;..
&#x00A0;<br />cvs&#x00A0;commit&#x00A0;-m&#x00A0;&#x0022;Rearranged&#x00A0;files&#x00A0;to&#x00A0;work&#x00A0;with&#x00A0;MATCH-Dust&#x00A0;Makefile&#x0022;
</div>
</td></tr></table>
<!--l. 957--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.7.2   </span> <a 
  id="x1-460002.7.2"></a>Checkout</h5>
<!--l. 958--><p class="noindent">Checkout the latest version of the MATCH-Dust module. A <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-d</span></span></span> argument after the verb specifies an
arbitrary directory for the module.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
#&#x00A0;Get&#x00A0;MATCH-Dust&#x00A0;on&#x00A0;Dataproc
&#x00A0;<br />cd&#x00A0;/fs/cgd/data0/zender
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;/fs/cgd/csm/people/eaton/CVS&#x00A0;co&#x00A0;-r&#x00A0;match&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;match&#x005F;dst
&#x00A0;<br />#&#x00A0;Get&#x00A0;MATCH-Dust&#x00A0;in&#x00A0;CGD
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:pserver:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/people/eaton/CVS&#x00A0;&#x005C;
&#x00A0;<br />co&#x00A0;-r&#x00A0;match&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;match&#x005F;dst
&#x00A0;<br />#&#x00A0;Get&#x00A0;MATCH-Dust&#x00A0;at&#x00A0;UCI
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/people/eaton/CVS&#x00A0;co&#x00A0;-r&#x00A0;match&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;match&#x005F;dst
&#x00A0;<br />#&#x00A0;Get&#x00A0;Dust&#x00A0;box&#x00A0;model&#x00A0;at&#x00A0;UCI&#x00A0;(i.e.,&#x00A0;checkout&#x00A0;the&#x00A0;dst&#x00A0;directory,&#x00A0;name&#x00A0;it&#x00A0;aer)
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/people/eaton/CVS&#x00A0;co&#x00A0;-r&#x00A0;match&#x005F;brnch&#x005F;dst&#x00A0;-kk&#x00A0;-d&#x00A0;aer&#x00A0;dst
&#x00A0;<br />#&#x00A0;Get&#x00A0;Assimilation&#x00A0;model&#x00A0;at&#x00A0;UCI
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/people/eaton/CVS&#x00A0;co&#x00A0;-r&#x00A0;match3&#x005F;3&#x005F;24&#x005F;ind1&#x005F;19&#x00A0;-kk&#x00A0;-d&#x00A0;${HOME}/match&#x005F;asm&#x00A0;match
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/people/eaton/CVS&#x00A0;co&#x00A0;-r&#x00A0;match3&#x005F;3&#x005F;24&#x005F;ind1&#x005F;19&#x00A0;-kk&#x00A0;-d&#x00A0;${HOME}/match&#x005F;asm/dst&#x00A0;dst
&#x00A0;<br />#&#x00A0;Create&#x00A0;Pat&#x2019;s&#x00A0;branch
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/people/eaton/CVS&#x00A0;rtag&#x00A0;-b&#x00A0;-r&#x00A0;match-3&#x005F;3&#x005F;23-dst-0&#x005F;9&#x005F;8&#x00A0;match&#x005F;brnch&#x005F;dst&#x005F;pjones&#x00A0;match&#x005F;dst
&#x00A0;<br />#&#x00A0;Checkout&#x00A0;Pat&#x2019;s&#x00A0;branch&#x00A0;(&#x2018;&#x2018;old&#x2019;&#x2019;&#x00A0;model)
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/people/eaton/CVS&#x00A0;co&#x00A0;-r&#x00A0;match&#x005F;brnch&#x005F;dst&#x005F;pjones&#x00A0;-kk&#x00A0;-d&#x00A0;match&#x005F;dst&#x005F;old&#x00A0;match&#x005F;dst
&#x00A0;<br />#&#x00A0;Create&#x00A0;Alf&#x2019;s&#x00A0;sandblasting&#x00A0;branch
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-b&#x00A0;-r&#x00A0;match-4&#x005F;0&#x005F;beta2-dst-1&#x005F;1&#x005F;1&#x00A0;match&#x005F;brnch&#x005F;dst&#x005F;sbl&#x00A0;match&#x005F;dst
&#x00A0;<br />#&#x00A0;Checkout&#x00A0;Alf&#x2019;s&#x00A0;sandblasting&#x00A0;branch
&#x00A0;<br />cvs&#x00A0;-d&#x00A0;:ext:zender@goldhill.cgd.ucar.edu:/fs/cgd/csm/people/eaton/CVS&#x00A0;co&#x00A0;-r&#x00A0;match&#x005F;brnch&#x005F;dst&#x005F;sbl&#x00A0;-kk&#x00A0;-d&#x00A0;match&#x005F;dst&#x005F;sbl&#x00A0;match&#x005F;dst
</div>
</td></tr></table>
<!--l. 985--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.7.3   </span> <a 
  id="x1-470002.7.3"></a>Tag</h5>
<!--l. 986--><p class="noindent">Tag CWD with <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match-3&#x005F;2&#x005F;10-dst-1&#x005F;3</span></span></span>. Option <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">-c</span></span></span> causes <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">tag</span></span></span> to verify that files beneath CWD
are not modified relative to the repository. This ensures the repository has all the information
needed to exactly reproduce the CWD from the tag name in the future. Be sure this version
compiles before tagging it.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;match&#x005F;dst&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;#&#x00A0;Move&#x00A0;to&#x00A0;top-level&#x00A0;of&#x00A0;CWD
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;match-3&#x005F;2&#x005F;10-dst-1&#x005F;3
</div>
</td></tr></table>
<!--l. 997--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.7.4   </span> <a 
  id="x1-480002.7.4"></a>Merge CCM changes into CCM-Dust</h5>
<!--l. 998--><p class="noindent">Merge changes to main CCM trunk into the CCM-Dust branch. Merging main trunk changes into
CCM-Dust should never change the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dst</span></span></span> directory itself, but should alter the contents of
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">src/physics</span></span></span>, <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">src/control</span></span></span>, etc. This example merges the changes from CCM version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;6</span></span></span> to
CCM version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;6&#x005F;6</span></span></span> into CCM-Dust version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;6&#x005F;brnchT&#x005F;dst-0&#x005F;9&#x005F;6</span></span></span>, which is then tagged
as <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;6&#x005F;6&#x005F;brnchT&#x005F;dst-0&#x005F;9&#x005F;6</span></span></span>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;/fs/cgd/data0/zender/ccm&#x005F;dst
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;ccm3&#x005F;6&#x00A0;&#x003E;&#x00A0;pre.diff
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-kk&#x00A0;-j&#x00A0;ccm3&#x005F;6&#x00A0;-j&#x00A0;ccm3&#x005F;6&#x005F;6
&#x00A0;<br />cvs&#x00A0;status&#x00A0;|&#x00A0;grep&#x00A0;-i&#x00A0;conflict
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;ccm3&#x005F;6&#x005F;6&#x00A0;&#x003E;&#x00A0;post.diff
&#x00A0;<br />diff&#x00A0;pre.diff&#x00A0;post.diff&#x00A0;&#x003E;&#x00A0;diff.diff
&#x00A0;<br />make&#x00A0;ccm
&#x00A0;<br />cvs&#x00A0;commit
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;ccm3&#x005F;6&#x005F;6&#x005F;brnchT&#x005F;dst-0&#x005F;9&#x005F;6
</div>
</td></tr></table>
<!--l. 1019--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.7.5   </span> <a 
  id="x1-490002.7.5"></a>Merge MATCH changes into MATCH-Dust</h5>
<!--l. 1020--><p class="noindent">Merge changes to main MATCH trunk into the MATCH-Dust branch. Merging main trunk
changes into MATCH-Dust should never change the <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dst</span></span></span> directory itself, but should alter the
contents of <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">src</span></span></span>, <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">readers</span></span></span>, etc. This example merges the changes from MATCH version
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match3&#x005F;2&#x005F;10&#x005F;scyc1&#x005F;0</span></span></span> to MATCH version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match3&#x005F;3&#x005F;20</span></span></span> into MATCH-Dust version
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match-3&#x005F;2&#x005F;10-dst-1&#x005F;4a</span></span></span>, which is then tagged as <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match-3&#x005F;3&#x005F;20-dst-1&#x005F;4a</span></span></span>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;/fs/cgd/data0/zender/match&#x005F;dst
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;match3&#x005F;2&#x005F;10&#x005F;scyc1&#x005F;0&#x00A0;&#x003E;&#x00A0;pre.diff
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-kk&#x00A0;-j&#x00A0;match3&#x005F;2&#x005F;10&#x005F;scyc1&#x005F;0&#x00A0;-j&#x00A0;match3&#x005F;3&#x005F;20
&#x00A0;<br />cvs&#x00A0;status&#x00A0;|&#x00A0;grep&#x00A0;-i&#x00A0;conflict
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;match3&#x005F;3&#x005F;20&#x00A0;&#x003E;&#x00A0;post.diff
&#x00A0;<br />diff&#x00A0;pre.diff&#x00A0;post.diff&#x00A0;&#x003E;&#x00A0;diff.diff
&#x00A0;<br />make&#x00A0;match
&#x00A0;<br />cvs&#x00A0;commit
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;match-3&#x005F;3&#x005F;20-dst-1&#x005F;4a
</div>
</td></tr></table>
<!--l. 1041--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.7.6   </span> <a 
  id="x1-500002.7.6"></a>Merge MATCH-Dust changes into CCM-Dust</h5>
<!--l. 1042--><p class="noindent">Merge changes to the MATCH-Dust branch into the CCM-Dust branch. A simple &#x201C;<span 
class="cmtt-12">cvs update</span>&#x201D;
does not work because the changes are on different branches. This example merges the
changes from MATCH-Dust version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match-3&#x005F;2&#x005F;9-dst-1&#x005F;2</span></span></span> to MATCH-Dust version
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match-3&#x005F;2&#x005F;10-dst-1&#x005F;4</span></span></span> into CCM-Dust version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;6&#x005F;brnchT&#x005F;dst1&#x005F;2</span></span></span>, which is then tagged as
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;6&#x005F;brnchT&#x005F;dst1&#x005F;4</span></span></span>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;/fs/cgd/data0/zender/ccm&#x005F;dst/src/dst
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;ccm3&#x005F;6&#x005F;brnchT&#x005F;dst1&#x005F;2&#x00A0;&#x003E;&#x00A0;pre.diff
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-kk&#x00A0;-j&#x00A0;match-3&#x005F;2&#x005F;9-dst-1&#x005F;2&#x00A0;-j&#x00A0;match-3&#x005F;2&#x005F;10-dst-1&#x005F;4
&#x00A0;<br />cvs&#x00A0;status&#x00A0;|&#x00A0;grep&#x00A0;-i&#x00A0;conflict
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;match-3&#x005F;2&#x005F;10-dst-1&#x005F;4&#x00A0;&#x003E;&#x00A0;post.diff
&#x00A0;<br />diff&#x00A0;pre.diff&#x00A0;post.diff&#x00A0;&#x003E;&#x00A0;diff.diff
&#x00A0;<br />make&#x00A0;ccm
&#x00A0;<br />cvs&#x00A0;commit
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;ccm3&#x005F;6&#x005F;brnchT&#x005F;dst1&#x005F;4
</div>
</td></tr></table>
<!--l. 1062--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.7.7   </span> <a 
  id="x1-510002.7.7"></a>Merge CCM-Dust changes into MATCH-Dust</h5>
<!--l. 1063--><p class="noindent">Merge changes to the CCM-Dust branch into the MATCH-Dust branch. A simple &#x201C;<span 
class="cmtt-12">cvs update</span>&#x201D;
does not work because the changes are on different branches. This example merges the changes
from CCM-Dust version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match-3&#x005F;2&#x005F;9-dst-1&#x005F;0</span></span></span> to CCM-Dust version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">ccm3&#x005F;6&#x005F;brnchT&#x005F;dst1&#x005F;2</span></span></span>
into MATCH-Dust version <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match-3&#x005F;2&#x005F;9-dst-1&#x005F;0</span></span></span>, which should then be tagged as
<span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">match-3&#x005F;2&#x005F;9-dst-1&#x005F;2</span></span></span>.
                                                                                         
                                                                                         
</p>
   <table width="100%" 
class="verbatim"><tr class="verbatim"><td 
class="verbatim"><div class="verbatim">
cd&#x00A0;/fs/cgd/data0/zender/match&#x005F;dst/dst
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;match-3&#x005F;2&#x005F;9-dst-1&#x005F;0&#x00A0;&#x003E;&#x00A0;pre.diff
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-kk&#x00A0;-j&#x00A0;match-3&#x005F;2&#x005F;9-dst-1&#x005F;0&#x00A0;-j&#x00A0;ccm3&#x005F;6&#x005F;brnchT&#x005F;dst1&#x005F;2
&#x00A0;<br />cvs&#x00A0;update&#x00A0;-p&#x00A0;-j&#x00A0;match-3&#x005F;2&#x005F;9-dst-1&#x005F;0&#x00A0;params.h&#x00A0;&#x003E;&#x00A0;params.h
&#x00A0;<br />cvs&#x00A0;status&#x00A0;|&#x00A0;grep&#x00A0;-i&#x00A0;conflict
&#x00A0;<br />cvs&#x00A0;diff&#x00A0;-kk&#x00A0;-r&#x00A0;ccm3&#x005F;6&#x005F;brnchT&#x005F;dst1&#x005F;2&#x00A0;&#x003E;&#x00A0;post.diff
&#x00A0;<br />diff&#x00A0;pre.diff&#x00A0;post.diff&#x00A0;&#x003E;&#x00A0;diff.diff
&#x00A0;<br />cvs&#x00A0;commit
&#x00A0;<br />make&#x00A0;match
&#x00A0;<br />cvs&#x00A0;tag&#x00A0;-c&#x00A0;match-3&#x005F;2&#x005F;9-dst-1&#x005F;2
</div>
</td></tr></table>
<!--l. 1084--><p class="noindent">
</p>
   <h4 class="subsectionHead"><span class="titlemark">2.8   </span> <a 
  id="x1-520002.8"></a>MOZART-Dust Module</h4>
<!--l. 1085--><p class="noindent">The module <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mozart&#x005F;dst</span></span></span> comprises the sub-modules <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mozart</span></span></span> and <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">dst</span></span></span>. Thus <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">mozart&#x005F;dst</span></span></span> is the
complete MOZART with the dust modifications. The MOZART Dust implementation was created
well after MATCH-Dust, and uses most of the same directory structure. Thus, the CVS commands
for manipulating the MOZART-Dust model are directly analogous to those described in Section&#x00A0;
<a 
href="#x1-440002.7">2.7<!--tex4ht:ref: sxn:match_dst --></a>, with the following exceptions.
</p><!--l. 1094--><p class="noindent">
</p>
   <h5 class="subsubsectionHead"><span class="titlemark">2.8.1   </span> <a 
  id="x1-530002.8.1"></a>Field names</h5>
<!--l. 1095--><p class="noindent">By default, MOZART archives both instantaneous values of constituents mixing ratios. These are
given the names assigned in the code, e.g., <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">DSTQ01</span></span></span>. MOZART can also be told to archive
time-averaged values of these constituent fields. Time-averaged constituent fields are assigned
names based on there constituent index in the model, e.g., <span class="obeylines-h"><span class="verb"><span 
class="cmtt-12">TRA01</span></span></span>.
</p>
    
</body> 
</html> 

                                                                                         


