[Dart-dev] [6527] DART/trunk/models/CESM/shell_scripts: This script enforces the use of the CESM_DART_config because the CAM
nancy at ucar.edu
nancy at ucar.edu
Thu Oct 17 15:08:59 MDT 2013
Revision: 6527
Author: thoar
Date: 2013-10-17 15:08:59 -0600 (Thu, 17 Oct 2013)
Log Message:
-----------
This script enforces the use of the CESM_DART_config because the CAM
strategy requires it. The CESM_DART_config script is now automatically
run during CESM1_1_1_hybrid and runs the no_assimilate.csh script to
relink the latest CAM initial files to the required static names after
each model advance.
A new script 'stage_cesm_files' is created in the caseroot directory
that can be used to help restart a failed run.
The CESM_DART_config script copies the bits required for a perfect_model
experiment as well as the no_assimilate experiment.
Modified Paths:
--------------
DART/trunk/models/CESM/shell_scripts/CESM1_1_1_hybrid
DART/trunk/models/CESM/shell_scripts/CESM_DART_config
Added Paths:
-----------
DART/trunk/models/CESM/shell_scripts/no_assimilate.csh
-------------- next part --------------
Modified: DART/trunk/models/CESM/shell_scripts/CESM1_1_1_hybrid
===================================================================
--- DART/trunk/models/CESM/shell_scripts/CESM1_1_1_hybrid 2013-10-17 17:40:33 UTC (rev 6526)
+++ DART/trunk/models/CESM/shell_scripts/CESM1_1_1_hybrid 2013-10-17 21:08:59 UTC (rev 6527)
@@ -26,13 +26,15 @@
# data volume is quite large and you should become comfortable using CESM's restart
# capability to re-stage files in your RUN directory
#
+# CESM/DART requires some modifications to the CESM source code EVEN IF YOU ARE NOT
+# assimilating. The modifications for CAM require a modification to the
+# CESM ${CASE}.run script. The modifications will invoke a DART script that will
+# either assimilate or 'do nothing'. It is stronly recommended that you configure
+# the ${CASE}.run script to 'do nothing' initially.
+#
# CASEROOT/CESM_DART_config will augment the CESM case with the required setup
-# and configuration to perform a DART assimilation. CASEROOT/CESM_DART_config
-# will insert a few dozen lines into the ${CASE}.run script after it makes a backup
-# copy. This, and the required setup, can be run at a later date. e.g. you can
-# advance an ensemble from 2004-01-01 to 2004-02-01 and then run
-# CESM_DART_config to augment the existing run script, modify STOP_N to 6 hours,
-# and start assimilating observations when CESM stops at 2004-02-01 06Z ...
+# and configuration to perform a DART assimilation and modify the ${CASE}.run script
+# as mentioned previously - after it makes a backup copy.
#
# This script relies heavily on the information in:
# http://www.cesm.ucar.edu/models/cesm1.1/cesm/doc/usersguide/book1.html
@@ -59,7 +61,7 @@
#
# -- Run this script.
#
-# -- If you want to run DART; read, understand, and execute ${CASEROOT}/CESM_DART_config
+# -- Read, understand, and execute ${CASEROOT}/CESM_DART_config
#
# -- Submit the job using ${CASEROOT}/${CASE}.submit
#
@@ -135,11 +137,10 @@
# THIS IS THE LOCATION of the 'reference case'.
-set stagedir = /glade/p/image/CESM_initial_ensemble/rest/2004-01-10-00000
+setenv stagedir /glade/p/image/CESM_initial_ensemble/rest/2004-01-10-00000
# ==============================================================================
-# runtime settings -- How many assimilation steps will be done after this one
-# plus archiving options
+# runtime settings
#
# resubmit How many job steps to run on continue runs (will be 0 initially)
# stop_option Units for determining the forecast length between assimilations
@@ -270,11 +271,10 @@
${MOVE} temp.$$ ${caseroot}/CESM_DART_config
chmod 755 ${caseroot}/CESM_DART_config
else
- echo "WARNING: the script to configure for data assimilation is not available."
- echo " CESM_DART_config should be present locally or in"
- echo " ${dartroot}/models/CESM/shell_scripts/"
- echo " You can stage this script later, but you must manually edit it"
- echo " to reflect the location of the DART code tree."
+ echo "ERROR: the script to configure for data assimilation is not available."
+ echo " CESM_DART_config MUST be present locally or in"
+ echo " ${dartroot}/models/CESM/shell_scripts/"
+ exit -2
endif
# ==============================================================================
@@ -378,6 +378,7 @@
./xmlchange RUN_REFCASE=$run_refcase
./xmlchange RUN_REFDATE=$run_refdate
./xmlchange RUN_REFTOD=$run_reftod
+./xmlchange BRNCH_RETAIN_CASENAME=FALSE
./xmlchange GET_REFCASE=FALSE
./xmlchange EXEROOT=${exeroot}
@@ -390,8 +391,16 @@
./xmlchange PIO_TYPENAME=pnetcdf
-# This sets the ocean coupling time to 6 hours.
+# COUPLING discussion.
+# http://bugs.cgd.ucar.edu/show_bug.cgi?id=1740
+# "In summary, users should ensure that the following is true,
+# ATM_NCPL = LND_NCPL = ICE_NCPL >= ROF_NCPL >= OCN_NCPL"
+#
+# OCN_NCPL == 4 sets the ocean coupling time to 6 hours.
# All related namelist settings are based on this value.
+# OCN_NCPL is # coupling intervals per NCPL_BASE_PERIOD (default 'day')
+
+./xmlchange ROF_NCPL=8
./xmlchange OCN_NCPL=4
# There is no compset that has everything we want,
@@ -461,12 +470,18 @@
breaksw
endsw
+# This is the part that modifies the run script to allow CESM to advance
+# correctly given the modifications necessary for CAM. It also copies several
+# required DART files to the caseroot directory.
+
+./CESM_DART_config
+
# ==============================================================================
# Update source files.
# Ideally, using DART would not require any modifications to the model source.
# Until then, this script accesses sourcemods from a hardwired location.
# If you have additional sourcemods, they will need to be merged into any DART
-# mods and put in the SourceMods subdirectory found in the 'case' directory.
+# mods and put in the SourceMods subdirectory found in the 'caseroot' directory.
# ==============================================================================
if ( -d ~/${cesmtag}/SourceMods ) then
@@ -536,20 +551,20 @@
# following the CESM strategy for 'inst_string'
set inst_string = `printf _%04d $inst`
-
# ===========================================================================
set fname = "user_nl_cam${inst_string}"
# ===========================================================================
# For a HOP TEST ... empty_htapes = .false.
# For a HOP TEST ... use a default fincl1
- # FIXME ... add documentation for configuring CAM history files
+ # inithist == 'ENDOFRUN' ensures that CAM writes an initial file every time it stops.
+ # fincl1,nhtfrq,mfilt all control the history file containing a REQUIRED PHIS field.
- echo " inithist = '6-HOURLY'" >> ${fname}
- echo " ncdata = 'cam_initial${inst_string}.nc'" >> ${fname}
- echo " empty_htapes = .true. " >> ${fname}
- echo " fincl1 = 'PHIS:I' " >> ${fname}
- echo " nhtfrq = -$assim_n " >> ${fname}
- echo " mfilt = 1 " >> ${fname}
+ echo " inithist = 'ENDOFRUN'" >> ${fname}
+ echo " ncdata = 'cam_initial${inst_string}.nc'" >> ${fname}
+ echo " empty_htapes = .true. " >> ${fname}
+ echo " fincl1 = 'PHIS:I' " >> ${fname}
+ echo " nhtfrq = -$assim_n " >> ${fname}
+ echo " mfilt = 1 " >> ${fname}
# ===========================================================================
set fname = "user_nl_clm${inst_string}"
@@ -587,18 +602,21 @@
# ===========================================================================
# POP Namelists
- # GIVEN: init_ts_option = 'ccsm_hybrid' when RUN_TYPE=hybrid, then
- #
- # init_ts_suboption = 'data_assim' --> non bit-for-bit restarting (assimilation mode)
+ # init_ts_suboption = 'data_assim' for non bit-for-bit restarting (assimilation mode)
# init_ts_suboption = 'rest' --> default behavior
#
- # No matter the setting of init_ts_suboption, POP always uses the
- # 'data_assim' behavior when RUN_TYPE=hybrid and CONTINUE_RUN=FALSE.
- # As soon as CONTINUE_RUN=TRUE, the value becomes important.
+ # README:
+ # Configuring the contents of the history files for POP is best explained in
+ # the section marked "POP2: TAVG Settings" in the cesm1_1_1 pop2 namelist documentation
+ # http://www.cesm.ucar.edu/models/cesm1.1/cesm/doc/modelnl/nl_pop2.html
#
- # For a HOP TEST ... Would like to have restart files every day, not just for end.
- # For a HOP TEST (untested)... tavg_file_freq_opt = 'nmonth' 'nday' 'once'"
+ # and the CESM-specific documentation for the tavg output variables in the pop2
+ # online documentation:
+ # http://www.cesm.ucar.edu/models/cesm1.1/pop2/doc/users/node78.html
#
+ # In CESM1_1_1 keep the values for tavg_file_freq_opt and tavg_freq_opt identical.
+ # pop2/trunk_tags/cesm_pop_2_1_20130412 explains the issue.
+ #
# DEFAULT values for these are:
# tavg_file_freq_opt = 'nmonth' 'nmonth' 'once'
# tavg_freq_opt = 'nmonth' 'nday' 'once'
@@ -606,14 +624,10 @@
# The second entry indicates we get a monthly average as it is being created.
# The third entry indicates we get a daily timeslice
#
- # IFF values for these are:
- # tavg_file_freq_opt = 'nmonth' 'never' 'never'
- # tavg_freq_opt = 'nmonth' 'never' 'never'
- # The first entry indicates we get a monthly average once a month, and thats all we get..
-
+ # Default copies of SourceMods/src.pop2/ocn.*.tavg.csh files are provided in the
+ # DART_SourceMods_cesm1_1_1.tar bundle.
+
echo "init_ts_suboption = 'data_assim'" >> $fname
- echo "tavg_file_freq_opt = 'nmonth' 'never' 'never'" >> $fname
- echo "tavg_freq_opt = 'nmonth' 'never' 'never'" >> $fname
# ===========================================================================
set fname = "user_nl_cice${inst_string}"
@@ -639,36 +653,133 @@
# ==============================================================================
# Stage the restarts now that the run directory exists
# THIS IS THE STAGING SECTION - MAKE SURE THIS MATCHES THE NAMELISTS.
-# POP/CAM/CICE read from pointer files. The others use namelist values initially.
+# POP reads from pointer files. The others use namelist values initially.
# ==============================================================================
-cat << EndOfText >! stage_initial_cesm_files
-#!/bin/sh
+cat << EndOfText >! stage_cesm_files
+#!/bin/csh -f
+# This script can be used to help restart an experiment from any previous step.
+# The files are copied to the RUN directory.
+# Set the 'restart_time' variable below to define when to restart the experiment.
+# The value of the CESM variable 'env_run.xml:CONTINUE_RUN' is used to determine
+# the origin of the files.
-cd ${rundir}
-
+echo 'Copying the required files to the run directory.'
+echo 'No matter what, make sure the restart_time is set to the desired time.'
echo ''
-echo 'Copying the restart files from the staging directory'
-echo 'into the CESM run directory and relinking the CAM static names.'
+echo 'With CONTINUE_RUN=FALSE, the files are copied from the initial ensemble directory.'
+echo 'When CONTINUE_RUN=TRUE, the files are copied from the short-term archive restart directory.'
+echo 'If the short-term archiver is OFF, all the files are already in the RUN directory and'
+echo 'just the pointer files need to be updated.'
echo ''
-${COPY} ${stagedir}/* .
+cd ${caseroot}
+source ./Tools/ccsm_getenv || exit -2
+cd ${RUNDIR}
-let inst=1
-while ((\$inst <= $num_instances)); do
- inst_string=\`printf _%04d \$inst\`
+set restart_time = $RUN_REFDATE-$RUN_REFTOD
- ${LINK} ${stagedir}/${run_refcase}.cam\${inst_string}.i.${run_refdate}-${run_reftod}.nc cam_initial\${inst_string}.nc
+#----------------------------------------------------------------------
+# This block copies over a set of restart files from
+# this experiment and exits. Intended use to restart a failed run.
+#----------------------------------------------------------------------
- let inst+=1
-done
+echo "continue_run is \$CONTINUE_RUN"
+if ( \$CONTINUE_RUN == TRUE ) then
+ if ( \$DOUT_S == TRUE ) then
+
+ # the restarts should be in the short term archive directory
+ # http://www.cesm.ucar.edu/models/cesm1.1/cesm/doc/usersguide/x1631.html#running_ccsm_restart_back
+ ${COPY} \$DOUT_S_ROOT/rest/\${restart_time}/* .
+
+ else
+
+ # All the required files must still be in the run directory.
+ # Just need to update the pointer files.
+
+ @ inst=1
+ while (\$inst <= $num_instances)
+
+ set inst_string = \`printf _%04d \$inst\`
+
+ echo "${CASE}.cpl.r.\${restart_time}.nc" >! rpointer.drv
+ echo "${CASE}.clm2\${inst_string}.r.\${restart_time}.nc" >! rpointer.lnd\${inst_string}
+ echo "${CASE}.cice\${inst_string}.r.\${restart_time}.nc" >! rpointer.ice\${inst_string}
+ echo "${CASE}.rtm\${inst_string}.r.\${restart_time}.nc" >! rpointer.rof\${inst_string}
+ echo "${CASE}.cam\${inst_string}.r.\${restart_time}.nc" >! rpointer.atm\${inst_string}
+
+ echo "${CASE}.pop\${inst_string}.ro.\${restart_time}" >! rpointer.ocn\${inst_string}.ovf
+ echo "${CASE}.pop\${inst_string}.r.\${restart_time}.nc" >! rpointer.ocn\${inst_string}.restart
+ echo "RESTART_FMT=nc" >> rpointer.ocn\${inst_string}.restart
+
+ if ( -e rpointer.ocn\${inst_string}.tavg ) then
+ echo "${CASE}.pop\${inst_string}.rh.\${restart_time}.nc" >! rpointer.ocn\${inst_string}.tavg
+ endif
+ if ( -e rpointer.ocn\${inst_string}.tavg.2 ) then
+ echo "${CASE}.pop\${inst_string}.rh.nday1.\${restart_time}.nc" >! rpointer.ocn\${inst_string}.tavg.2
+ endif
+
+ @ inst ++
+ end
+
+ endif
+
+ # Now that we're guaranteed to have the cam initial file, link to our hardwired name.
+ @ inst=1
+ while (\$inst <= $num_instances)
+ set inst_string = \`printf _%04d \$inst\`
+ ${LINK} ${CASE}.cam\${inst_string}.i.\${restart_time}.nc cam_initial\${inst_string}.nc
+ @ inst ++
+ end
+
+ exit 0
+endif
+
+#----------------------------------------------------------------------
+# This block prepares the initial run directory for a startup run.
+# The CLM, CICE, ROF namelists specify a relative path for the initial file.
+# The CAM namelist specifies a static name.
+# POP uses pointer files.
+#
+# The reference case may more instances than we need,
+# and it certainly has more files than we need.
+# This stages only the minimum number of instances and files.
+#
+# Remember - in a hybrid case - when CONTINUE_RUN = FALSE,
+# the run_refdate and the time in the filenames can be unrelated.
+#----------------------------------------------------------------------
+
+set filedir = ${stagedir}
+
+@ inst=1
+while (\$inst <= $num_instances)
+
+ set inst_string = \`printf _%04d \$inst\`
+
+ echo ''
+ echo "Staging restarts for instance \$inst of $num_instances"
+
+ ${LINK} \${filedir}/${run_refcase}.clm2\${inst_string}.r.\${restart_time}.nc .
+ ${LINK} \${filedir}/${run_refcase}.cice\${inst_string}.r.\${restart_time}.nc .
+ ${LINK} \${filedir}/${run_refcase}.rtm\${inst_string}.r.\${restart_time}.nc .
+ ${LINK} \${filedir}/${run_refcase}.cam\${inst_string}.i.\${restart_time}.nc cam_initial\${inst_string}.nc
+ ${LINK} \${filedir}/${run_refcase}.pop\${inst_string}.r.\${restart_time}.nc .
+ ${LINK} \${filedir}/${run_refcase}.pop\${inst_string}.ro.\${restart_time} .
+
+ echo "${run_refcase}.pop\${inst_string}.ro.\${restart_time}" >! rpointer.ocn\${inst_string}.ovf
+ echo "${run_refcase}.pop\${inst_string}.r.\${restart_time}.nc" >! rpointer.ocn\${inst_string}.restart
+ echo "RESTART_FMT=nc" >> rpointer.ocn\${inst_string}.restart
+
+ @ inst ++
+end
+
exit 0
EndOfText
-chmod 0755 stage_initial_cesm_files
+chmod 0755 stage_cesm_files
-./stage_initial_cesm_files
+./stage_cesm_files
# ==============================================================================
# build
@@ -701,25 +812,36 @@
echo ' #BSUB -R "select[scratch_ok > 0]"'
echo " around line 9, delete it."
echo ""
-echo "3) If you want to assimilate 'right away', configure and execute"
-echo " the ${caseroot}/CESM_DART_config script."
+echo "3) For reasons not clear to me, the very first advance (i.e. STOP_N)"
+echo " (CONTINUE_RUN=FALSE) must be longer than *AT LEAST 2 TIMES* the coupling"
+echo " frequency between the atmosphere and ocean."
+echo " If coupling once a day, the first advance MUST be at least 48 hours."
+echo " If coupling 4 times a day, the first advance MUST be at least 12 hours."
+echo " After that, STOP_N can be as short as a single coupling frequency."
echo ""
-echo "3) Verify the contents of env_run.xml and submit the CESM job:"
+echo "4) If you want to simply advance CESM without using DART, make sure the"
+echo " ${case}.run script references the 'no_assimilate.csh' script."
+echo " If you want to assimilate, reference the 'assimilate.csh' script."
+echo " The default action is to assimilate."
+echo ""
+echo "5) Verify the contents of env_run.xml and submit the CESM job:"
echo " ./${case}.submit"
echo ""
-echo "4) After the job has run, check to make sure it worked and that"
+echo "6) After the job has run, check to make sure it worked and that"
echo " a: POP is creating netCDF restart files,"
echo " b: the right restart files exist in the run directory,"
echo " c: (if you're running DART) the archive dart/hist directory has the DART output,"
echo " d: everything is working correctly ..."
echo ""
-echo "5) To extend the run in $assim_n '"$stop_option"' steps,"
+echo "7) To extend the run in $assim_n '"$stop_option"' steps,"
echo " change the env_run.xml variables:"
echo ""
echo " ./xmlchange CONTINUE_RUN=TRUE"
echo " ./xmlchange RESUBMIT=<number_of_cycles_to_run>"
echo " ./xmlchange STOP_N=$assim_n"
echo ""
+echo " and"
+echo " ./${case}.submit"
exit 0
Modified: DART/trunk/models/CESM/shell_scripts/CESM_DART_config
===================================================================
--- DART/trunk/models/CESM/shell_scripts/CESM_DART_config 2013-10-17 17:40:33 UTC (rev 6526)
+++ DART/trunk/models/CESM/shell_scripts/CESM_DART_config 2013-10-17 21:08:59 UTC (rev 6527)
@@ -134,7 +134,7 @@
# ==============================================================================
# The standard CESM short-term archiving script may need to be altered
-# to archive addtional or subsets of things, or to reduce the amount of
+# to archive additional or subsets of things, or to reduce the amount of
# data that is sent to the long-term archive. Put a version of st_archive.sh
# in ${DARTROOT}/models/CESM/shell_scripts when/if necessary
@@ -146,12 +146,21 @@
endif
${COPY} ${DARTROOT}/models/CESM/shell_scripts/st_archive.sh Tools/
+${COPY} ${DARTROOT}/shell_scripts/shell_exit.sh .
+
${COPY} ${DARTROOT}/models/CESM/shell_scripts/assimilate.csh .
-${COPY} ${DARTROOT}/shell_scripts/shell_exit.sh .
${COPY} ${DARTROOT}/models/CESM/shell_scripts/cam_assimilate.csh .
${COPY} ${DARTROOT}/models/CESM/shell_scripts/pop_assimilate.csh .
${COPY} ${DARTROOT}/models/CESM/shell_scripts/clm_assimilate.csh .
+${COPY} ${DARTROOT}/models/CESM/shell_scripts/perfect_model.csh .
+${COPY} ${DARTROOT}/models/CESM/shell_scripts/cam_perfect_model.csh .
+${COPY} ${DARTROOT}/models/CESM/shell_scripts/clm_perfect_model.csh .
+${COPY} ${DARTROOT}/models/CESM/shell_scripts/pop_perfect_model.csh .
+
+${COPY} ${DARTROOT}/models/CESM/shell_scripts/no_assimilate.csh .
+${COPY} ${DARTROOT}/models/CESM/shell_scripts/cam_no_assimilate.csh .
+
# ==============================================================================
# Stage the DART executables in the CESM execution root directory: EXEROOT
# If you recompile the DART code (maybe to support more observation types)
@@ -177,27 +186,31 @@
fi
done
-${COPY} ${DARTROOT}/models/cam/work/cam_to_dart ${EXEROOT}/.
-${COPY} ${DARTROOT}/models/cam/work/dart_to_cam ${EXEROOT}/.
-${COPY} ${DARTROOT}/models/cam/work/filter ${EXEROOT}/filter_cam
-${COPY} ${DARTROOT}/models/cam/work/input.nml cam_input.nml
+${COPY} ${DARTROOT}/models/cam/work/cam_to_dart ${EXEROOT}/.
+${COPY} ${DARTROOT}/models/cam/work/dart_to_cam ${EXEROOT}/.
+${COPY} ${DARTROOT}/models/cam/work/filter ${EXEROOT}/filter_cam
+${COPY} ${DARTROOT}/models/cam/work/perfect_model_obs ${EXEROOT}/perfect_model_obs_cam
+${COPY} ${DARTROOT}/models/cam/work/input.nml cam_input.nml
-${COPY} ${DARTROOT}/models/clm/work/clm_to_dart ${EXEROOT}/.
-${COPY} ${DARTROOT}/models/clm/work/dart_to_clm ${EXEROOT}/.
-${COPY} ${DARTROOT}/models/clm/work/filter ${EXEROOT}/filter_clm
-${COPY} ${DARTROOT}/models/clm/work/input.nml clm_input.nml
+${COPY} ${DARTROOT}/models/clm/work/clm_to_dart ${EXEROOT}/.
+${COPY} ${DARTROOT}/models/clm/work/dart_to_clm ${EXEROOT}/.
+${COPY} ${DARTROOT}/models/clm/work/filter ${EXEROOT}/filter_clm
+${COPY} ${DARTROOT}/models/clm/work/perfect_model_obs ${EXEROOT}/perfect_model_obs_clm
+${COPY} ${DARTROOT}/models/clm/work/input.nml clm_input.nml
-${COPY} ${DARTROOT}/models/POP/work/pop_to_dart ${EXEROOT}/.
-${COPY} ${DARTROOT}/models/POP/work/dart_to_pop ${EXEROOT}/.
-${COPY} ${DARTROOT}/models/POP/work/filter ${EXEROOT}/filter_pop
-${COPY} ${DARTROOT}/models/POP/work/input.nml pop_input.nml
+${COPY} ${DARTROOT}/models/POP/work/pop_to_dart ${EXEROOT}/.
+${COPY} ${DARTROOT}/models/POP/work/dart_to_pop ${EXEROOT}/.
+${COPY} ${DARTROOT}/models/POP/work/filter ${EXEROOT}/filter_pop
+${COPY} ${DARTROOT}/models/POP/work/perfect_model_obs ${EXEROOT}/perfect_model_obs_pop
+${COPY} ${DARTROOT}/models/POP/work/input.nml pop_input.nml
-${COPY} ${DARTROOT}/models/CESM/work/cesm_to_dart ${EXEROOT}/.
-${COPY} ${DARTROOT}/models/CESM/work/dart_to_cesm ${EXEROOT}/.
-${COPY} ${DARTROOT}/models/CESM/work/filter ${EXEROOT}/filter_cesm
-${COPY} ${DARTROOT}/models/CESM/work/input.nml input.nml
+${COPY} ${DARTROOT}/models/CESM/work/cesm_to_dart ${EXEROOT}/.
+${COPY} ${DARTROOT}/models/CESM/work/dart_to_cesm ${EXEROOT}/.
+${COPY} ${DARTROOT}/models/CESM/work/filter ${EXEROOT}/filter_cesm
+${COPY} ${DARTROOT}/models/CESM/work/perfect_model_obs ${EXEROOT}/perfect_model_obs_cesm
+${COPY} ${DARTROOT}/models/CESM/work/input.nml input.nml
-# The first time this is executed, the update namlist script does not exist.
+# The first time this is executed, the update namelist script does not exist.
if [[ -x update_dart_namelists ]]; then
./update_dart_namelists
@@ -404,7 +417,7 @@
if ( $num_instances == 1 ) then
sed -e "s#DARTSCRIPTNAME#perfect_model.csh#" < temp.$$ >! add_to_run.txt
else
- sed -e "s#DARTSCRIPTNAME#assimilate.csh#" < temp.$$ >! add_to_run.txt
+ sed -e "s#DARTSCRIPTNAME#no_assimilate.csh#" < temp.$$ >! add_to_run.txt
endif
# Now that the "here" document is created,
@@ -459,6 +472,11 @@
echo ""
echo "4) Inflation files? Observation files for the time of interest?"
echo ""
+echo "5) Make sure the ${CASE}.run script calls 'assimilate.csh' if you desire."
+echo " The default behavior is to _not_ invoke DART and simply run CESM."
+echo ""
+echo "6) You can use ${CASEROOT}/stage_cesm_files"
+echo " to stage files to restart a run."
exit 0
Added: DART/trunk/models/CESM/shell_scripts/no_assimilate.csh
===================================================================
--- DART/trunk/models/CESM/shell_scripts/no_assimilate.csh (rev 0)
+++ DART/trunk/models/CESM/shell_scripts/no_assimilate.csh 2013-10-17 21:08:59 UTC (rev 6527)
@@ -0,0 +1,31 @@
+#!/bin/csh
+#
+# DART software - Copyright 2004 - 2013 UCAR. This open source software is
+# provided by UCAR, "as is", without charge, subject to all terms of use at
+# http://www.image.ucar.edu/DAReS/DART/DART_download
+#
+# DART $Id$
+
+# The DART sourcemods for CAM require that the cam 'initial' files are used
+# instead of the restart files. The name of the initial file is read from
+# the cam namelist file. To avoid having to change the namelist setting, DART
+# uses a static filename in the namelist. After each successful model advance,
+# the new initial file must be linked to the static file name.
+# This is done in ${CASEROOT}/cam_no_assimilate.csh
+#
+# No action is required for the other model components.
+
+echo "`date` -- BEGIN CESM-DART NO-ASSIMILATE"
+
+${CASEROOT}/cam_no_assimilate.csh
+if ( $status != 0 ) exit $status
+
+echo "`date` -- END CESM-DART NO-ASSIMILATE"
+
+exit 0
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+
Property changes on: DART/trunk/models/CESM/shell_scripts/no_assimilate.csh
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Date Rev Author HeadURL Id
Added: svn:eol-style
+ native
More information about the Dart-dev
mailing list