[Dart-dev] [7931] group/talks/CAM_documentation/history: move historical docs to a ' history' directory.
nancy at ucar.edu
nancy at ucar.edu
Tue Apr 28 15:25:24 MDT 2015
Revision: 7931
Author: nancy
Date: 2015-04-28 15:25:24 -0600 (Tue, 28 Apr 2015)
Log Message:
-----------
move historical docs to a 'history' directory. convert
powerpoints to the more user-friendly pdf format, and
put the originals in our 'group' section of the repository.
Added Paths:
-----------
DART/trunk/models/cam/doc/cubed_sphere_algorithm.pdf
group/talks/CAM_documentation/DReaD_2013_cs_algorithms.pptx
group/talks/CAM_documentation/cubed_sphere_algorithm.pptx
group/talks/CAM_documentation/history/cam_guidelines.html
group/talks/CAM_documentation/history/flow_5.xfig.gif
group/talks/CAM_documentation/history/flow_5.xfig.ps
group/talks/CAM_documentation/history/flow_6.xfig.eps
group/talks/CAM_documentation/history/flow_6.xfig.gif
group/talks/CAM_documentation/history/flow_6.xfig.map
group/talks/CAM_documentation/history/flow_6.xfig.pdf
group/talks/CAM_documentation/history/flow_6_scripts.xfig.ps
group/talks/CAM_documentation/history/namelistin
group/talks/CAM_documentation/roots_of_m_equation.pptx
Removed Paths:
-------------
DART/trunk/models/cam/doc/DReaD_2013_cs_algorithms.pptx
DART/trunk/models/cam/doc/cam_guidelines.html
DART/trunk/models/cam/doc/cubed_sphere_algorithm.pptx
DART/trunk/models/cam/doc/flow_5.xfig.gif
DART/trunk/models/cam/doc/flow_5.xfig.ps
DART/trunk/models/cam/doc/flow_6.xfig.eps
DART/trunk/models/cam/doc/flow_6.xfig.gif
DART/trunk/models/cam/doc/flow_6.xfig.map
DART/trunk/models/cam/doc/flow_6.xfig.pdf
DART/trunk/models/cam/doc/flow_6_scripts.xfig.ps
DART/trunk/models/cam/doc/namelistin
DART/trunk/models/cam/doc/roots_of_m_equation.pptx
-------------- next part --------------
Deleted: DART/trunk/models/cam/doc/DReaD_2013_cs_algorithms.pptx
===================================================================
(Binary files differ)
Deleted: DART/trunk/models/cam/doc/cam_guidelines.html
===================================================================
--- DART/trunk/models/cam/doc/cam_guidelines.html 2015-04-28 21:12:45 UTC (rev 7930)
+++ DART/trunk/models/cam/doc/cam_guidelines.html 2015-04-28 21:25:24 UTC (rev 7931)
@@ -1,852 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<HTML>
-<HEAD>
-<TITLE>DART-CAM setup </TITLE>
-<link rel="stylesheet" type="text/css" href="../../../doc/html/doc.css" />
-<link href="../../../doc/images/dart.ico" rel="shortcut icon" />
-</HEAD>
-<BODY>
-<A NAME="TOP"></A>
-
-<H1>DART-CAM setup </H1>
-
-<table border=0 summary="" cellpadding=5>
-<tr>
- <td valign=middle>
- <img src="../../../doc/images/Dartboard7.png" alt="DART project logo" height=70 />
- </td>
- <td>
- <P>Jump to <a href="../../../index.html">DART Documentation Main Index</a><br />
- <small><small>version information for this file: <br />
- <!-- version tag follows, do not edit -->
- $Id$</small></small>
- </P></td>
-</tr>
-</table>
-
-<!--
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-! 9/17/09
-! update location of cgd_cam.shtml
-! Update instructions for setting up an experiment; what's here is OK,
-! but is there more/different?
-! Update the space required for FV runs, with new archiving, ICE
-! Replace "Jamaica release notes" with Kodiak?
-!
-! 9/8/05
-! cp new scripts from Doc_scripts to where they belong in DART
-! mv master.html from Doc_scripts to models/cam? (then change links in model_mod.html
-! and master.html.
-! install FAQ into the set-up web page? Use Justin's questions to start
-! more instructions about
-! choices of starting from single inputs/ensembles\
-! users making their own caminput and filter_ic ensemble (or starting from single
-! and having filter make an ensemble, so I'm not responsible for model/data consistency)
-! message 36 in folder justinWI
-! making synthetic obs_seq files vs using ones provided
-! dealing with model version numbers
-! namelist entries for DART; where are they described? all the ..._mod.html pages
-! commit models/cam/work/makall, or remove reference below
-! doc/CAM/Doc_scripts/master.html (and others there?)
-! develope a strategy for dispersing bug fixes and upgrades to users
-!
-!! make sure scripts are in the right places, and committed.
-!!
-!! FLOW CHART SET-UP? There are lots of steps which won't be necessary for every experiment
-!!
--->
-
-<A HREF="#CALLINGTREE">CALLING TREE</A> /
-<A HREF="#SETUP">SET-UP</A> /
-<A HREF="#INITIALFILES">INITIAL ENSEMBLE</A> /
-<A HREF="#FILECONTENTS">FILE CONTENTS</A> /
-<A HREF="#OUTPUTDIRECTORY">OUTPUT DIRECTORY</A> /
-<A HREF="#HINTS">HINTS</A> /
-<A HREF="#SPACE">SPACE</A>
-<!-- <A HREF="#FLOW CHART">FLOW CHART</A> / -->
-<A HREF="#Legalese">TERMS OF USE</A>
-
-<!--===============================================-->
-<A NAME="OVERVIEW"></A>
-<H2>DART-CAM Setup Overview</H2>
-
-<P>
-This document gives specific help in setting up a
-DART-CAM experiment for the first time.
-Unless you just came from there, also see the
-<a href="../model_mod.html">model_mod</a> documentation
-on the code-level interfaces and namelist values for DART-CAM.
-</P>
-
-<P>
-Usually a run of DART-CAM involves executing multiple sequential
-batch job steps, each step consisting of a day's worth
-of assimilation. Between job steps the output from the
-previous job step must be saved or moved to be used as
-input for the next job step. Files may need to be archived
-or postprocessed. And finally, DART is a parallel MPI program
-and CAM can be compiled as a serial job, an OpenMP parallel job,
-or an MPI parallel job. On some systems an MPI parallel job
-cannot start another MPI parallel job, so running both a
-parallel DART and parallel CAM as a single job can be hard.
-</P>
-
-<P>
-The DART distribution comes with some scripts which will probably
-have to be customizes for other users. The <em class=file>shell_scripts</em>
-directory contains simple example scripts. The <em class=file>
-full_experiment</em> directory contains scripts which do a full-up
-experiment with multiple days and automatic archiving.
-</P>
-
-<P>
-For parallelism options it is fastest to run a serial (single-threaded)
-or OpenMP CAM with a parallel DART. This is selected by compiling
-CAM with the proper options, and then setting the <em class=code>async</em>
-namelist variable in the <a href="../../../filter/filter.html#Namelist">&filter_nml</a>
-namelist to 2. If there is not enough memory to run CAM as a serial
-job CAM can be compiled as a parallel program using MPI and then the
-<em class=code>async</em> value is set to 4 instead.
-</P>
-
-<P>
-For the short forecasts (6 hours) typically needed for assimilation,
-and on machines with at least as many processors as ensemble members,
-async=4 is usually much less efficient than async=2.
-This is because the start-up phase of an MPI CAM advance is single threaded
-and takes much longer than the short integration forward in time.
-async=4 (parallel CAM) leaves most of the processors idling for most of the time.
-async=2 lets all the start-up phases run at the same time on all of the processors.
-The drawback of async=2 is that there may not be enough memory on a single
-processor to handle a whole CAM.
-</P>
-
-<P>
-async=2 and 4 allow users to control the assimilation through a single script,
-'job_mpi.csh'.
-job_mpi.csh has a section of user set parameters which define many aspects of
-the assimilation.
-It uses those parameters to create a series of batch scripts,
-one for each obs_seq.out file that will be assimilated.
-Their names have the form [Experiment]_[obs_seq#].script,
-the parts of which are defined in job_mpi.csh.
-It submits all of those scripts to the batch scheduler,
-where they run in succession as resources become available.
-Each obs_seq batch script executes the programs layed out in the calling tree (below).
-</P>
-
-<P>
-There are, no doubt, things missing from these lists, so don't struggle too long
-before contacting raeder'at'ucar.edu.
-</P>
-
-<P>
-The sequence of operations for assimilating a single obs_seq.out file follows.
-The functionality of each operation has been restricted to one "domain".
-A script/program is specific to:
-</P>
-<UL>
- <LI> a machine where the experiment is run (e.g. NCARS IBM Power6 'bluefire'); </LI>
- <LI> a model version used in the assimilation (e.g. CAM 4.0.1); </LI>
- <LI> the filter version; </LI>
- <LI> or the experiment being conducted using the choices for the previous 3.</LI>
-</UL>
-
-<P>
-<A HREF="../model_mod.html">Go to cam/model_mod page</A>
-</P>
-
-<A NAME="CALLINGTREE"></A>
-<HR>
-<H2>Calling Tree</H2>
-
-<P>
-The calling tree for the scripts and fortran executables when running under
-async=2 or 4 is:
-</P>
-
-<TABLE border=0 cellpadding=3 width=100%>
-<TR><TH align=left>SCRIPT </TH>
- <TH align=left>DOMAIN </TH>
- <TH align=left>LOCATION OR NOTES </TH></TR>
-
-<TR><!-- script --><TD valign=top>Exper_obsseq#.script</TD>
- <!-- domain --><TD valign=top>experiment</TD>
- <!--location--><TD>experiment central directory where I/O and execution are organized.</TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> mpirun filter executable </pre></TD>
- <!-- domain --><TD valign=top>filter version </TD>
- <!--location--><TD>local disc on a compute node/processor, or a work directory
- in the central directory.</TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> advance_model.csh</pre></TD>
- <!-- domain --><TD valign=top> model </TD>
- <!--location--><TD> pre-existing work subdirectory of the central directory.</TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> dart_to_cam executable</pre></TD>
- <!-- domain --><TD valign=top> model </TD>
- <!--location--><TD>Translates DART time format into CAM time format and
- inserts DART state vector into CAM initial file</TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> run-cam.csh</pre></TD>
- <!-- domain --><TD valign=top> model </TD>
- <!--location--><TD> Modified form of run script from CAM, now in DART </TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> bld-namelist </pre></TD>
- <!-- domain --><TD valign=top> model </TD>
- <!--location--><TD> uses namelistin and results of dart_to_cam to make CAM namelist </TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> advance of CAM (version dependent)</pre></TD>
- <!-- domain --><TD valign=top> model </TD>
- <!--location--><TD>Single threaded or MPI CAM </TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> cam_to_dart executable</pre></TD>
- <!-- domain --><TD valign=top> </TD>
- <!--location--><TD>Translates CAM fields in to DART state vector</TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> qsub auto_re2hpss.csh</pre></TD>
- <!-- domain --><TD valign=top> machine </TD>
- <!--location--><TD> Central/Experiment/obs_####. Archives restart data sets. </TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> qsub auto_diag2hpss_LSF.csh</pre></TD>
- <!-- domain --><TD valign=top> machine </TD>
- <!--location--><TD> Central/Experiment/obs_####. Archives diagnostic output. </TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> analyses2initial.csh</pre></TD>
- <!-- domain --><TD valign=top> machine </TD>
- <!--location--><TD> Central/Experiment/obs_####/H## Generates analyses in CAM,CLM,CICE initial files. May also save CAM .h0. history files (but <A HREF="#SMALLH0"> make them small </A>!) </TD></TR>
-<TR><!-- script --><TD valign=top><pre> -> NetCDF operators </pre></TD>
- <!-- domain --><TD valign=top> machine </TD>
- <!--location--><TD> Central/Experiment/obs_####/H## Averaging of CAM,CLM,CICE fields. </TD></TR>
-<TR><!-- script --><TD valign=top><pre> (-> clm_ens_avg.f90</pre></TD>
- <!-- domain --><TD valign=top> machine </TD>
- <!--location--><TD> Central/Experiment/obs_####/H## Complicated snow averaging.
- Not usable (yet) for CAM 4.0.1 and later.) </TD></TR>
-</TABLE>
-
-
-<!-- <A NAME="FLOWCHART"></A>
-<HR>
-<H2>Flow Chart</H2>
-<P>
-The tasks of each script, and communication between them, are summarized in a
-<A HREF="flow_5.xfig.gif" > flow chart </A>.
-Note the key in the lower right corner. The specific mechanisms for transferring control and
-moving files will be found in the scripts.
-</P>
--->
-
-
-<!--===============================================-->
-<A NAME="SETUP"></A>
-<HR>
-<H2>Experiment Set-Up</H2>
-<P>
-
-Instructions for setting up a DART/CAM in "stand-alone" mode assimilation.
-This section does not describe setting up assimilations within the CESM
-framework (available in late 2011?).
-</P>
-
-<BR>
-
-<OL TYPE=A>
-
- <LI>DART
- <OL TYPE=1>
- <LI>Register and check out DART from the
- <A href="http://www2.image.ucar.edu/forms/dart-software-download">download site</A>. </LI>
- <LI>In .../DART/mkmf link mkmf.template to
- the mkmf.template.xxxx which is appropriate for your computer
- (or make one of your own). </LI>
- <LI> cd to .../DART/models/cam/work and edit input.nml:preprocess_nml:input_files
- to choose obs_def source code files to load via the preprocessor.
-<!-- ??? link to obs_def_mod.html? -->
- The default file <em class=file>
- <a href="../../../../obs_def/obs_def_reanalysis_bufr_mod.f90">
- obs_def/obs_def_reanalysis_bufr_mod.f90</a></em> will handle
- observations from NCEP reanalysis BUFR files. (Warning: assimilating the
- obs in the example GPS obs_seq.out file available from the
- <A HREF="http://www.image.ucar.edu/pub/DART/Obs_sets">DART Obs_sets site</A>
- requires loading more than just the obs_def_gps_mod.f90.)</LI>
- <LI>Script DART/models/cam/work/quick_build.csh is recommended for compiling
- the package.
- It is set up to compile and run the preprocessor,
- compile filter and wakeup_filter as MPI processes (async=2 and 4),
- and compile all other executables (but not CAM) as single process programs.
- If you want a single-process filter, quick_build.csh can take -nompi
- as an argument, which will build filter and wakeup_filter that way.
- The main script job_mpi.csh may need minor modifications to run that way.
- Keep in mind that all of the ensemble members' state vectors will have
- to fit in the memory of a single processor, so this is only suitable
- for low resolution, small ensemble testing.
- </OL>
- </LI>
-
- <LI> CAM
- <OL TYPE=1>
-
- <LI> Put the DART modifications
- (.../DART/models/cam/Cam[version#]_DART_mods.tar),
- and any other CAM modifications you have,
- in the CAM directory of user-provided modifications.
- CAM's "configure" will use these during compilation, if you tell it to.
- Configure and compile CAM at the resolution/dynamical core desired.
- Do this in a directory where all your CAM versions will reside,
- here called CamCentral.</LI>
-<!-- (/home/raeder/Cam3.0/Cam3_0_7_DART_mods) -->
-
-
- <LI>Link the cam executable and config_cache*.xml files into a subdirectory of
- the CAM source code directory [CamCentral/CAM_version]/models/atm/cam/bld ,
- which I'll call CAM_config_1 (add -mpi for MPI CAM or -omp for OpenMP CAM).
- Job_mpi.csh has a variable "CAMsrc" that should point to that location.
- (This location is necessary because run-cam.csh looks for files and programs
- in the parent directory of the directory which has the CAM executable in it.)
- </LI>
-
- <LI>Build a CAM namelist and call it 'namelistin' containing (among the other/default
- variables defined by the CAM build-namelist):
-<!-- ??? Links to discussions of these and other possible namelistin entries? -->
- <pre>
- CAM 3.1 - 3.5
- &camexp
- ncdata = 'caminput.nc'
- caseid = 'whatever_you_want'
- nsrest = 0
- calendar = 'GREGORIAN'
- inithist = 'ENDOFRUN'
- /
- &clmexp
- finidat = 'clminput.nc'
- /
- CAM 3.6 - 4.?
- &seq_timemgr_inparm
- calendar = 'GREGORIAN'
- restart_n = 12
- restart_option = 'nsteps'
- stop_option = 'date'
- /
- &cam_inparm
- ncdata = 'caminput.nc'
- inithist = 'ENDOFRUN'
- div24del2flag = 4,
- nhtfrq = -6
- /
- &clm_inparm
- finidat = 'clminput.nc'
- /
- &dom_inparm
- bndtvs = '/your/SST/file/here/resolution/cam_version/sst_HadOIBl_bc_1.9x2.5_1949_2007.nc'
- sstcyc = .false.
- /
- </pre>
- and NOT containing ...
- <pre>
- > start_ymd = 20020901
- > start_tod = 0
- > stop_ymd = 20021201
- > stop_tod = 0
- </PRE>
- <A NAME="SMALLH0"></A>
- If you want to make the .h0. history files small and focused, for archiving:
- add to &cam_inparm
- <PRE>
- empty_htapes = .true.,
- mfilt = 1
- avgflag_pertape = 'A'
- fincl1 = 'A', 'Few', 'Useful', 'CAM' ,'Fields'
- </pre>
-
-
- In the past (as of 5/15/2011), the released versions of CAM cannot use the GREGORIAN
- calendar. This is true for the released versions of CAM4 (4.0.1 from CCSM4) and CAM5
- (from CESM1.0)
- Fixes for many versions can be found in the Cam[version]_DART_mods.tar files
- included in the DART package.
- Those may be portable into the version of CAM you want to use.
- In order to use the GREGORIAN calendar, CAM must be built with the full
- ESMF time manager. It must be built single-threaded if you will use async=2,
- or MPI for async=4. In addition, check that CAM is actually linking to the
- time manager you want (the CAM build scripts have their own ideas, and may not
- ask permission to do what they want).
- As a last resort, run experiments which don't cover leap years and use the
- default calendar = 'NO_LEAP', or make obs_sequence.out files which don't have
- 2/29 on them.
-
- The run-cam.csh script will call the CAM build-namelist script,
- which will use namelistin to make (a) new namelist(s) with
- the correct forecast parameters, named 'namelist' (< CAM 3.5)
- or '{atm,drv,ice,lnd,ocn}_in' (>= CAM 3.5).
- Put it/them into a directory where job_mpi.csh will be able to find it;
- something like CamCentral/CAM_version/models/atm/cam/bld/CAM_config_1. </LI>
-
- <LI>Confirm that you have access to all the input files whose names are
- generated by build-namelist in 'namelist' or '{atm,drv,ice,lnd,ocn}_in',
- or suitable replacements.</LI>
-
- <LI>Put an appropriate CAM initial file in CAM_config_1 and call it caminput.nc.
- Put a matching CLM initial file there and call it clminput.nc.
- (Matching is important; CAM checks that the CLM initial file has the expected
- grid parameters.)
- Only the grid information is used from these files, so their dates don't matter.</LI>
- </OL>
- </LI>
-
-
- <LI> Set up an experiment central directory ("Central" here) where there's
- enough <A HREF="#SPACE">space </A> for output. </LI>
- <LI>Copy the DART namelist file (DART/models/cam/work/input.nml)
- into one called "input_1.nml" in Central.</LI>
- <LI>Copy DART/models/cam/shell_scripts/job_mpi.csh to Central </LI>
-
- <LI>EXPERIMENT
-
- <OL TYPE=1>
-
- <LI>If you need to make up synthetic observations get create_obs_sequence,
- create_fixed_network_seq and perfect_model_obs and learn how to use them.
- Otherwise, use the obs_seq.out files provided
- <A href="http://www.image.ucar.edu/pub/DART/Obs_sets">here</A>
- or similar 'real observations' files.
- </LI>
- <LI>Edit job_mpi.csh. It has more detailed instructions about how to:
- <UL>
- <LI>define experiment output directory names</LI>
- <LI>tell it whether CAM is MPI or OpenMP</LI>
-<!-- ??? OpenMP updates; more here? and in scripts -->
- <LI>provide the directory name of CAM executable and associated files
- (.../CAM_config_1 in this page)</LI>
- <LI>define which obs_seq.out files to use.
- Some pre-made examples can be found
- <A HREF="http://www.image.ucar.edu/pub/DART/Obs_sets"> here.</A></LI>
- <LI>find and provide the path name of the obs_seq.out files</LI>
- <LI>find and provide the path name of the filter_ic[.#] files.
- Such an ensemble can be created from <A HREF="#INITIALFILES">CAM initial files</A>
- using <A HREF="../cam_to_dart.html">
- cam_to_dart</A>. </LI>
- <LI>define which CAM and CLM initial files to use.
- Some initial and filter_ic files are available from
- the NCAR Mass Store:/RAEDER/DAI/CAM_init/[Resol]_[model_version] and more from
- <A HREF="http://www.image.ucar.edu/pub/DART/CAM ">DART large file site</A></LI>
- <!-- <LI>define which DART version to use</LI> -->
- <LI>define resources to be requested by each of the Experiment_[obs_seq_#].script
- scripts</LI>
- </UL>
- </LI>
-
- <LI>Edit input_1.nml to configure the assimilation of the first obs_seq.out.
- Be sure that
- <UL>
- <LI>filenames listed in it agree with what's required by job_mpi.csh
- and what is or will be available in the Central directory. </LI>
- <LI>start from restart is .true. if you have an initial ensemble,
- .false. otherwise.</LI>
- <LI>init_time_days is the first Gregorian day of your assimilation.
- This can be obtained from the program
- <A HREF="../../../time_manager/advance_time.html">
- ...DART/time_manager/advance_time.f90 </A> </LI>
- <LI>init_time_seconds is the first second of the first day of your assimilation
- (usually 0).</LI>
- </UL>
- </LI>
- <LI>Copy input_1.nml to input_n.nml and edit input_n.nml.
-<!-- Using the 'restart_file_tool' you can set the data times on the restart files.
- Using the 'fill_inflation_restart' tool you can initialize inflation restarts.
- Then you can have a single 'input.nml' which you use for all job steps. -->
- Set start_from_restart to .true.
- Change init_time_days = -1, init_time_seconds = -1.</LI>
- <LI> Run the experiment by executing job_mpi.csh,
- either through the batch queue or interactively. </LI>
-<!-- <LI>(MORE? my conventions to make them work with job.csh? or a whole new topic; )</LI> -->
- </OL>
- </LI>
-</OL>
-
-
-<!--===============================================-->
-<A NAME="INITIALFILES"></A>
-<HR>
-<H2>CAM Initial Ensembles</H2>
-<P>
-
-Strategies for generating an initial ensemble from which DART can start.
-<BR>
-
-All of these strategies require converting CAM initial file(s) into
- filter_ic.#### files, which is done by the
- <A HREF="../cam_to_dart.html"> same method. </A>
-<OL TYPE=1>
-<LI> MINIMAL WORK; Get an ensemble of filter and CAM/CLM[/CICE] initial files
- from someone else (DART has a few dates for a few model cores and resolutions
- <A HREF="http://www.image.ucar.edu/pub/DART/Obs_sets">here</A>.
- This limits the investigations you can undertake,
- but is the fastest and cheapest way to start assimilating.
-</LI>
-
-<LI> MINIMAL CAM COMPUTING; an assimilation can be started from a single CAM (+CLM[+CICE])
- initial file.
- The single model state is randomly perturbed to make as many ensemble members
- as are requested in the <em class=code>ens_size</em> variable
- in the <em class=code>filter_nml</em> namelist.
- Create a <em class=file>filter_ic </em> file from the CAM initial file (dart_to_cam.f90).
- Create an <em class=file>obs_seq.out </em> file which has a single observation
- with a large observational error variance,
- valid at least a week after the start date for the spin-up.
- This will make the ensemble advance long enough to balance the fields,
- without being perturbed by the assimilation of any observations.
-<PRE>
-&filter_nml
- ...
- start_from_restart = .false.,
- restart_in_file_name = "filter_ic",
- ...
-/
-&model_nml
- ...
- pert_names = 'T ','US ','VS '
- pert_sd = 1.0d0,2.0d0,2.0d0
- ...
-/
-</PRE>
-Note that <em class=code>start_from_restart</em> is false
-("don't start from a pre-existing *ensemble*"),
-but a restart file (<em class=file>filter_ic</em>)
-is still needed for filter to have something realistic to perturb.
-<em class=code>pert_names</em> specifies which fields will be perturbed.
-CAM field names are used.
-<em class=code>pert_sd</em> > 0 allows each point of the pert_names fields of each ensemble member
-to be randomly perturbed with a standard deviation of pert_sd.
-Other fields can be used, but moisture variables are tricky because of their variation
-with height by orders of magnitude.
-Regardless of which fields are specified, the spin-up period
-will allow the fields to come into balance with respect to the model,
-so the perturbations will propagate into all fields.
-</LI>
-
-<LI>
-FULL FUNCTION ENSEMBLE; In order to have, on hand, initial ensembles
-of any practical size, for any date of the year, we recommend the following.
-Scripts for doing this are available in .../DART/models/cam/make_ensemble.
-See the README there for more details.
-They are not highly documented or elegent, but offer a starting point.
-Make 20 successive 1-year free CAM runs (MPI CAM highly recommended, NO_LEAP calender),
-saving the initial files every 5 days.
-Then pull together all of the, e.g., Jan 6ths (00Z) into a 20 member ensemble
-(numbered 1...20).
-Don't forget the CLM initial files, and possibly
-the CICE restart file(s):
-<!-- ??? Update/replace the following for cice restarts that are NetCDF
- and need no special treatment
-(CAM 3.6.v, v < 57) tarred together into file iceinput_#.tar:
-<UL>
-<LI>bld-ICs-1.cice.r.1986-01-06-00000; renamed as iceinput</LI>
-<LI>bld-ICs-1.cice.r.aero.1986-01-06-00000; keep this name! </LI>
-<LI>bld-ICs-1.cice.r.volpn.1986-01-06-00000; keep this name! </LI>
-</UL> -->
-After CAM 3.6.57 there is only one, NetCDF, CICE initial/restart file (yea!),
-which is called iceinput_#.nc within DART-CAM.
-Repeat for each date at which there are initial files and archive them.
-When you need an ensemble of, say 60 members for June 1
-then retrieve the 20 members from each of May 26, May 31, and June 5,
-renumbering them 1,...,60.
-Convert each of the CAM initial files into a filter_ic.#### file (cam_to_dart.f90).
-</LI>
-
-</OL>
-
-<!--===============================================-->
-<A NAME="FILECONTENTS"></A>
-<HR>
-<H2>File Contents</H2>
-<P>
-
-See the <A HREF="../../../doc/html/Lanai_release.html"> Lanai release notes </A>
-for diagrams and flowcharts showing DART under the various async options.
-
-The contents of some of the files which appear there are listed here.
-# refers to the list of ensemble members.
-</P>
-
-<TABLE border=0 cellpadding=3 width=100%>
-<TR><TH align=left>FILE </TH>
- <TH align=left>CONTENTS or PURPOSE </TH></TR>
-<TR><!--file--><TD valign=top>assim_model_state_ic#</TD>
- <!--purpose--><TD>the state vectors to be used as initial conditions
- for the next model advance. Contains the state vector time, the target
- time, and the state vector. </TD></TR>
-<TR><!--file--><TD valign=top>assim_model_state_ud#</TD>
- <!--purpose--><TD>the updated state vectors returned by the model
- advance. Contain the state vector time (was the target time) and the
- state vector for one ensemble member. </TD></TR>
-<TR><!--file--><TD valign=top>filter_ic_old#s</TD>
- <!--purpose--><TD> the initial conditions to be used by the filter for the
- next assimilation of a single obs_seq.out file. There may be one of
- these, or one for each ensemble member, named filter_ic_old.####,
- where the #### means a 4 digit number such as 0001. </TD></TR>
-
-<TR><!--file--><TD valign=top>filter_ic_new#s</TD>
- <!--purpose--><TD> same as filter_ic_new#s, except that it/they are produced
- at the end of the assimilation, for use by the next assimilation. </TD></TR>
-
-<TR><!--file--><TD valign=top>input.nml</TD>
- <!--purpose--><TD> the filter namelist file, containing the namelists for all the
- necessary modules of the filter. </TD></TR>
-
-<TR><!--file--><TD valign=top>caminput.nc</TD>
- <!--purpose--><TD> model initial file provides information about the model
- to filter, such as state vector size, etc. </TD></TR>
-
-<TR><!--file--><TD valign=top>caminput_#.nc</TD>
-<!--purpose--><TD> CAM has more fields in its initial files than
- we use in the DART state vector. It's useful to carry these fields along from
- advance to advance so that they don't need to spin-up as much at the beginning
- of each advance. dart_to_cam replaces the state vector fields in these
- "shells" with the contents of assim_model_state_ic and leaves the other
- fields alone. </TD></TR>
-
-<TR><!--file--><TD valign=top>namelists</TD>
- <!--purpose--><TD> the forecast model may need namelist(s) to define its advance. </TD></TR>
-
-<TR><!--file--><TD valign=top>obs_seq.final</TD>
- <!--purpose--><TD> the innovations in observation space which result from the
- assimilation of all the chosen obs in obs_seq.out. </TD></TR>
-
-<TR><!--file--><TD valign=top>obs_seq.out</TD>
- <!--purpose--><TD> the set of observations to be assimilated. How the observations
- are distributed in time defines when the model advances happen. </TD></TR>
-
-<TR><!--file--><TD valign=top>Posterior_Diag.nc</TD>
- <!--purpose--><TD> the state vector in model space after each
- assimilation defined by the obs times in obs_seq.out. </TD></TR>
-
-<TR><!--file--><TD valign=top>Prior_Diag.nc</TD>
- <!--purpose--><TD> the state vector in model space before each assimilation
- defined by the obs times in obs_seq.out. It results from the previous model advance.
- </TD></TR>
-
-
-<TR><!--file--><TD valign=top>True_State.nc</TD>
- <!--purpose--><TD> the state vector in model space resulting from an execution
- of perfect_model_obs. These are the model forecast values from which identity obs
- are derived. </TD></TR>
-
-</TABLE>
-
-<!--===============================================-->
-<A NAME="OUTPUTDIRECTORY"></A>
-<HR>
-<H2>Output Directory </H2>
-<P>
-Organization of output directories:
-</P>
-
-<TABLE border=0 cellpadding=3 width=100%>
-<TR><TH align=left>DIRECTORY </TH>
- <TH align=left>CREATOR </TH>
- <TH align=left>CONTENTS and PURPOSE </TH></TR>
-<TR><!--directory--><TD valign=top><pre>Central directory </pre> </TD>
- <!--creator--><TD valign=top> User </TD>
- <!--purpose--><TD>
- Location of scripts and pass-through point for files during execution.
- Typically named according defining characteristics of a *set* of
- experiments; resolution, model, obs being assimilated, unique model state
- variables, etc.</TD></TR>
-<TR><!--directory--><TD valign=top><pre> Experiment </pre> </TD>
- <!--creator--><TD valign=top> job_mpi.csh </TD>
- <!--purpose--><TD>
- Location of subdirectories of output and some diagnostics files.
- Typically where the obs-space diagnostics are calculated using obs_diag. </TD></TR>
-<TR><!--directory--><TD valign=top><pre> obs_# </pre> </TD>
- <!--creator--><TD valign=top> Exper_obsseq#.script </TD>
- <!--purpose--><TD>
- Each holds the obs-space and model-space output from assimilating one obs_seq.out file.
- It should be named according to the need for
- obs_diag to see a name with 'obs_' and a 4 digit
- number signifying it's place within the series of obs_seq.out files,
- i.e. obs_0002 for the second obs_seq.final of a series. </TD></TR>
-<TR><!--directory--><TD valign=top><pre> DART </pre> </TD>
- <!--creator--><TD valign=top> Exper_obsseq#.script </TD>
- <!--purpose--><TD>
- Holds the filter restart files (named filter_ic[.#]) created at the end of
- the filter run for this obs_seq.out. They're used by the next obs_seq.out
- file to restart.</TD></TR>
-<TR><!--directory--><TD valign=top><pre> CAM</pre> </TD>
- <!--creator--><TD valign=top> Exper_obsseq#.script </TD>
- <!--purpose--><TD>
- Holds the CAM initial file shells which carry along model fields which are not
- DART state vector fields (preventing the repeated re-spin-up of those variables)</TD></TR>
-<TR><!--directory--><TD valign=top><pre> CLM </pre> </TD>
- <!--creator--><TD valign=top> Exper_obsseq#.script </TD>
- <!--purpose--><TD>
- Same as CAM, but for Community Land Model initial files.</TD></TR>
-<TR><!--directory--><TD valign=top><pre> CICE </pre> </TD>
- <!--creator--><TD valign=top> Exper_obsseq#.script </TD>
- <!--purpose--><TD>
- Same as CAM, but for CICE model restart files, tarred by ensemble member.</TD></TR>
-<TR><!--directory--><TD valign=top><pre> H## </pre> </TD>
- <!--creator--><TD valign=top> advance_model.csh </TD>
- <!--purpose--><TD>
- Temporary storage for ensembles of CAM, CLM, CICE files
- to be averaged for analyses archiving by auto_diag2hpss_LSF.csh.</TD></TR>
-</TABLE>
-
-<BR>
-<pre>
-A typical pathname for a restart file in my case would be:
-/scratch/raeder/T21x80/Taper1/obs_0003/DART/filter_ic#
- | | | | restart file(s)
- | | | DART restart file directory
- | | Obs_seq (3rd obs_seq.out of a series starting at 1)
- | Experiment (reduced influence of obs above 150 hPa)
- Central directory (resolution x num_ens_members)
-</pre>
-
-<P>
-You may also want to make a subdirectory within Experiment
-for each set of obs_space postscript and .dat files created by obs_diag and matlab.
-</P>
-
-<!--===============================================-->
-<A NAME="HINTS"></A>
-<HR>
-<H2>Helpful Hints</H2>
-
-<P>
-In the following, MPI filter uses all of the requested processors.
-There is flexibility in how the ensemble of CAMs uses them.
-The choice of async and number of processors to use
-will depend on the memory available on each node,
-as well as the number of processors available.
-See also models/cam/doc/html/filter_async_modes.html in the DART code tree, after registering.
-</P>
-
-<P>
-For async = 2 use the ensemble size, available compute nodes, processors/node ,
-and memory/node to figure how many nodes to request.
-Make this request in job_mpi.csh.
-For example, on a machine with 8 processors/node, and running an assimilation
-with an ensemble of 80 members (recommended), it's efficient to request 5 (or 10) nodes.
-This will advance the single-process CAMs in 2 (or 1) batches of 40 (80).
-That's assuming that each node has the memory to accomodate 8 CAMs.
-</P>
-
-<P>
-async = 4 runs an ensemble of pure-MPI CAMs 1 at a time and is usually a poor choice for CAM
-assimilations because the start-up process for CAM is single process
-and takes significant time.
-So all but one of the processors wait a long time while CAM is setting itself up,
-then they all work for a short time to make the short forecast,
-and then repeat for the next ensemble member.
-</P>
-
-<P>
-async = 3 is part way between async = 2 and 4.
-It is part of an experimental version of the code which is in
-the general release yet.
-CAM must be compiled with pure OpenMP parallelism.
-Then the MPI filter can execute multiple CAMs simultaneously on several processors each.
-The start-up for each is still a single process,
-but a smaller fraction of the processors wait.
-This mode will make reasonably efficient use of hundreds of processors.
-</P>
-
-<P>
-Each batch of restart data can be saved to a mass store using (a modified)
-auto_re2hpss and retrieved using models/cam/full_experiment/hpss2restart.
-Execute the commands with no arguments to see instructions.
-Then package files of each ensemble member together, and then bundle batches
-of ensemble members together for efficient storage in a directory named
-similarly to the one where they exist on the main computer.
-</P>
-
-<!-- If you're not running job_mpi.csh as a batch job,
- run it as 'nohup ./job_mpi.csh >& /dev/null &', to protect the job from being cutoff
- by the closure of the window in which it was executed. -->
-
-<P>
-Modify and use alias 'rmtemp' to remove the temporary files from
-the central directory where the experiment is run, after a run bombs and
-before running another experiment.
-</P>
-<pre>
-alias rmtemp 'rm *_ud* *_ic[0-9]* cam_*_temp* c[al]minput_[1-9]*.nc \
- *control filter_ic_old* obs_seq.out times'
-</pre>
-<P>
-Needless to say, be careful that you don't name files you want to keep in such a way that
-they'll be deleted by this.
-</P>
-
-
-<!--===============================================-->
-<A NAME="SPACE"></A>
-<HR>
-<H2>Space Requirements</H2>
-
-<P>
-Space requirements (Mb per ensemble member) for several CAM resolutions.
-</P>
-
-<BR><BR>
-
-<TABLE border=0 cellpadding=3 width=100%>
-<TR><TH align=left>Resolution </TH>
- <TH align=left>filter_ic </TH>
- <TH align=left>CAM initial </TH>
- <TH align=left>CLM initial </TH>
- <TH align=left>Diagnostic (assuming no ensemble members and 1 day/output file)</TH></TR>
-<TR><TD>T5</TD><TD> .16 </TD><TD>.3 </TD><TD> .15 </TD><TD> 1.3 + obs_seq.final</TD></TR>
-<TR><TD>T21</TD><TD> 2.5 </TD><TD>4.5 </TD><TD> 1.4 </TD><TD> 21. + obs_seq.final</TD></TR>
-<TR><TD>T42</TD><TD> 10. </TD><TD>18. </TD><TD> 4.5 </TD><TD> 57. + "</TD></TR>
-<TR><TD>T85</TD><TD> 41. </TD><TD>74. </TD><TD> 15. </TD><TD> 342 + " </TD></TR>
-<TR><TD>FV1.9x2.5 CAM4</TD><TD> 17. </TD><TD>45. </TD><TD> 10. </TD><TD> 286. + " </TD></TR>
-<TR><TD>FV1.9x2.5 CAM5</TD><TD> 20. </TD><TD>125. </TD><TD> 58. </TD><TD> 286. + " </TD></TR>
-<TR><TD>FV0.9x1.25 CAM5 trop_mam3</TD><TD> 80. </TD><TD>500. </TD><TD> 205. </TD><TD> ??? + " </TD></TR>
-</TABLE>
-
-<P>
-obs_seq.final typically ranges from 50-150 Mb, independent of model
-resolution. Compression can meaningfully reduce the size of the NetCDF and
-obs_seq.final files for archiving.
-</P>
-
-<P>
-Useful terms found in this web page.
-</P>
-<TABLE border=0 cellpadding=3 width=100%>
-<TR><TH align=left>TERM </TH>
- <TH align=left>MEANING </TH></TR>
-
-<TR><!-- term --><TD valign=top>{Central}</TD>
- <!--meaning--><TD>The directory where filter runs and from which job_mpi.csh is submitted,
- if used. There should be enough disk space for all of the output. </TD></TR>
-<TR><!-- term --><TD valign=top>{Experiment}</TD>
- <!--meaning--><TD>The directory where the output from the assimilation of all obs_seq.out files
- will be put. </TD></TR>
-<TR><!-- term --><TD valign=top>{obs_#}</TD>
- <!--meaning--><TD>The sequence number (as defined in job_mpi.csh parameters) used to make
- a directory name, which will store the output of the assimilation of 1
- obs_seq.out file, e.g. obs_#### </TD></TR>
-</TABLE>
-
-<!--==================================================================-->
-<!-- Legalese & Metadata -->
-<!--==================================================================-->
-
-<A NAME="Legalese"></A>
-<HR>
-<H2>Terms of Use</H2>
-
-<P>
-DART software - Copyright 2004 - 2013 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">
-http://www.image.ucar.edu/DAReS/DART/DART_download</a>
-</P>
-
-<TABLE border=0 cellpadding=0 width=100% summary="">
-<TR><TD>Contact: </TD><TD> Kevin Raeder </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>
-
-<!--==================================================================-->
-
-</BODY>
-</HTML>
Added: DART/trunk/models/cam/doc/cubed_sphere_algorithm.pdf
===================================================================
(Binary files differ)
Property changes on: DART/trunk/models/cam/doc/cubed_sphere_algorithm.pdf
@@ Diff output truncated at 40000 characters. @@
More information about the Dart-dev
mailing list