[Dart-dev] [4400] DART/trunk/models/wrf/WRF_DART_utilities: Add more details about how to use dart_to_wrf for starting free forecasts

nancy at ucar.edu nancy at ucar.edu
Wed Jun 30 10:09:37 MDT 2010


Revision: 4400
Author:   nancy
Date:     2010-06-30 10:09:37 -0600 (Wed, 30 Jun 2010)
Log Message:
-----------
Add more details about how to use dart_to_wrf for starting free forecasts
after finishing an assimilation, and correct the replace_wrf_fields docs
to actually describe the correct program.  Fix the .nml file to have the
namelist defaults that match the code.  Note that one of the two fieldname
items need to be set before this program can run, but the source code
does not have any default names built in so i'm following our convention
of having the .nml files in the repository match the defaults in the code.

Modified Paths:
--------------
    DART/trunk/models/wrf/WRF_DART_utilities/dart_to_wrf.html
    DART/trunk/models/wrf/WRF_DART_utilities/replace_wrf_fields.html
    DART/trunk/models/wrf/WRF_DART_utilities/replace_wrf_fields.nml

-------------- next part --------------
Modified: DART/trunk/models/wrf/WRF_DART_utilities/dart_to_wrf.html
===================================================================
--- DART/trunk/models/wrf/WRF_DART_utilities/dart_to_wrf.html	2010-06-28 23:44:06 UTC (rev 4399)
+++ DART/trunk/models/wrf/WRF_DART_utilities/dart_to_wrf.html	2010-06-30 16:09:37 UTC (rev 4400)
@@ -21,16 +21,103 @@
 
 <H1>PROGRAM <em class=program>dart_to_wrf</em></H1>
 <H1>PROGRAM <em class=program>wrf_to_dart</em></H1>
-<!-- version tag follows, do not edit --><P>$Id$</P>
+<P><small>Latest subversion revision tag:
+<!-- version tag follows, do not edit -->$Id$
+</small></P>
 
 <P>
-   This document describes both programs that 
-   convert WRF netCDF input files into DART format, and vice versa.
-   <br />
-   <br />
-   For the sake of convenience, we will use <em class=file>wrfinput_d01</em>
-   to mean the WRF input file - no matter how many domains are used.
+This document describes both programs that 
+convert WRF netCDF input files into DART format, and vice versa.
+<br />
+<br />
+For the sake of convenience, we will use <em class=file>wrfinput_d01</em>
+to mean the WRF input file - no matter how many domains are used.
 </P>
+<P>
+These programs are generally used in two different places during an assimilation.
+One is explicitly by the user, or by a user-written script, to set up initial
+condition files for DART, or to convert the final files from an assimilation
+run into initial condition files for WRF to continue a free forecast run.
+The other way is internally during the execution of an assimilation run,
+when DART needs to execute WRF to advance the model state between
+observation assimilation phases.  There are slight differences in the
+requirements for the namelist settings between these two cases, which will
+be described below.
+</P>
+<H2>The wrf_to_dart Program</H2>
+<P>
+The <em class=program>wrf_to_dart</em> program reads the <em class=code>&amp;model_nml</em>
+namelist item <em class=code>wrf_state_variables</em> to determine which fields
+in the WRF netCDF input file (typically <em class=file>wrfinput_d01</em>)
+to read and put into the DART state vector.  The order of the fields
+in the state vector is determined by the order the fields are listed in
+the namelist, so they must remain consistent between running this utility
+and executing an assimilation with DART.  The output filename is 
+<em class=file>dart_wrf_vector</em>.  The file can be renamed afterwards
+to be something like <em class=file>filter_ics</em> or 
+<em class=file>filter_restart.####</em>.  Note that the input filename
+for the filter program is a namelist setting in <em class=code>&amp;filter_nml</em>.  
+Also note that the control of whether DART expects a single input file 
+with all ensemble member data or a single file per ensemble member is
+controlled by namelist settings in the <em class=code>&amp;ensemble_manager_nml</em>
+namelist.  
+For WRF it is more common to have a single file per ensemble member because of the
+sizes of the files.
+</P>
+<P>
+When explicitly called by the user, or by a user-written script, this
+program is usually creating initial condition files for the start of
+an assimilation run.
+</P>
+<P>
+<em class=program>wrf_to_dart</em> is also called
+by the <em class=file>advance_model.csh</em> script on files generated
+by the <em class=program>filter</em> program, using filenames the user
+typically does not see, e.g. <em class=file>assim_model_state_ud.####</em>,
+where #### is the ensemble member number.  The script takes care of
+renaming the output from <em class=program>wrf_to_dart</em> to be what filter expects to see.
+If the assimilation is working, these files are usually removed by the
+scripts and are transparent to the user.
+</P>
+<H2>The dart_to_wrf Program</H2>
+<P>
+The <em class=program>dart_to_wrf</em> program reads the <em class=code>&amp;model_nml</em>
+namelist item <em class=code>wrf_state_variables</em> to determine which fields
+are in the DART state vector so it can copy them to the right location 
+in the WRF netCDF output file (typically <em class=file>wrfinput_d01</em>).
+The order of the fields
+in the state vector is determined by the order the fields are listed in
+the namelist, so they must remain consistent between running this utility
+and executing an assimilation with DART.  
+Note that the WRF netCDF file contains much more information than is
+in the DART state vector, so the file needs to be the correct one
+for running WRF, having consistent data outside of the state variables.
+</P>
+<P>
+<em class=program>dart_to_wrf</em> also has an additional namelist in 
+the <em class=file>input.nml</em> file, 
+<em class=code>&amp;dart_to_wrf_nml</em>.  The input filename is set there,
+with a default of <em class=file>dart_wrf_vector</em>.  The output filename is
+always <em class=file>wrfinput_d01</em> for a single domain.  If the DART
+state vector contains multiple domains, files <em class=file>wrfinput_d02, 
+wrfinput_d03,</em> etc are opened and updated.  
+</P>
+<P>
+To copy the data from a DART restart/output file into a WRF input file to start
+a free forecast run at the end of an assimilation, the namelist needs to be
+set so <em class=code>model_advance_file</em> is .FALSE., which is not the
+default, and the DART restart file can either be renamed to 'dart_wrf_vector'
+or the input filename can be set in the namelist.  In this usage,
+<em class=code>adv_mod_command</em> is unused.
+</P>
+<P>
+During an assimilation when <em class=program>dart_to_wrf</em> is called
+by the <em class=file>advance_model.csh</em> script 
+the namelist values must have their original settings to function correctly.
+This program is used to put the updated DART state information into the WRF
+input file, and to set up the WRF namelists so the model runs for the correct
+amount of time before the next assimilation cycle.
+</P>
 
 <!--==================================================================-->
 
@@ -64,9 +151,6 @@
 <H2>NAMELIST</H2>
 <P>We adhere to the F90 standard of starting a namelist with an ampersand
 '&amp;' and terminating with a slash '/' for all our namelist input.
-Consider yourself forewarned that character strings that contain a '/' must be
-enclosed in quotes to prevent them from prematurely terminating the namelist.
-The namelist declaration (i.e. what follows) has a different syntax, naturally.
 </P>
 <div class=namelist>
 <pre>
@@ -99,36 +183,43 @@
 <TR><!--contents--><TD valign=top>model_advance_file  </TD>
     <!--  type  --><TD valign=top>logical             </TD>
     <!--descript--><TD>
-     The <em class=program>advance_model.csh</em> 
-     script requires this to be to <b>.TRUE.</b> to utilize the 
+     Set this to the default value of <b>.TRUE.</b> to work with
+     the <em class=program>advance_model.csh</em> script during an
+     assimilation run, where it converts the
      temporary/intermediary <em class=file>assim_model_state_ic</em> files. 
+     <br />
      To insert the information from a DART restart/initial conditions 
-     file into <em class=file>wrfinput_d01</em> this should be 
-     set to <b>.FALSE.</b> (i.e. for a free run of WRF).
-     This allows <em class=program>dart_to_wrf</em> to be able to convert
+     file into <em class=file>wrfinput_d01</em> set this to
+     <b>.FALSE.</b> (i.e. for a free run of WRF).
+     <br />
+     The <em class=program>dart_to_wrf</em> program is able to convert
      both types of DART restart files: those with two timestamp records 
      followed by the model state, and those with a single timestamp record 
      followed by the model state (the type most commonly encountered if the 
-     assimilation is successfull). 
+     assimilation is successful). 
      Default .TRUE. </TD></TR>
 <TR><!--contents--><TD valign=top>dart_restart_name    </TD>
     <!--  type  --><TD valign=top>character(len=128)   </TD>
     <!--descript--><TD>
-     The <em class=program>advance_model.csh</em> 
-     script requires this to be to <b>'dart_wrf_vector'</b>.
-     To write the output information from a DART restart file with
-     a different name, set this to another value, say 'filter_ics'.
+     Set this to the default value of <b>'dart_wrf_vector'</b> to
+     work with the <em class=program>advance_model.csh</em> script.
+     To read the input information from a DART restart file with
+     a different name, set this to another value, e.g. 'filter_ics'.
      Remember to change <em class=code>model_advance_file</em> to 
-     <em class=code>.FALSE</em> if the input file has a single
-     timestamp record.
+     <em class=code>.FALSE.</em> if the input file is a DART
+     restart or initial conditions file.
      Default 'dart_wrf_vector'. </TD></TR>
 <TR><!--contents--><TD valign=top>adv_mod_command      </TD>
     <!--  type  --><TD valign=top>character(len=128)   </TD>
     <!--descript--><TD>
-     The <em class=program>advance_model.csh</em> 
-     script requires this to be to <b>'./wrf.exe'</b>.
+     Set this to the default value of <b>'./wrf.exe'</b> to work
+     with the <em class=program>advance_model.csh</em>  script.
+     This value is ignored if <em class=code>model_advance_file</em>
+     is .FALSE., but if it is .TRUE. then this string along with
+     the necessary time information is written into 
+     a file called 'wrf.info'.
      Default './wrf.exe'. This value used to be set in the
-     wrf &amp;model_mod namelist, but has moved to here.</TD></TR>
+     WRF &amp;model_mod namelist, but has moved to here.</TD></TR>
 </TABLE>
 
 
@@ -153,7 +244,8 @@
 
 <H3>File formats</H3>
 
-<P>In the conversion from DART to WRF, the <em class=file>dart_wrf_vector</em>
+<P>During the model advances within an assimilation run,
+in the conversion from DART to WRF, the <em class=file>dart_wrf_vector</em>
 file is usually one of the <em class=file>assim_model_state_ic#</em> that the
 filter writes out to advance the ensemble. As input, the dart_wrf_vector
 includes the target time in addition to the valid time at the beginning of the
@@ -195,16 +287,6 @@
 <TABLE border=1 cellspacing=1 cellpadding=10 width=100%>
 <TR><TH>Routine</TH><TH>Message</TH><TH>Comment</TH></TR>
 
-<TR><!-- routine --><TD VALIGN=top>dart_open_and_alloc, transfer_dart_wrf</TD>
-    <!-- message --><TD VALIGN=top>n_moist = is too large.</TD>
-    <!-- comment --><TD VALIGN=top>The maximum number of moist variables is
-    7. In order, they are [qv, qc, qr, qi, qs, qg, qnice]</TD></TR>
-
-<TR><!-- routine --><TD VALIGN=top>transfer_dart_wrf</TD>
-    <!-- message --><TD VALIGN=top>n_values differ in transfer</TD>
-    <!-- comment --><TD VALIGN=top>If you get to this point, there would an
-    inconsistency between subroutines dart_open_and_alloc and transfer_dart_wrf.</TD></TR>
-
 <TR><!-- routine --><TD VALIGN=top>trans_2d</TD>
     <!-- message --><TD VALIGN=top>nx, ny, not compatible</TD>
     <!-- comment --><TD VALIGN=top>Dimensions nx, ny incompatible with incoming
@@ -231,9 +313,7 @@
 <HR>
 <H2>FUTURE PLANS</H2>
 <P>
-This program has to be updated when new prognostic variables are included
-in the state vector, e.g. when tracers or chemical species are evolved
-in WRF. The program will also need to be updated to add parameters to be estimated.
+none.
 </P>
 
 <!--==================================================================-->
@@ -244,101 +324,8 @@
 <HR>
 <H2>PRIVATE COMPONENTS</H2>
 
-<!--=================== DESCRIPTION OF SUBROUTINE ====================-->
-
 <br>
-<div class=routine>
-<em class=call> call dart_open_and_alloc( wrf, dart, n_values, dart_unit,
-dart_to_wrf, debug )</em>
-<pre>
-integer,          intent(out) :: <em class=code> dart_unit </em>
-logical,          intent(in)  :: <em class=code> dart_to_wrf, debug </em>
-type(wrf_dom),    intent(in)  :: <em class=code> wrf </em>
-real(r8),         pointer     :: <em class=code> dart(:) </em>
-integer,          intent(out) :: <em class=code> n_values  </em>
-</pre>
-</div>
 
-<div class=indent1>
-<!-- Description -->
-
-<P>
-Open a DART state vector file, determine the length of the DART
-state vector, and allocate the DART state vector variable.
-</P>
-
-</div>
-<br>
-
-<!--=================== DESCRIPTION OF SUBROUTINE ====================-->
-
-<br>
-<div class=routine>
-<em class=call> call transfer_dart_wrf ( dart_to_wrf, dart, wrf, n_values_in)</em>
-<pre>
-logical,          intent(in) :: <em class=code> dart_to_wrf </em>
-type(wrf_dom),    intent(in) :: <em class=code> wrf </em>
-real(r8), pointer            :: <em class=code> dart(:) </em>
-integer,          intent(in) :: <em class=code> n_values_in </em>
-</pre>
-</div>
-
-<div class=indent1>
-<!-- Description -->
-
-<P>
-Transfer from DART state vector to a wrf structure, or vice versa.
-</P>
-
-</div>
-<br>
-
-<!--=================== DESCRIPTION OF SUBROUTINE ====================-->
-
-<br>
-<div class=routine>
-<em class=call> call trans_2d( one_to_two, a1d, a2d, nx, ny )</em>
-<pre>
-integer,  intent(in) :: <em class=code> nx,ny </em>
-real(r8), intent(in) :: <em class=code> a1d(:) </em>
-real(r8), intent(in) :: <em class=code> a2d(nx,ny) </em>
-logical,  intent(in) :: <em class=code> one_to_two </em>
-</pre>
-</div>
-
-<div class=indent1>
-<!-- Description -->
-
-<P>
-Transfer data from a 2D array into a 1D array, or vice versa.
-</P>
-
-</div>
-<br>
-
-<!--=================== DESCRIPTION OF SUBROUTINE ====================-->
-
-<br>
-<div class=routine>
-<em class=call> call trans_3d( one_to_three, a1d, a3d, nx, ny, nz )</em>
-<pre>
-integer,  intent(in) :: <em class=code> nx,ny,nz </em>
-real(r8), intent(in) :: <em class=code> a1d(:) </em>
-real(r8), intent(in) :: <em class=code> a3d(:,:,:) </em>
-logical,  intent(in) :: <em class=code> one_to_three </em>
-</pre>
-</div>
-
-<div class=indent1>
-<!-- Description -->
-
-<P>
-Transfer data from a 3D array into a 1D array, or vice versa.
-</P>
-
-</div>
-<br>
-
 <!--==================================================================-->
 <!-- Legalese & Metadata                                              -->
 <!--==================================================================-->
@@ -348,7 +335,7 @@
 <H2>Terms of Use</H2>
 
 <P>
-DART software - Copyright &#169; 2004 - 2010 UCAR.<br>
+DART software - Copyright &copy; 2004 - 2010 UCAR.<br>
 This open source software is provided by UCAR, "as is",<br>
 without charge, subject to all terms of use at<br>
 <a href="http://www.image.ucar.edu/DAReS/DART/DART_download">

Modified: DART/trunk/models/wrf/WRF_DART_utilities/replace_wrf_fields.html
===================================================================
--- DART/trunk/models/wrf/WRF_DART_utilities/replace_wrf_fields.html	2010-06-28 23:44:06 UTC (rev 4399)
+++ DART/trunk/models/wrf/WRF_DART_utilities/replace_wrf_fields.html	2010-06-30 16:09:37 UTC (rev 4400)
@@ -20,11 +20,31 @@
 </center>
 
 <H1>PROGRAM <em class=program>replace_wrf_fields</em></H1>
-<!-- version tag follows, do not edit --><P>$Id$</P>
+<P><small>Latest subversion revision tag:
+<!-- version tag follows, do not edit -->$Id$
+</small></P>
 
 <P>
-   Program to copy various fields from one WRF netCDF file to another.
+Program to copy various fields from one WRF netCDF file to another.
 </P>
+<P>
+There are many existing utilities to process netCDF files, including the 
+NCO operators and NCL scripts, which have more functionality than this
+program.  The only purpose for having this one is that it is a standalone
+program with no prerequisites or dependencies other than the netCDF libraries.  
+If you already have other tools available, they can do the same functions that 
+this program does.
+</P>
+This program copies the given data fields from the
+input file to the output file, failing if their sizes, shapes, or data types
+do not match exactly.
+The expected use is to copy fields which are updated
+by the WRF program but are not part of the DART state vector,
+for example, sea surface temperature or soil fields.
+After DART has updated the WRF restart <em class=file>wrfinput_d01</em>
+file, this program can be used to update other fields in the file
+before running the model.
+</P>
 
 <!--==================================================================-->
 
@@ -35,17 +55,6 @@
 types_mod
 utilities_mod
 parse_args_mod
-random_nr_mod
-time_manager_mod
-null_mpi_utilities_mod
-random_seq_mod
-location/threed_sphere/location_mod
-obs_kind_mod
-wrf/module_map_utils
-wrf/model_mod
-assim_model_mod
-obs_def_mod
-obs_sequence_mod
 </PRE>
 
 <!--==================================================================-->
@@ -57,49 +66,53 @@
 <H2>NAMELIST</H2>
 <P>We adhere to the F90 standard of starting a namelist with an ampersand
 '&amp;' and terminating with a slash '/' for all our namelist input.
-consider yourself forewarned that character strings that contain a '/' must be
-enclosed in quotes to prevent them from prematurely terminating the namelist.
-The namelist declaration (i.e. what follows) has a different syntax, naturally.
 </P>
 <div class=namelist>
 <pre>
 <em class=call>namelist / replace_wrf_fields_nml / </em> &amp;
-    model_advance_file
-
-<em class=call>namelist / model_nml / </em> &amp;
-    output_state_vector, num_moist_vars, num_domains, calendar_type, &amp;
-    surf_obs, soil_data, h_diab, adv_mod_command, assimilation_period_seconds,  &amp;
-    vert_localization_coord, center_search_half_length, center_spline_grid_scale
+                 fieldnames, fieldlist_file,  &amp;
+                 fail_on_missing_field, debug
 </pre>
 </div>
 
 <div class=indent1>
 <!-- Description -->
 
-<P>The <em class=file>wrf_to_dart</em> program uses only the
-WRF model namelist.  See the description in
-the <a href="../model_mod.hmtl">WRF model_mod.html</a> file.
-The <em class=file>replace_wrf_fields</em> program uses the model namelist
-plus an additional namelist: <em class=file>replace_wrf_fields_nml</em>.
+<P>The namelist is read from a file called <em class=file>input.nml</em>
 </P>
 
-<P>Both namelists are read from a file 
-called <em class=file>input.nml</em>
-</P>
-
 <TABLE border=0 cellpadding=3 width=100%>
 <TR><TH align=left>Contents    </TH>
     <TH align=left>Type        </TH>
     <TH align=left>Description </TH></TR>
-<TR><!--contents--><TD valign=top>model_advance_file    </TD>
-    <!--  type  --><TD valign=top>logical         </TD>
-    <!--descript--><TD>In normal usage set this to .TRUE. so the
-     model_advance.csh script can function correctly.  The input
-     file will have 2 timestamps: time for model to advance to, 
-     and current time, plus the data.  However, to convert the
-     file restart files after DART finishes running into wrfinput_d01
-     files, for example to continue with a free run, set this to .FALSE.
+<TR><!--contents--><TD valign=top>fieldnames    </TD>
+    <!--  type  --><TD valign=top>character(len=129) (:)   </TD>
+    <!--descript--><TD>An array of ASCII field names to be copied from
+     the input netCDF file to the output netCDF file.  The names must
+     match exactly, and the size and shape of the data must be the
+     same in the input and output files for the data to be copied.
+     If the field names are set here, the fieldlist_file item must
+     be "".
+     Default "" (empty list) </TD></TR>
+<TR><!--contents--><TD valign=top>fieldlist_file    </TD>
+    <!--  type  --><TD valign=top>character(len=129)  </TD>
+    <!--descript--><TD>An alternative to an explicit list of
+     field names to copy.  This is a single string, the name of
+     a file which contains a single field name, one per line.
+     If this option is set, the fieldnames namelist item must be "".
+     Default "" (empty filename) </TD></TR>
+<TR><!--contents--><TD valign=top>fail_on_missing_field</TD>
+    <!--  type  --><TD valign=top>logical</TD>
+    <!--descript--><TD>If any fields in the input list are not
+     found in either the input or output netcdf files, fail if this
+     is set to true.  If false, a warning message will be printed
+     but execution will continue.
      Default .TRUE. </TD></TR>
+<TR><!--contents--><TD valign=top>debug</TD>
+    <!--  type  --><TD valign=top>logical </TD>
+    <!--descript--><TD>If true, print out debugging messages about which
+     fields are found in the input and output files.
+     Default .FALSE. </TD></TR>
 </TABLE>
 
 
@@ -117,33 +130,15 @@
    <LI>input namelist ; <em class=file>input.nml</em></LI>
    <LI>Input - output WRF state netCDF files; <em class=file>wrfinput_d01,
    wrfinput_d02, ...</em></LI>
-   <LI>Input - output dart state vector format files ; <em
-   class=file>dart_wrf_vector</em></LI>
-   <LI>Input - output: <em class=file>wrf.info</em></LI>
+   <LI>fieldlist_file (if specified in namelist)</LI>
 </UL>
 
 <H3>File formats</H3>
 
-<P>In the conversion from dart to WRF, the <em class=file>dart_wrf_vector</em>
-file is usually one of the <em class=file>assim_model_state_ic#</em> that the
-filter writes out to advance the ensemble. As input, the dart_wrf_vector
-includes the target time in addition to the valid time at the beginning of the
-file. As output, the dart_wrf_vector includes only the valid time at the
-beginning of the file and is usually renamed as <em
-class=file>assim_model_state_ud#</em> as input to the filter for the next
-assimilation cycle.
+<P>This utility works on any pair of netCDF files, doing a simple read
+and copy from one to the other.
 </P>
 
-<P>The file <em class=file>wrf.info</em> contains the target dart time, the valid
-dart time, the valid date, the number of domains, and the command used to
-executed the WRF model. The file <em class=file>wrf.info</em> is created in the
-conversion from dart to WRF. In the conversion from WRF back to dart, the
-target time is read from the file <em class=file>wrf.info</em>, which should
-then be the valid time. This will be the time written to the dart vector
-file. The rest of the information in the file <em class=file>wrf.info</em> is
-only used by the program ensemble_init and by the script advance_model.csh.
-</P>
-
 <!--==================================================================-->
 <!-- Cite references, if need be.                                     -->
 <!--==================================================================-->
@@ -166,25 +161,25 @@
 <TABLE border=1 cellspacing=1 cellpadding=10 width=100%>
 <TR><TH>Routine</TH><TH>Message</TH><TH>Comment</TH></TR>
 
-<TR><!-- routine --><TD VALIGN=top>dart_open_and_alloc, transfer_dart_wrf</TD>
-    <!-- message --><TD VALIGN=top>n_moist = is too large.</TD>
-    <!-- comment --><TD VALIGN=top>The maximum number of moist variables is
-    7. In order, they are [qv, qc, qr, qi, qs, qg, qnice]</TD></TR>
+<TR><!-- routine --><TD VALIGN=top>replace_wrf_fields</TD>
+    <!-- message --><TD VALIGN=top>Usage: echo infile.nc outfile.nc | ./replace_wrf_fields</TD>
+    <!-- comment --><TD VALIGN=top>The program did not read 2 filenames from the console.</TD></TR>
 
-<TR><!-- routine --><TD VALIGN=top>transfer_dart_wrf</TD>
-    <!-- message --><TD VALIGN=top>n_values differ in transfer</TD>
-    <!-- comment --><TD VALIGN=top>If you get to this point, there would an
-    inconsistency between subroutines dart_open_and_alloc and transfer_dart_wrf.</TD></TR>
+<TR><!-- routine --><TD VALIGN=top>replace_wrf_fields</TD>
+    <!-- message --><TD VALIGN=top>cannot specify both fieldnames and fieldlist_file</TD>
+    <!-- comment --><TD VALIGN=top>In the namelist you must either specify an explicit list
+    of fieldnames to copy between the files, or give a single filename which contains the
+    list of field names.  You cannot specify both.</TD></TR>
 
-<TR><!-- routine --><TD VALIGN=top>trans_2d</TD>
-    <!-- message --><TD VALIGN=top>nx, ny, not compatible</TD>
-    <!-- comment --><TD VALIGN=top>Dimensions nx, ny incompatible with incoming
-    array a2d.</TD></TR>
+<TR><!-- routine --><TD VALIGN=top>replace_wrf_fields</TD>
+    <!-- message --><TD VALIGN=top><it>field</it> not found in input/output file</TD>
+    <!-- comment --><TD VALIGN=top>If 'fail_on_missing_field' is true in the namelist and
+    a field is not found in either the input or output file.</TD></TR>
 
-<TR><!-- routine --><TD VALIGN=top>trans_3d</TD>
-    <!-- message --><TD VALIGN=top>nx, ny, nz, not compatible</TD>
-    <!-- comment --><TD VALIGN=top>Dimensions nx, ny, nz incompatible with incoming
-    array a3d.</TD></TR>
+<TR><!-- routine --><TD VALIGN=top>replace_wrf_fields</TD>
+    <!-- message --><TD VALIGN=top><it>field</it> does not match</TD>
+    <!-- comment --><TD VALIGN=top>If the input and output files have different sizes,
+    number of dimensions, or data types, the program cannot copy the data.</TD></TR>
 
 </TABLE>
 </div>
@@ -202,9 +197,7 @@
 <HR>
 <H2>FUTURE PLANS</H2>
 <P>
-This program has to be updated when new prognostic variables are included
-in the state vector, e.g. when tracers or chemical species are evolved
-in WRF. The program will also need to be updated to add parameters to be estimated.
+none.
 </P>
 
 <!--==================================================================-->
@@ -215,101 +208,8 @@
 <HR>
 <H2>PRIVATE COMPONENTS</H2>
 
-<!--=================== DESCRIPTION OF SUBROUTINE ====================-->
-
 <br>
-<div class=routine>
-<em class=call> call dart_open_and_alloc( wrf, dart, n_values, dart_unit,
-replace_wrf_fields, debug )</em>
-<pre>
-integer,          intent(out) :: <em class=code> dart_unit </em>
-logical,          intent(in)  :: <em class=code> replace_wrf_fields, debug </em>
-type(wrf_dom),    intent(in)  :: <em class=code> wrf </em>
-real(r8),         pointer     :: <em class=code> dart(:) </em>
-integer,          intent(out) :: <em class=code> n_values  </em>
-</pre>
-</div>
 
-<div class=indent1>
-<!-- Description -->
-
-<P>
-Open a dart state vector file, determine the length of the dart
-state vector, and allocate the dart state vector variable.
-</P>
-
-</div>
-<br>
-
-<!--=================== DESCRIPTION OF SUBROUTINE ====================-->
-
-<br>
-<div class=routine>
-<em class=call> call transfer_dart_wrf ( replace_wrf_fields, dart, wrf, n_values_in)</em>
-<pre>
-logical,          intent(in) :: <em class=code> replace_wrf_fields </em>
-type(wrf_dom),    intent(in) :: <em class=code> wrf </em>
-real(r8), pointer            :: <em class=code> dart(:) </em>
-integer,          intent(in) :: <em class=code> n_values_in </em>
-</pre>
-</div>
-
-<div class=indent1>
-<!-- Description -->
-
-<P>
-Transfer from dart state vector to a wrf structure, or vice versa.
-</P>
-
-</div>
-<br>
-
-<!--=================== DESCRIPTION OF SUBROUTINE ====================-->
-
-<br>
-<div class=routine>
-<em class=call> call trans_2d( one_to_two, a1d, a2d, nx, ny )</em>
-<pre>
-integer,  intent(in) :: <em class=code> nx,ny </em>
-real(r8), intent(in) :: <em class=code> a1d(:) </em>
-real(r8), intent(in) :: <em class=code> a2d(nx,ny) </em>
-logical,  intent(in) :: <em class=code> one_to_two </em>
-</pre>
-</div>
-
-<div class=indent1>
-<!-- Description -->
-
-<P>
-Transfer data from a 2D array into a 1D array, or vice versa.
-</P>
-
-</div>
-<br>
-
-<!--=================== DESCRIPTION OF SUBROUTINE ====================-->
-
-<br>
-<div class=routine>
-<em class=call> call trans_3d( one_to_three, a1d, a3d, nx, ny, nz )</em>
-<pre>
-integer,  intent(in) :: <em class=code> nx,ny,nz </em>
-real(r8), intent(in) :: <em class=code> a1d(:) </em>
-real(r8), intent(in) :: <em class=code> a3d(:,:,:) </em>
-logical,  intent(in) :: <em class=code> one_to_three </em>
-</pre>
-</div>
-
-<div class=indent1>
-<!-- Description -->
-
-<P>
-Transfer data from a 3D array into a 1D array, or vice versa.
-</P>
-
-</div>
-<br>
-
 <!--==================================================================-->
 <!-- Legalese & Metadata                                              -->
 <!--==================================================================-->
@@ -319,7 +219,7 @@
 <H2>Terms of Use</H2>
 
 <P>
-DART software - Copyright &#169; 2004 - 2010 UCAR.<br>
+DART software - Copyright &copy; 2004 - 2010 UCAR.<br>
 This open source software is provided by UCAR, "as is",<br>
 without charge, subject to all terms of use at<br>
 <a href="http://www.image.ucar.edu/DAReS/DART/DART_download">

Modified: DART/trunk/models/wrf/WRF_DART_utilities/replace_wrf_fields.nml
===================================================================
--- DART/trunk/models/wrf/WRF_DART_utilities/replace_wrf_fields.nml	2010-06-28 23:44:06 UTC (rev 4399)
+++ DART/trunk/models/wrf/WRF_DART_utilities/replace_wrf_fields.nml	2010-06-30 16:09:37 UTC (rev 4400)
@@ -1,5 +1,7 @@
 &replace_wrf_fields_nml
+   fieldnames = '',
+   fieldlist_file = '',
+   fail_on_missing_field = .true.
    debug = .false.,
-   fail_on_missing_field = .true.
    /
 


More information about the Dart-dev mailing list