[Dart-dev] DART/branches Revision: 11802
dart at ucar.edu
dart at ucar.edu
Fri Jul 7 11:20:25 MDT 2017
nancy at ucar.edu
2017-07-07 11:20:17 -0600 (Fri, 07 Jul 2017)
152
updates for cycling scripts from Soyoung Ha (NCAR/MMM) and
Ryan Torn (U Albany). remove wakeup_filter; add files
needed for MPAS, and updated README.
Modified: DART/branches/rma_trunk/models/mpas_atm/README
===================================================================
--- DART/branches/rma_trunk/models/mpas_atm/README 2017-07-07 16:58:41 UTC (rev 11801)
+++ DART/branches/rma_trunk/models/mpas_atm/README 2017-07-07 17:20:17 UTC (rev 11802)
@@ -4,139 +4,54 @@
#
# DART $Id$
-Hints for porting a new model to DART:
+This directory contains the interface code and the shell scripts to
+run the MPAS-ATM atmospheric model with DART ensemble data assimilation.
-copy this template directory into a DART/models/xxx
-directory for your new model.
+The 'work' directory is where the executables are built.
+Run 'quickbuild.csh' to compile all the executables.
+'quickbuild.csh -nompi' builds the serial versions only,
+'quickbuild.csh -mpi' is the default and builds MPI (parallel) versions
+of the filter and any other executables that can run on multiple CPUs.
-if the coordinate system for the model is 1d, you're ok as-is.
-if model coordinates are 3d, edit the work/path_names_* files
-and change location/oned/* to location/threed_sphere/*
+The 'shell_scripts' directory contains a collection of scripts that
+support the workflow for cycling. The ensemble of MPAS-ATM models have
+to run to advance the time, then 'filter' runs to do data assimilation
+on the ensemble of MPAS restart files, then the ensemble of MPAS models
+advances again, then 'filter' runs, in a cycle.
-edit all the work/path_names_* files and change models/template/xxx
-to use the name of the directory for your model.
+The 'data' directory contains a single small example MPAS-ATM restart
+file along with some stream files for an MPAS run. See the README.txt
+for more details.
-try ./quickbuild.csh and everything should compile at this point.
+Here are more details on how the information in the input and output
+files are handled in a cycling experiment.
-the required subroutines are these:
-public :: get_model_size, &
- adv_1step, &
- get_state_meta_data, &
- model_interpolate, &
- get_model_time_step, &
- end_model, &
- static_init_model, &
- init_time, &
- init_conditions, &
- nc_write_model_atts, &
- nc_write_model_vars, &
- pert_model_state, &
- get_close_maxdist_init, &
- get_close_obs_init, &
- get_close_obs, &
- ens_mean_for_model
+Very many thanks to Soyoung Ha (NCAR/MMM) and Ryan Torn (U Albany) for
+developing and documenting these scripts.
-in addition, model_mod can contain subroutines that are used
-for other utility programs and we recommend at least the following
-routines be added to model_mod.f90:
-public :: model_file_to_dart_vector, & ! converter
- dart_vector_to_model_file, & ! converter
- get_gridsize, & ! called by everyone
- get_model_filename, & ! called by both (set_model_filename?)
- get_state_time, & ! model_to_sv, static_init_model
- set_state_time !(?) ! sv_to_model, trans_time
+"filter_in.txt" : member1/restart.nc
+ | member2/restart.nc
+ |
+ | as input_state_file_list in &filter_nml
+ V
+ <filter> - produces the EnKF analyses
+ |
+ | as output_state_file_list in &filter_nml
+ V
+"filter_out.txt" : member1/analysis.nc
+ | member2/analysis.nc
+ |
+ | as input_file_list in &update_mpas_states_nml
+ V
+<update_mpas_states> - updates analysis vector in MPAS restart files for all members
+ |
+ | as output_file_list in &update_mpas_states_nml
+ V
+"filter_in.txt" : member1/restart.nc
+ | member2/restart.nc
+ | (Warning: restart.nc are overwritten for analysis fields.)
+ | same as input_state_file_list in &filter_nml
+ V
+advance_model.csh ensemble_member_number
-
-edit the model mod and fill in the routines in this order:
-
-1. static_init_model() - make it read in the grid information
- and the number of variables that will be in the state vector
- (fill in the progvar derived type). fill in the model_size
- variable. as part of this work, fill in the get_gridsize()
More information about the Dart-dev
mailing list