[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)
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