[Dart-dev] DART/branches Revision: 11878

dart at ucar.edu dart at ucar.edu
Fri Aug 4 11:36:21 MDT 2017


raeder at ucar.edu
2017-08-04 11:36:18 -0600 (Fri, 04 Aug 2017)
1587
The main changes are to mesh Manhattan's hard wired file names 
with CESM's file name convention.

setup_hybrid and setup_advanced:
   Replaced user_nl_cam section with comments about updating to CESM2 forcing
      files and namelist mechanism for activating them.
   Removed modifications of case.lt_archive, since it appears to not be use in CESM2.
   Updated modification of env_archive.xml for 6 stages, no cpl.r, da.log changes.
   Added check_finidat_year_consistency = .false. to user_nl_clm_####.
   New WACCM env variable section, to pass to DART_config.
assimilate.csh; 
   Adapted it to handle all 6 stages of filter output.
   Write all data files to CESM naming convention:
      $CASE.$component.$type.[$string.]$date[$ending]
         type = e  (for compenent 'esp'), or i for initial file mean, sd.
         string = filter output filename = ${stage}{_inf}_{mean,sd,member_####,...},obs_seq.final.
      This is described more fully in JIRA ticket 361 and Google doc
         https://docs.google.com/document/d/1WpAA6vdNMikDd5qr7eBqZ2J8r1ug0zAvHJjDfjiz_i0/edit?ts=5797c671#
         Revision: ----------------------
   Moved the population of the Hide directory to the end of assimilate.csh to:
      prevent st_archive from archiving 2 restart sets at last job cycle,
      clean up the beginning of the script.
   Replaced complicated shell variable use with simple, clearer variables.

DART_config
   New WACCM 'preferred DART namelist values' section
Added SourceMods/src.drv/seq_io_mod.F90 to fix the NetCDF file size
   limit on the cpl.r file (Git issue #1705).




Modified: DART/branches/rma_trunk/models/cam-fv/shell_scripts/DART_config
===================================================================
--- DART/branches/rma_trunk/models/cam-fv/shell_scripts/DART_config	2017-08-03 22:03:32 UTC (rev 11877)
+++ DART/branches/rma_trunk/models/cam-fv/shell_scripts/DART_config	2017-08-04 17:36:18 UTC (rev 11878)
@@ -44,6 +44,10 @@
 # Each model component has their own number of instances.
 # ==============================================================================
 
+echo "==================="
+echo "Starting DART_config"
+echo "==================="
+
 if ( ! -e ./xmlquery ) then
    echo "ERROR: $0 must be run from a CASEROOT directory".
    exit -1
@@ -223,6 +227,7 @@
 
 # multi_cplr: Can't use NINST_ATM because it has been set to the number of 
 #             instances per coupler, 1 for now.
+
 cat << EndOfText >! update_dart_namelists
 #!/bin/sh
 
@@ -241,18 +246,23 @@
 wq
 ex_end
 
-# If we are using WACCM (i.e. WCCM or WACCM) we have preferred values
-echo "${COMPSET}" | grep CCM
-if [[ \$? == 0 ]]; then 
-   sed -e "/ vert_normalization_scale_height /c\ vert_normalization_scale_height = 2.5" \
-       -e "/ highest_obs_pressure_Pa /c\ highest_obs_pressure_Pa = 0.0001" \
-       -e "/ highest_state_pressure_Pa /c\ highest_state_pressure_Pa = 0.01" \
-       -e "/ vert_coord /c\ vert_coord = 'log_invP'" \
-       input.nml > input.nml.waccm || exit 1
-   mv input.nml.waccm input.nml || exit 1
+# If we are using WACCM{-X} (i.e. WCxx or WXxx) we have preferred values
+# $waccm comes from setup*
+if [[ "\$waccm" = "true" ]]; then 
+   list=\`grep '^[ ]*vert_coord' input.nml | sed -e "s#[=,]##g"\`
+   if [[ "\$list[3]" = "log_invP" ]]; then
+      list=`grep '^[ ]*vert_normalization_scale_height' input.nml | sed -e "s#[=,]##g"`
+      if [[ "\$list[2]" != "1.5" ]]; then
+         echo "WARNING!  input.nml is not using 1.5 for vert_normalization_scale_height."
+         echo "          Use a different value only if you definitely want to. "
+      fi
+   else
+      echo "WARNING!  input.nml is not using log_invP for vert_coord."
+      echo "          log_invP is highly recommended for WACCM{-X}"
+   fi
 else
    echo "Apparently not configured for WACCM"
-   echo "COMPSET is $COMPSET"
+   echo "COMPSET is \$COMPSET"
 fi
 
 exit 0

Modified: DART/branches/rma_trunk/models/cam-fv/shell_scripts/cesm2_0_beta05/assimilate.csh
===================================================================
--- DART/branches/rma_trunk/models/cam-fv/shell_scripts/cesm2_0_beta05/assimilate.csh	2017-08-03 22:03:32 UTC (rev 11877)
+++ DART/branches/rma_trunk/models/cam-fv/shell_scripts/cesm2_0_beta05/assimilate.csh	2017-08-04 17:36:18 UTC (rev 11878)
@@ -45,7 +45,7 @@
 
 setenv save_all_inf TRUE
 # A switch to signal how often to save the stages' ensemble members: NONE, RESTART_TIMES, ALL
-setenv save_stages TRUE
+setenv save_stages RESTART_TIMES
 
 set BASEOBSDIR = BOGUSBASEOBSDIR
 
@@ -96,8 +96,80 @@
 endsw
 
 #=========================================================================
-# Block 1: Preliminary clean up, which can run in the background.
+# Block 1: Populate a run-time directory with the input needed to run DART.
 #=========================================================================
+
+echo "`date` -- BEGIN COPY BLOCK"
+
+if (  -e   ${CASEROOT}/input.nml ) then
+   # ${COPY} ${CASEROOT}/input.nml .
+   # Put a pared down copy (no comments) of input.nml in this assimilate_cam directory.
+   sed -e "/#/d;/^\!/d;/^[ ]*\!/d" ${CASEROOT}/input.nml >! input.nml  || exit 39
+else
+   echo "ERROR ... DART required file ${CASEROOT}/input.nml not found ... ERROR"
+   echo "ERROR ... DART required file ${CASEROOT}/input.nml not found ... ERROR"
+   exit -2
+endif
+
+echo "`date` -- END COPY BLOCK"
+
+# If possible, use the round-robin approach to deal out the tasks.
+
+if ($?TASKS_PER_NODE) then
+   if ($#TASKS_PER_NODE > 0) then
+      ${MOVE} input.nml input.nml.$$
+      sed -e "s#layout.*#layout = 2#" \
+          -e "s#tasks_per_node.*#tasks_per_node = $TASKS_PER_NODE#" \
+          input.nml.$$ >! input.nml || exit 40


More information about the Dart-dev mailing list