[Dart-dev] [3623] DART/trunk/models/MITgcm_ocean: documentation, imagine that ...

nancy at ucar.edu nancy at ucar.edu
Mon Oct 13 16:20:42 MDT 2008


An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/dart-dev/attachments/20081013/e4e7ed46/attachment-0001.html
-------------- next part --------------
Modified: DART/trunk/models/MITgcm_ocean/model_mod.f90
===================================================================
--- DART/trunk/models/MITgcm_ocean/model_mod.f90	2008-10-10 18:40:42 UTC (rev 3622)
+++ DART/trunk/models/MITgcm_ocean/model_mod.f90	2008-10-13 22:20:41 UTC (rev 3623)
@@ -2377,7 +2377,8 @@
 
 subroutine prog_var_to_vector(s,t,u,v,eta,x)
 !------------------------------------------------------------------
-!
+! deprecated in favor of snapshot_files_to_sv
+
 real(r4), dimension(:,:,:), intent(in)  :: s,t,u,v
 real(r4), dimension(:,:),   intent(in)  :: eta
 real(r8), dimension(:),     intent(out) :: x

Modified: DART/trunk/models/MITgcm_ocean/model_mod.html
===================================================================
--- DART/trunk/models/MITgcm_ocean/model_mod.html	2008-10-10 18:40:42 UTC (rev 3622)
+++ DART/trunk/models/MITgcm_ocean/model_mod.html	2008-10-13 22:20:41 UTC (rev 3623)
@@ -132,69 +132,6 @@
    namelist value.  DART then communicates the start/stop times to the 
    ocean model.  
 
-   <a name="ModelTimestepping"></a>
-   <BR>
-   <h4 class="indent1">Controlling the model advances</h4>
-   The ocean model <b>MUST always</b> start from the input datasets defined 
-   in the <em class="file">data</em><em class="code">&#38;PARM05</em> namelist. 
-   Apparently, this requires 
-   <em class="file">data</em><em class="code">&#38;PARM03:startTime</em> to be <b>0.0</b>. 
-   One of the DART support routines (<a href="trans_sv_pv.html">trans_sv_pv</a>) 
-   converts the DART state vector to the filenames defined in 
-   <em class="file">data</em><em class="code">&#38;PARM05</em> and creates a new 
-   <em class="file">data.cal</em> namelist. The ocean model then 
-   advances till <em class="file">data</em><em class="code">&#38;PARM03:endTime</em> 
-   and writes out snapshot files. <a href="trans_pv_sv.html">trans_pv_sv</a> converts the 
-   snapshot files to a DART-compatible file which is ingested by 
-   <em class="program">filter</em>. <em class="program">filter</em> also reads 
-   the observation sequence file to determine which observations are 
-   within the assimilation window, assimilates them, and writes out a 
-   set of restart files, one for each ensemble member.  
-   <em class="program">filter</em> then waits for each instance of the 
-   ocean model (one instance for each ensemble member) to advance to 
-   <em class="file">data</em><em class="code">&#38;PARM03:endTime</em>.
-   The whole process repeats 
-   until 1) there are no more observations to assimilate (i.e. the
-   observation sequence file is exhausted) or 2) the time specified by 
-   <em class="file">input.nml</em><em class="code">&#38;filter_nml:last_obs_days,last_obs_seconds</em> 
-   has been reached.
-</P>
-   
-   <ol>
-      <li>create a set of initial conditions for DART</li>
-      <li>create a set of observations</li>
-      <li>modify <em class="file">data</em>, 
-                 <em class="file">data.cal</em>, and
-                 <em class="file">input.nml</em> to control
-          the experiment</li>
-   </ol>
-
-<P>
-The first step would be to run a 'perfect model' experiment, which is the
-same for the low-order models as it is for MITgcm_ocean.
-<BR>
-
-1) create_obs_sequence
-<BR>
-2) create_fixed_network_seq,
-<BR>
-3) perfect_model_obs,
-<BR>
-4) filter
-<BR>
-<BR>
-
-Steps 1,2 are required to create an (empty) observation sequence file,
-usually called 'obs_seq.in'. It has the locations and times and 'what' you want
-to observe (S, T, U, V, Eta) ... but no actual values. perfect_model_obs starts from
-one state vector (in perfect_ics) and advances a single instance of the ocean model
-to the appropriate time and then performs the forward operator to extract the expected
-value of the observation - and stuffs it into the observation sequence. When all the 
-observations have been harvested, the fully-populated observation sequence file
-(obs_seq.out)
-is written. You should choose the 'ascii' format for this to ensure the values are
-sensible.
-
    <a name="InitialEnsemble"></a>
    <BR>
    <h4 class="indent1">Generating the initial ensemble</h4>
@@ -207,7 +144,8 @@
    <BR>
    The ensemble has to come from 'somewhere else'. I ran the model forward 
    (outside the DART framework) for 14 days and output snapshot files ever 12 hours.
-   One state vector can be generated from a set of snapshot files using 'trans_pv_sv'.
+   One state vector can be generated from a set of snapshot files using 
+   <em class="program">trans_pv_sv</em>.
    I called this my 'initial ensemble' - it's better than nothing, but it is ENTIRELY
    unknown if this creates an intial ensemble with sufficient spread. Just for
    comparison, the initial ensemble for the atmospheric models is derived from
@@ -223,7 +161,8 @@
    <a href="../../../utilities/restart_file_utility.f90">restart_file_utility</a> 
    to overwrite the timestep in the header of the initial conditions file. After
    you have created all the initial conditions files, you can simply 'cat' them
-   all together. 
+   all together.  Even if the script doesn't work <em>out-of-the-box</em>, it 
+   should be readable enough to be some help.
 
    <a name="BigEndian"></a>
    <BR>
@@ -234,6 +173,88 @@
    is different, but we have put notes in each <em class="file">mkmf.template</em>
    if we know how to achieve this.
 
+   <a name="ModelTimestepping"></a>
+   <BR>
+   <h4 class="indent1">Controlling the model advances</h4>
+   The ocean model <b>MUST always</b> start from the input datasets defined 
+   in the <em class="file">data</em><em class="code">&#38;PARM05</em> namelist. 
+   Apparently, this requires 
+   <em class="file">data</em><em class="code">&#38;PARM03:startTime</em> to be <b>0.0</b>. 
+   One of the DART support routines (<a href="trans_sv_pv.html">trans_sv_pv</a>) 
+   converts the DART state vector to the filenames defined in 
+   <em class="file">data</em><em class="code">&#38;PARM05</em> and creates a new 
+   <em class="file">data.cal</em> namelist. The ocean model then 
+   advances till <em class="file">data</em><em class="code">&#38;PARM03:endTime</em> 
+   and writes out snapshot files. <a href="trans_pv_sv.html">trans_pv_sv</a> converts the 
+   snapshot files to a DART-compatible file which is ingested by 
+   <em class="program">filter</em>. <em class="program">filter</em> also reads 
+   the observation sequence file to determine which observations are 
+   within the assimilation window, assimilates them, and writes out a 
+   set of restart files, one for each ensemble member.  
+   <em class="program">filter</em> then waits for each instance of the 
+   ocean model (one instance for each ensemble member) to advance to 
+   <em class="file">data</em><em class="code">&#38;PARM03:endTime</em>.
+   The whole process repeats 
+   until 1) there are no more observations to assimilate (i.e. the
+   observation sequence file is exhausted) or 2) the time specified by 
+   <em class="file">input.nml</em><em class="code">&#38;filter_nml:last_obs_days,last_obs_seconds</em> 
+   has been reached.
+
+   <a name="GettingStarted"></a>
+   <BR>
+   <h4 class="indent1">Getting Started</h4>
+   I always like running something akin to a 'perfect model' experiment to start.
+   Since I have not come up with a good way to perturb a single model state to
+   generate an ensemble, here's the next best thing. Please keep in mind that the
+   details for running each program are covered in their own documentation.
+   
+   <ol>
+      <li>create a set of initial conditions for DART as described in 
+      <a href="#InitialEnsemble">Generating the intial ensemble</a> and keep a copy
+      of the 'middle' snapshot - then use it as the initial condition
+      for <em class="program">perfect_model_obs</em>.</li>
+      <li>create a TINY set of 'perfect' observations in the normal fashion:
+      <a href="../../../obs_sequence/create_obs_sequence.html">create_obs_sequence.f90</a>
+      and then 
+      <a href="../../../obs_sequence/create_fixed_network_seq.html">create_fixed_network_seq.f90</a>
+      to create an empty observation sequence file (usually called 
+      <em class="file">obs_seq.in</em>) 
+      </li>
+      <li>modify <em class="file">data</em>, 
+                 <em class="file">data.cal</em>, and
+                 <em class="file">input.nml</em> to control
+          the experiment and populate the observation sequence file by
+          running <a href="../../../perfect_model_obs/perfect_model_obs.html">perfect_model_obs</a>
+      </li>
+      <li>Now use the full ensemble of initial conditions from Step 1 and run 
+          <a href="../../../filter/filter.html">filter</a></li>
+   </ol>
+
+   A perfectly sensible approach to get to know the system would be to try to 
+   <ol>
+     <li>assimilate data for the first assimilation period and stop. Do not advance
+         the model at all. The filter namelist can control all of this and you do
+         not need to have a working <em class="program">advance_model.csh</em>
+         script, or even a working ocean model (as long as you have input data files).</li>
+     <li>advance the model first and then assimilate data for the first assimilation 
+         period and stop.</li>
+     <li>advance, assimilate and advance again. This tests the whole DART facility.</li>
+   </ol>
+
+   <a name="ExploringOutput"></a>
+   <h4 class="indent1">Exploring the Output</h4>
+   Is pretty much like any other model. The netCDF files have the model
+   prognostic variables before and after the assimilation. There are Matlab&#174;
+   scripts for perusing the netCDF files in the <em class="file">DART/matlab</em>
+   directory. There are Matlab&#174; scripts for exploring the performance of the
+   assimilation in observation-space (after running 
+   <a href="../../../diagnostics/threed_sphere/obs_diag.html">obs_diag.f90</a> to 
+   explore the <em class="file">obs_seq.final</em> file) - use the scripts starting
+   with 'plot_', i.e. <em class="file">DART/diagnostics/matlab/plot_*.m</em>.  
+   As always, there are some model-specific item you should know about in
+   <em class="file">DART/models/MITgcm_ocean/matlab</em>, and 
+   <em class="file">DART/models/MITgcm_ocean/shell_scripts</em>.
+
 </P>
 
 <!--==================================================================-->
@@ -1084,7 +1105,10 @@
 <em class="code">prog_var_to_vector</em>
 packs the prognostic variables [S,T,U,V,Eta] read from the snapshot files 
 into a DART vector. The DART vector is simply a 1D vector that includes all
-the 'dry' cells as well as the 'wet' ones. 
+the 'dry' cells as well as the 'wet' ones. This routine is not presently
+used (since we never have [S,T,U,V,Eta] as such in memory). See
+<a href="#snapshot_files_to_sv">snapshot_files_to_sv</a>.
+ 
 </P>
 
 <TABLE width=100% border=0 summary="" cellpadding=3>
@@ -1941,10 +1965,16 @@
 <A NAME="FilesUsed"></A>
 <BR><HR><BR>
 <H2>FILES</H2>
-<UL><LI>inputfile1</LI>
-    <LI>namelistfile</LI>
-    <LI>outputfile</LI>
+<UL>
+    <LI>input namelist files: <em class="file">data, data.cal, input.nml</em></LI>
+    <LI>input data file: <em class="file">filter_ics, perfect_ics</em></LI>
+    <LI>output data files:
+       <em class="file">[S,T,U,V,Eta].YYYYMMDD.HHMMSS.[data,meta]</em></LI>
 </UL>
+<P class="indent1">
+Please note that there are <strong>many</strong> more files needed to 
+advance the ocean model, none of which are discussed here.
+</P>
 
 <!--==================================================================-->
 <!-- Cite references, if need be.                                     -->
@@ -1964,18 +1994,179 @@
 <H2>ERROR CODES and CONDITIONS</H2>
 <div class="errors">
 <TABLE border=1 cellspacing=1 cellpadding=10 width=100%>
-<TR><TH>Routine</TH><TH>Message</TH><TH>Comment</TH></TR>
+<TR><TH>Routine</TH><TH width="50%">Message</TH><TH>Comment</TH></TR>
 
-<TR><!-- routine --><TD VALIGN=top>xxxx</TD>
-    <!-- message --><TD VALIGN=top>size of [argument] is incorrect</TD>
-    <!-- comment --><TD VALIGN=top>The size of [argument] must be 1 and 4</TD>
+<TR><!-- routine --><TD VALIGN=top>static_init_model</TD>
+    <!-- message --><TD VALIGN=top>... At present, DART only supports equal
+values.</TD>
+    <!-- comment --><TD VALIGN=top>namelist PARM03 has deltaTmom /=
+deltaTtracer /= deltaTClock</TD>
 </TR>
 
-<TR><!-- routine --><TD VALIGN=top>xxxx</TD>
-    <!-- message --><TD VALIGN=top>yyyyy</TD>
-    <!-- comment --><TD VALIGN=top>bad judgement<BR>
-                        What were you thinking?</TD>
+<TR><!-- routine --><TD VALIGN=top>static_init_model</TD>
+    <!-- message --><TD VALIGN=top>could not figure out number of
+longitudes from delX in namelist</TD>
+    <!-- comment --><TD VALIGN=top>Every entry in PARM04:delX is a perfect
+zero [the default value] ... indicating there are no longitudes. That can't be good.</TD>
 </TR>
+
+<TR><!-- routine --><TD VALIGN=top>static_init_model</TD>
+    <!-- message --><TD VALIGN=top>could not figure out number of
+latitudes from delY in namelist</TD>
+    <!-- comment --><TD VALIGN=top>Every entry in PARM04:delY is a perfect
+zero [the default value] ... indicating there are no latitudes.</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>static_init_model</TD>
+    <!-- message --><TD VALIGN=top>could not figure out number of
+depth levelss from delZ in namelist</TD>
+    <!-- comment --><TD VALIGN=top>Every entry in PARM04:delZ is a perfect
+zero [the default value] ... indicating there are no depth levels.</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to parse line &#60;*&#62; 
+                                   from &#60;some_file&#62;  </TD>
+    <!-- comment --><TD VALIGN=top>unable to match character string
+'nDims&nbsp;=&nbsp;[' in the snapshot metadata file.
+</TD>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to determine nDims
+                                   from &#60;some_file&#62;  </TD>
+    <!-- comment --><TD VALIGN=top>snapshot metadata file has the string
+'nDims&nbsp;=&nbsp;[' but the value cannot be understood.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to read line &#60;*&#62; 
+                                   from &#60;some_file&#62;  </TD>
+    <!-- comment --><TD VALIGN=top>no comment.
+</TD>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to parse dimList(&#60;*&#62;)
+                                   from &#60;some_file&#62; </TD>
+    <!-- comment --><TD VALIGN=top>snapshot metadata file has the string
+'dimList&nbsp;=&nbsp;[' but the value cannot be understood.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to determine dimList
+                                   from &#60;some_file&#62; </TD>
+    <!-- comment --><TD VALIGN=top>snapshot metadata file has the string
+'dimList&nbsp;=&nbsp;[' but the values are all nonsensical.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to parse dataprec
+                                   from &#60;some_file&#62; </TD>
+    <!-- comment --><TD VALIGN=top>snapshot metadata file has the string
+'dataprec&nbsp;=&nbsp;[' but the value cannot be understood.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to determine dataprec
+                                   from &#60;some_file&#62; </TD>
+    <!-- comment --><TD VALIGN=top>snapshot metadata file has the string
+'dataprec&nbsp;=&nbsp;[' but the values are all nonsensical.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to parse nrecords
+                                   from &#60;some_file&#62; </TD>
+    <!-- comment --><TD VALIGN=top>snapshot metadata file has the string
+'nrecords&nbsp;=&nbsp;[' but the value cannot be understood.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to determine nrecords
+                                   from &#60;some_file&#62; </TD>
+    <!-- comment --><TD VALIGN=top>snapshot metadata file has the string
+'nrecords&nbsp;=&nbsp;[' but the values are all nonsensical.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to parse timeStepNumber
+                                   from &#60;some_file&#62; </TD>
+    <!-- comment --><TD VALIGN=top>snapshot metadata file has the string
+'timeStepNumber&nbsp;=&nbsp;[' but the value cannot be understood.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to determine timeStepNumber
+                                   from &#60;some_file&#62; </TD>
+    <!-- comment --><TD VALIGN=top>snapshot metadata file has the string
+'timeStepNumber&nbsp;=&nbsp;[' but the values are all nonsensical.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>write_meta</TD>
+    <!-- message --><TD VALIGN=top>unable to open file
+                                   &#60;some_file&#62; for writing</TD>
+    <!-- comment --><TD VALIGN=top>no comment.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_Nd_snapshot</TD>
+    <!-- message --><TD VALIGN=top>storage mode mismatch for
+                                   &#60;some_file&#62; </TD>
+    <!-- comment --><TD VALIGN=top>DART is expecting a 32bit float in the
+snapshot file. This is tricky to check, since it is possible to
+redefine the <em class="unix">r4</em> storage type (in <em
+class="file">common/types_mod.f90</em>) to be a 64bit float, in which case
+you don't want to get a 32bit float. This check must be manually disabled
+by editing the logic in <em class="code">read_Nd_snapshot</em> to handle
+the case where the snapshot file storage is 64bit.
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_Nd_snapshot</TD>
+    <!-- message --><TD VALIGN=top>dim 1 does not match delX grid size
+                    from namelist ...  </TD>
+    <!-- comment --><TD VALIGN=top>the snapshot file metadata does not
+match the number of longitudes inferred from PARM04:delX
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_Nd_snapshot</TD>
+    <!-- message --><TD VALIGN=top>dim 2 does not match delY grid size
+                    from namelist ...  </TD>
+    <!-- comment --><TD VALIGN=top>the snapshot file metadata does not
+match the number of latitudes inferred from PARM04:delY
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_Nd_snapshot</TD>
+    <!-- message --><TD VALIGN=top>dim 3 does not match delZ grid size
+                    from namelist ...  </TD>
+    <!-- comment --><TD VALIGN=top>the snapshot file metadata does not
+match the number of depths inferred from PARM04:delZ
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_Nd_snapshot</TD>
+    <!-- message --><TD VALIGN=top>cannot open (&#60;*&#62;) 
+                                   &#60;some_file&#62; for reading</TD>
+    <!-- comment --><TD VALIGN=top>the (&#60;*&#62;) is the Fortran error code 
+</TD>
+</TR>
+
+<TR><!-- routine --><TD VALIGN=top>read_Nd_snapshot</TD>
+    <!-- message --><TD VALIGN=top>unable to read (&#60;*&#62;) snapshot file
+                                   &#60;some_file&#62;</TD>
+    <!-- comment --><TD VALIGN=top>the (&#60;*&#62;) is the Fortran error code 
+</TD>
+</TR>
+
 </TABLE>
 </div>
 

Added: DART/trunk/models/MITgcm_ocean/trans_pv_sv.html
===================================================================
--- DART/trunk/models/MITgcm_ocean/trans_pv_sv.html	                        (rev 0)
+++ DART/trunk/models/MITgcm_ocean/trans_pv_sv.html	2008-10-13 22:20:41 UTC (rev 3623)
@@ -0,0 +1,220 @@
+<HTML>
+<HEAD>
+<TITLE>program trans_pv_sv</TITLE>
+<link rel="stylesheet" type="text/css" href="../../doc/html/doc.css"></link> 
+</HEAD>
+<BODY>
+<!--
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!                                                                       !!
+!!                   GNU General Public License                          !!
+!!                                                                       !!
+!! This file is part of the Data Assimilation Research Testbed (DART).   !!
+!!                                                                       !!
+!! DART is free software; you can redistribute it and/or modify          !!
+!! it and are expected to follow the terms of the GNU General Public     !!
+!! License as published by the Free Software Foundation.                 !!
+!!                                                                       !!
+!! DART is distributed in the hope that it will be useful,               !!
+!! but WITHOUT ANY WARRANTY; without even the implied warranty of        !!
+!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         !!
+!! GNU General Public License for more details.                          !!
+!!                                                                       !!
+!! You should have received a copy of the GNU General Public License     !!
+!! along with DART; if not, write to:                                    !!
+!!          Free Software Foundation, Inc.                               !!
+!!          59 Temple Place, Suite 330                                   !!
+!!          Boston, MA  02111-1307  USA                                  !!
+!! or see:                                                               !!
+!!          http://www.gnu.org/licenses/gpl.txt                          !!
+!!                                                                       !!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+-->
+
+<DIV ALIGN=CENTER>
+<A HREF="#Namelist">NAMELIST</A> / 
+<A HREF="#FilesUsed">FILES</A> /
+<A HREF="#References">REFERENCES</A> /
+<A HREF="#Errors">ERRORS</A> /
+<A HREF="#KnownBugs">BUGS</A> /
+<A HREF="#FuturePlans">PLANS</A>
+</DIV>
+
+<!--==================================================================-->
+
+<H1>PROGRAM trans_pv_sv</H1>
+<A NAME="HEADER"></A>
+<TABLE summary="">
+<TR><TD>Contact:       </TD><TD> Tim Hoar     </TD></TR>
+<TR><TD>Revision:      </TD><TD> $Revision$ </TD></TR>
+<TR><TD>Source:        </TD><TD> $URL$ </TD></TR>
+<TR><TD>Change Date:   </TD><TD> $Date$ </TD></TR>
+<TR><TD>Change history:</TD><TD> try "svn log" or "svn diff" </TD></TR>
+</TABLE>
+
+<!--==================================================================-->
+
+<A NAME="OVERVIEW"></A>
+<HR>
+<H2 class="indent1">OVERVIEW</H2>
+<P class="indent1">
+   <em class="program">trans_pv_sv</em> is responsible for converting the ocean
+   model 'snapshot' files to a DART 'initial conditions' file. In order to do that,
+   the valid time for the snapshot files must be calculated from several pieces of
+   information:  the filename contains a timestep index, the 
+   <em class="file">data</em><em class="unix">&#38;PARM03</em> namelist contains
+   information about the amount of time per timestep, and the
+   <em class="file">data.cal</em><em class="unix">&#38;CAL_NML</em>
+   namelist contains the start time. Additionally, the grid characteristics must
+   be read from <em class="file">data</em><em class="unix">&#38;PARM04</em>.
+
+   Consequently, the files
+   <em class="file">data</em>, and <em class="file">data.cal</em> as well as
+   the general <em class="file">input.nml</em> are needed in addition to the snapshot
+   files.
+   <BR>
+   <BR>
+   This program has a number of options that are driven from namelists and 
+   <strong>one</strong> piece of input read from STDIN: the integer representing the
+   timestep index of the snapshot file set. 
+</P>
+
+<H2 class="indent1">Usage</H2>
+<P class="indent1">
+   The output filename is hardwired to that expected by 
+   <em class="program">filter</em>.
+   This example creates an output file named 
+   <em class="file">assim_model_state_ud</em>
+   from the following files in the local directory:<br><br>
+   <em class="file">S.0000000096.data</em><br>
+   <em class="file">T.0000000096.data</em><br>
+   <em class="file">U.0000000096.data</em><br>
+   <em class="file">V.0000000096.data</em><br>
+   <em class="file">Eta.0000000096.data</em>
+   <div class="unix">
+   ./trans_pv_sv &#60; 96
+   </div><br>
+</P>
+
+<!--==================================================================-->
+
+<A NAME="OTHER MODULES USED"></A>
+<HR>
+<H2 class="indent1">OTHER MODULES USED</H2>
+<PRE class="indent1">
+types_mod
+utilities_mod
+model_mod
+assim_model_mod
+time_manager_mod
+</PRE>
+
+<A NAME="Namelist"></A>
+<HR>
+<H2 class="indent1">NAMELIST</H2>
+<P class="indent1">
+This program has no namelist of its own, but some of the underlying modules 
+require namelists. To avoid duplication and, possibly, some inconsistency
+in the documentation, only a list of the required namelists is provided here,
+with a hyperlink to the full documentation for each namelist.
+</P>
+
+<TABLE border=0 cellpadding=3 width=100% class="indent1">
+<TR><TH align="left">Namelist</TH><TH align="left">Primary Purpose</TH></TR>
+<TR><TD><a 
+    href="../../utilities/utilities_mod.html#Namelist">utilities_nml</a></TD>
+    <TD>set the termination level and file name for the run-time log</TD></TR>
+<TR><TD><a
+    href="../../assim_model/assim_model_mod.html#Namelist">assim_model_mod_nml</a></TD>
+    <TD>write DART restart files in binary or ASCII</TD></TR>
+
+<TR><TD><a href="model_mod.html#Namelist">model_nml</a></TD>
+    <TD>write netCDF files with prognostic variables</TD></TR>
+
+<TR><TD><a href="model_mod.html#namelist_cal_nml">CAL_NML</a></TD>
+    <TD>determine start time of the ocean model</TD></TR>
+
+<TR><TD><a href="model_mod.html#namelist_parm03">PARM03</a></TD>
+    <TD>the amount of time per model timestep for deciphering snapshot filenames</TD></TR>
+
+<TR><TD><a href="model_mod.html#namelist_parm04">PARM04</a></TD>
+    <TD>ocean model grid parameters</TD></TR>
+</table>
+
+<!--==================================================================-->
+<!-- Describe the Files Used by this module.                          -->
+<!--==================================================================-->
+
+<A NAME="FilesUsed"></A>
+<HR>
+<H2 class="indent1">FILES</H2>
+<UL class="indent1">
+    <LI>input namelist files: <em class="file">data, data.cal,
+input.nml</em></LI>
+    <LI>input snapshot files: <em class="file">[S,T,U,V,Eta].nnnnnnnnnn.[data[,.meta]]
+</em></LI>
+    <LI>output initial conditions file:  <em class="file">assim_model_state_ud</em></LI>
+</UL>
+
+<!--==================================================================-->
+<!-- Cite references, if need be.                                     -->
+<!--==================================================================-->
+
+<A NAME="References"></A>
+<HR>
+<H2 class="indent1">REFERENCES</H2>
+
+<!--==================================================================-->
+<!-- Describe all the error conditions and codes.                     -->
+<!-- Putting a <BR> after the synopsis creates a nice effect.         -->
+<!--==================================================================-->
+
+<A NAME="Errors"></A>
+<HR>
+<H2 class="indent1">ERROR CODES and CONDITIONS</H2>
+<P class="indent1">The most common problem is trying to read the Fortran
+direct-access big-endian snapshot files on a little-endian architecture.
+This can manifest itself in very misleading ways. Make sure you have the
+right compiler settings to be able to read these files. There is no one
+error message that indicates the read was unsuccessful.<BR><BR>
+The read takes place in 
+<a href="model_mod.html#read_snapshot">model_mod:read_snapshot()</a>.
+</P>
+<div class="errors">
+<TABLE border=1 cellspacing=1 cellpadding=10 width=100% class="indent1">
+<TR><TH>Routine</TH><TH>Message</TH><TH>Comment</TH></TR>
+
+<TR><!-- routine --><TD VALIGN=top>trans_sv_pv</TD>
+    <!-- message --><TD VALIGN=top>unable to read timestep from stdin.</TD>
+    <!-- comment --><TD VALIGN=top>look at the example in the 'Usage' section.</TD>
+</TR>
+
+</TABLE>
+</div>
+
+<!--==================================================================-->
+<!-- Describe the bugs.                                               -->
+<!--==================================================================-->
+
+<A NAME="KnownBugs"></A>
+<HR>
+<H2 class="indent1">KNOWN BUGS</H2>
+<P class="indent1">
+There are no known bugs.
+</P>
+
+<!--==================================================================-->
+<!-- Descibe Future Plans.                                            -->
+<!--==================================================================-->
+
+<A NAME="FuturePlans"></A>
+<HR>
+<H2 class="indent1">FUTURE PLANS</H2>
+<P class="indent1">
+None at this time. Feel free to suggest improvements.
+</P>
+
+<!--==================================================================-->
+
+</BODY>
+</HTML>


Property changes on: DART/trunk/models/MITgcm_ocean/trans_pv_sv.html
___________________________________________________________________
Name: svn:mime-type
   + text/html
Name: svn:keywords
   + Date Rev Author URL Id
Name: svn:eol-style
   + native

Added: DART/trunk/models/MITgcm_ocean/trans_sv_pv.html
===================================================================
--- DART/trunk/models/MITgcm_ocean/trans_sv_pv.html	                        (rev 0)
+++ DART/trunk/models/MITgcm_ocean/trans_sv_pv.html	2008-10-13 22:20:41 UTC (rev 3623)
@@ -0,0 +1,206 @@
+<HTML>
+<HEAD>
+<TITLE>program trans_sv_pv</TITLE>
+<link rel="stylesheet" type="text/css" href="../../doc/html/doc.css"></link> 
+</HEAD>
+<BODY>
+<!--
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!                                                                       !!
+!!                   GNU General Public License                          !!
+!!                                                                       !!
+!! This file is part of the Data Assimilation Research Testbed (DART).   !!
+!!                                                                       !!
+!! DART is free software; you can redistribute it and/or modify          !!
+!! it and are expected to follow the terms of the GNU General Public     !!
+!! License as published by the Free Software Foundation.                 !!
+!!                                                                       !!
+!! DART is distributed in the hope that it will be useful,               !!
+!! but WITHOUT ANY WARRANTY; without even the implied warranty of        !!
+!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         !!
+!! GNU General Public License for more details.                          !!
+!!                                                                       !!
+!! You should have received a copy of the GNU General Public License     !!
+!! along with DART; if not, write to:                                    !!
+!!          Free Software Foundation, Inc.                               !!
+!!          59 Temple Place, Suite 330                                   !!
+!!          Boston, MA  02111-1307  USA                                  !!
+!! or see:                                                               !!
+!!          http://www.gnu.org/licenses/gpl.txt                          !!
+!!                                                                       !!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+-->
+
+<DIV ALIGN=CENTER>
+<A HREF="#Namelist">NAMELIST</A> / 
+<A HREF="#FilesUsed">FILES</A> /
+<A HREF="#References">REFERENCES</A> /
+<A HREF="#Errors">ERRORS</A> /
+<A HREF="#KnownBugs">BUGS</A> /
+<A HREF="#FuturePlans">PLANS</A>
+</DIV>
+
+<!--==================================================================-->
+
+<H1>PROGRAM trans_sv_pv</H1>
+<A NAME="HEADER"></A>
+<TABLE summary="">
+<TR><TD>Contact:       </TD><TD> Tim Hoar     </TD></TR>
+<TR><TD>Revision:      </TD><TD> $Revision$ </TD></TR>
+<TR><TD>Source:        </TD><TD> $URL$ </TD></TR>
+<TR><TD>Change Date:   </TD><TD> $Date$ </TD></TR>
+<TR><TD>Change history:</TD><TD> try "svn log" or "svn diff" </TD></TR>
+</TABLE>
+
+<!--==================================================================-->
+
+<A NAME="OVERVIEW"></A>
+<HR>
+<H2 class="indent1">OVERVIEW</H2>
+<P class="indent1">
+   <em class="program">trans_sv_pv</em> is responsible for converting a DART
+   'initial conditions' file to a set of model 'snapshot' files. 
+   This is easier than the reverse process because the DART initial conditions file
+   have a header that contains the valid time for the accompanying state.
+   <BR><BR>
+   The input filename is hardwired to that expected by 
+   <em class="program">filter</em> and the output filenames are able to be
+   parsed into an appropriate 
+   <em class="file">data.cal</em><em class="unix">&#38;CAL_NML</em> namelist
+   and can be used as input to the
+   <em class="file">data</em><em class="unix">&#38;PARM05</em> namelist specifying
+   the filenames to use to cold-start the ocean model. 
+   <em class="program">trans_sv_pv</em> also creates a new  
+   <em class="file">data.cal</em> to reflect the (new) starting date of the model. 
+   <BR>
+   <BR>
+   The output filename is comprised of 4 parts: the variable name, the startDate_1
+   component (YYYYMMDD), the startDate_2 component (HHMMSS), and the extension (.data
+   for the data and .meta for the metadata). The startDate_1 and startDate_2 pieces
+   are identical in format to that used by identically named variables in the 
+   <em class="file">data.cal</em><em class="unix">&#38;CAL_NML</em> namelist.
+</P>
+
+<H2 class="indent1">Usage</H2>
+<P class="indent1">
+   There must be several input files in the current working directory;
+   most of these are required by the <em class="unix">model_mod</em>
+   interface.  The input filename is hardwired to
+   <em class="file">assim_model_state_ic</em>.
+   Assuming the time tag in the input file is set to 06Z&nbsp;23&nbsp;July&nbsp;1996, this 
+   example creates output files named<br>
+   <em class="file">S.19960723.060000.[data,meta]</em><br>
+   <em class="file">T.19960723.060000.[data,meta]</em><br>
+   <em class="file">U.19960723.060000.[data,meta]</em><br>
+   <em class="file">V.19960723.060000.[data,meta]</em><br>
+   <em class="file">Eta.19960723.060000.[data,meta]</em>, and<br>
+   <em class="file">data.cal.new</em>
+   <div class="unix">
+   mv some_DART_ics_input_file assim_model_state_ic<br>
+   ./trans_sv_pv <br>
+   cp data.cal.new data.cal
+   </div><br>
+</P>
+
+<!--==================================================================-->
+
+<A NAME="OTHER MODULES USED"></A>
+<HR>
+<H2 class="indent1">OTHER MODULES USED</H2>
+<PRE class="indent1">
+types_mod
+utilities_mod
+model_mod
+assim_model_mod
+time_manager_mod
+</PRE>
+
+<A NAME="Namelist"></A>
+<HR>
+<H2 class="indent1">NAMELIST</H2>
+<P class="indent1">
+This program has no namelist of its own, but some of the underlying modules 
+require namelists to be read, even if the values are not used.
+To avoid duplication and, possibly, some inconsistency
+in the documentation; only a list of the required namelists is provided -
+with a hyperlink to the full documentation for each namelist.
+</P>
+
+<TABLE border=0 cellpadding=3 width=100% class="indent1">
+<TR><TH align="left">Namelist</TH><TH align="left">Primary Purpose</TH></TR>
+<TR><TD><a 
+    href="../../utilities/utilities_mod.html#Namelist">utilities_nml</a></TD>
+    <TD>set the termination level and file name for the run-time log</TD></TR>
+
+<TR><TD><a href="model_mod.html#namelist_cal_nml">CAL_NML</a></TD>
+    <TD>must be read, values are not used</TD></TR>
+
+<TR><TD><a href="model_mod.html#namelist_parm03">PARM03</a></TD>
+    <TD>must be read, values are not used</TD></TR>
+
+<TR><TD><a href="model_mod.html#namelist_parm04">PARM04</a></TD>
+    <TD>ocean model grid parameters</TD></TR>
+</table>
+
+<!--==================================================================-->
+<!-- Describe the Files Used by this module.                          -->
+<!--==================================================================-->
+
+<A NAME="FilesUsed"></A>
+<HR>
+<H2 class="indent1">FILES</H2>
+<UL class="indent1">
+    <LI>input namelist files: <em class="file">data, data.cal, input.nml</em></LI>
+    <LI>output namelist file: <em class="file">data.cal.new</em></LI>
+    <LI>input data file: <em class="file">assim_model_state_ic</em></LI>
+    <LI>output data files: 
+       <em class="file">[S,T,U,V,Eta].YYYYMMDD.HHMMSS.[data,meta]</em></LI>
+</UL>
+
+<!--==================================================================-->
+<!-- Cite references, if need be.                                     -->
+<!--==================================================================-->
+
+<A NAME="References"></A>
+<HR>
+<H2 class="indent1">REFERENCES</H2>
+
+<!--==================================================================-->
+<!-- Describe all the error conditions and codes.                     -->
+<!-- Putting a <BR> after the synopsis creates a nice effect.         -->
+<!--==================================================================-->
+
+<A NAME="Errors"></A>
+<HR>
+<H2 class="indent1">ERROR CODES and CONDITIONS</H2>
+<P class="indent1">There are no error conditions specific to 
+<em class="program">trans_sv_pv</em>.
+</P>
+</div>
+
+<!--==================================================================-->
+<!-- Describe the bugs.                                               -->
+<!--==================================================================-->
+
+<A NAME="KnownBugs"></A>
+<HR>
+<H2 class="indent1">KNOWN BUGS</H2>
+<P class="indent1">
+There are no known bugs.
+</P>
+
+<!--==================================================================-->
+<!-- Descibe Future Plans.                                            -->
+<!--==================================================================-->
+
+<A NAME="FuturePlans"></A>
+<HR>
+<H2 class="indent1">FUTURE PLANS</H2>
+<P class="indent1">
+None at this time. Feel free to suggest improvements.
+</P>
+
+<!--==================================================================-->
+
+</BODY>
+</HTML>


Property changes on: DART/trunk/models/MITgcm_ocean/trans_sv_pv.html
___________________________________________________________________
Name: svn:mime-type
   + text/html
Name: svn:keywords
   + Date Rev Author URL Id
Name: svn:eol-style
   + native


More information about the Dart-dev mailing list