[Dart-dev] DART/branches Revision: 11165

dart at ucar.edu dart at ucar.edu
Tue Feb 28 08:00:35 MST 2017


raeder at ucar.edu
2017-02-28 08:00:34 -0700 (Tue, 28 Feb 2017)
140
Several updates from scripts_cesm2_0: {in,out}put_state_file_list improvements.
Return of accidential specific data to BOGUS placeholders.




Modified: DART/branches/rma_trunk/models/cam-fv/scripts_cesm1_5/assimilate.csh
===================================================================
--- DART/branches/rma_trunk/models/cam-fv/scripts_cesm1_5/assimilate.csh	2017-02-28 14:35:51 UTC (rev 11164)
+++ DART/branches/rma_trunk/models/cam-fv/scripts_cesm1_5/assimilate.csh	2017-02-28 15:00:34 UTC (rev 11165)
@@ -41,7 +41,7 @@
       set TASKS_PER_NODE = `echo $LSB_SUB_RES_REQ | sed -ne '/ptile/s#.*\[ptile=\([0-9][0-9]*\)]#\1#p'`
       setenv MP_DEBUG_NOTIMEOUT yes
 
-      set BASEOBSDIR = /glade/p/image/Observations/NCEP+ACARS+GPS
+      set BASEOBSDIR = BOGUSBASEOBSDIR
       set  LAUNCHCMD = mpirun.lsf
    breaksw
 
@@ -52,7 +52,7 @@
       set   LINK = '/usr/local/bin/ln -fvs'
       set REMOVE = '/usr/local/bin/rm -fr'
 
-      set BASEOBSDIR = /glade/p/image/Observations/NCEP+ACARS+GPS
+      set BASEOBSDIR = BOGUSBASEOBSDIR
       set LAUNCHCMD  = mpirun.lsf
    breaksw
 
@@ -63,7 +63,7 @@
       set   LINK = 'ln -fvs'
       set REMOVE = 'rm -fr'
 
-      set BASEOBSDIR = /glade/p/image/Observations/NCEP+ACARS+GPS
+      set BASEOBSDIR = BOGUSBASEOBSDIR
       set LAUNCHCMD  = "aprun -n $NTASKS"
 
    breaksw
@@ -142,7 +142,7 @@
    echo '$rm_log['$rm_slot']='$rm_log[$rm_slot]
 
    if ( $sec_o_day !~ '00000' || \
-       ($sec_o_day =~ '00000' && $day_o_month % 4 != 0) ) then
+       ($sec_o_day =~ '00000' && $day_o_month % BOGUS_save_every_Mth != 0) ) then
       echo "Removing unneeded restart file set from RUNDIR: "
       echo "    $rm_date[1]"'*.{r,rs,rh0,h0,i}.*'${day_o_month}-${sec_o_day}
       # Remove member restarts (but not DART output)
@@ -149,6 +149,7 @@
       # Note that *cpl.ha.* is retained, and any h#, #>0.
       #        $CASE                          DD          -SSSSS
       $REMOVE  $rm_date[1]*.{r,rs,rh0,h0,i}.*${day_o_month}-${sec_o_day}* &
+      $REMOVE  $rm_date[1].*[0-9].{input,preassim,postassim}*${day_o_month}-${sec_o_day}* &
 
       # Remove log files: *YYMMDD-HHMMSS.  
       $REMOVE  *$rm_log[$rm_slot]*  &
@@ -439,6 +440,8 @@
    else
       # Look for the output from the previous assimilation
       # RMA; file 'type' output_priorinf is hardwired according to DART2.0 naming convention.
+      # Yes, we want the 'output' or 'postassim' version of the prior inflation,
+      # because the 'preassim' version has not been updated by this cycle's assimilation.
       if ($STAGE_output == TRUE) then
          set stage = 'output'
       else if ($STAGE_postassim == TRUE) then
@@ -446,7 +449,7 @@
       endif
 
       # If inflation files exists, use them as input for this assimilation
-      (ls -rt1 $CASE.cam.${stage}* | tail -n 2 >! latestfile) > & /dev/null
+      (ls -rt1 $CASE.cam.${stage}_priorinf* | tail -n 2 >! latestfile) > & /dev/null
       set nfiles = `cat latestfile | wc -l`
       if ( $nfiles > 0 ) then
          set latest_mean = `head -n1 latestfile`
@@ -526,7 +529,7 @@
 # &filter_nml:           direct_netcdf_read      = .true.
 # &filter_nml:           direct_netcdf_write     = .true.
 # &filter_nml:           overwrite_state_input   = .true.
-# &filter_nml:           input_restart_file_list       = 'restart_files.txt'
+# &filter_nml:           input_state_file_list       = 'restart_files.txt'
 # &filter_nml:           obs_sequence_in_name    = 'obs_seq.out'
 # &filter_nml:           obs_sequence_out_name   = 'obs_seq.final'
 # &filter_nml:           init_time_days          = -1,
@@ -549,23 +552,30 @@
 ${LINK} $ATM_HISTORY_FILENAME cam_phis.nc
 
 # RMA
-# Put the names of the CAM initial files, from which filter will get the model states, 
-# into a text file, whose name is provided to filter in filter_nml:input_restart_file_list.
-set line = `grep input_restart_file_list input.nml | sed -e "s#[=,'\.]# #g"`
+# Put the names of the CAM initial files, from which filter will get the model state(s), 
+# into a text file, whose name is provided to filter in filter_nml:input_state_file_list.
+# If filter will create an ensemble from a single state, it's fine (and convenient)
+# to put the whole list of files in input_state_file_list.  Filter will just use the first.
+# NOTE: if the files in input_state_file_list are CESM format (all vars and all meta data), 
+#       then they may end up with a different structure than the preassim and postassim stage
+#       output written by filter.  This can be prevented (at the cost of more disk space)
+#       by copying the CESM format input files into the names filter will use, e.g.
+#       $case.cam_0001.i.$date.nc --> preassim_member_0001.nc.  
+#       Filter will replace the state variables with updated versions, but leave the other
+#       variables and all metadata unchanged.
+set line = `grep input_state_file_list input.nml | sed -e "s#[=,'\.]# #g"`
 echo "$line"
 set input_file_list = $line[2]
 
-ls -1 ${CASE}.cam_*.i.${ATM_DATE_EXT}.nc >! $input_file_list
+ls -1 ${CASE}.cam_[0-9][0-9][0-9][0-9].i.${ATM_DATE_EXT}.nc >! $input_file_list
 
-# If the file names in $output_restart_file_list = names in $input_restart_file_list,


More information about the Dart-dev mailing list