[Dart-dev] DART/branches Revision: 11504

dart at ucar.edu dart at ucar.edu
Tue Apr 18 10:45:19 MDT 2017


hendric at ucar.edu
2017-04-18 10:45:18 -0600 (Tue, 18 Apr 2017)
153
Adding some comments.  In the case of single file output,
only 'inserting' prior and posterior information if the
inflation values are from a namelist.




Modified: DART/branches/rma_output_files/assimilation_code/modules/assimilation/filter_mod.f90
===================================================================
--- DART/branches/rma_output_files/assimilation_code/modules/assimilation/filter_mod.f90	2017-04-18 16:03:19 UTC (rev 11503)
+++ DART/branches/rma_output_files/assimilation_code/modules/assimilation/filter_mod.f90	2017-04-18 16:45:18 UTC (rev 11504)
@@ -106,6 +106,7 @@
 ! inflation restart files
 logical :: output_inflation = .false.
 
+! Identifier for different copies for diagnostic files
 integer, parameter :: MEM_START     = 1
 integer, parameter :: MEM_END       = 2
 integer, parameter :: ENS_MEAN      = 3
@@ -115,6 +116,7 @@
 integer, parameter :: POSTINF_MEAN  = 7
 integer, parameter :: POSTINF_SD    = 8
 
+! Number of Stage Copies
 integer, parameter :: NUM_SCOPIES    = 8
 
 ! Ensemble copy numbers
@@ -137,10 +139,12 @@
 
 integer :: SPARE_PRIOR_SPREAD              = COPY_NOT_PRESENT
 
+! Module Global Variables for inflation
 logical :: do_prior_inflate     = .false.
 logical :: do_posterior_inflate = .false.
+type(adaptive_inflate_type) :: prior_inflate, post_inflate
 
-logical :: has_cycling                  = .false. ! filter will advance the model
+logical :: has_cycling          = .false. ! filter will advance the model
 
 !----------------------------------------------------------------
 ! Namelist input with default values
@@ -263,7 +267,6 @@
 type(obs_sequence_type)     :: seq
 type(time_type)             :: time1, first_obs_time, last_obs_time
 type(time_type)             :: curr_ens_time, next_ens_time, window_time
-type(adaptive_inflate_type) :: prior_inflate, post_inflate
 
 integer,    allocatable :: keys(:)
 integer(i8)             :: model_size
@@ -690,7 +693,7 @@
 
       call all_vars_to_all_copies(state_ens_handle)
 
-      ! updated mean and sd
+      ! updated mean and spread after the model advance
       call compute_copy_mean_sd(state_ens_handle, 1, ens_size, ENS_MEAN_COPY, ENS_SD_COPY)
 
       ! update so curr time is accurate.
@@ -730,7 +733,8 @@
 
    call trace_message('After  setup for next group of observations')
 
-   ! write out forecast file(s)
+   ! Write out forecast file(s). This contains the incoming ensemble members and potentially
+   ! mean, sd, inflation values if requested.
    if (get_stage_to_write('forecast')) then
       if ((output_interval > 0) .and. &
           (time_step_number / output_interval * output_interval == time_step_number)) then
@@ -790,8 +794,8 @@
    call timestamp_message('After  computing prior observation values')
    call     trace_message('After  computing prior observation values')
 
-   ! Do prior state space diagnostic output as required
-
+   ! Write out preassim diagnostic files if requested.  This contains potentially 
+   ! damped prior inflation values and the inflated ensemble.
    if (get_stage_to_write('preassim')) then
       if ((output_interval > 0) .and. &
           (time_step_number / output_interval * output_interval == time_step_number)) then
@@ -885,8 +889,8 @@
    endif
 
 
-   ! Do postassim state space output if requested
-
+   ! Write out postassim diagnostic files if requested.  This contains the assimilated ensemble 
+   ! and potentially damped posterior inflation and updated prior inflation.
    if (get_stage_to_write('postassim')) then
       if ((output_interval > 0) .and. &
           (time_step_number / output_interval * output_interval == time_step_number)) then
@@ -1001,9 +1005,9 @@
       endif  ! sd >= 0 or sd from restart file
    endif  ! if doing state space posterior inflate
 
-   ! updated posterior inflation values
+   ! Write out analysis diagnostic files if requested.  This contains the 
+   ! posterior infalted ensemble and updated {prior,posterior} inflation values
    if (get_stage_to_write('analysis')) then
-      print*, 'analysis', output_interval, time_step_number
       if ((output_interval > 0) .and. &
           (time_step_number / output_interval * output_interval == time_step_number)) then
 
@@ -1045,7 +1049,7 @@
 
 call trace_message('End of main filter assimilation loop, starting cleanup', 'filter:', -1)
 
-! output the last timestep in the case of cycling
+! Output the adjusted ensemble. If cycling only the last timestep is writen out


More information about the Dart-dev mailing list