[Dart-dev] DART/branches Revision: 12649

dart at ucar.edu dart at ucar.edu
Fri Jun 8 15:31:09 MDT 2018


thoar at ucar.edu
2018-06-08 15:31:09 -0600 (Fri, 08 Jun 2018)
75
These three are working - may need further testing (especially cartesian)




Modified: DART/branches/qc8/assimilation_code/programs/obs_diag/oned/obs_diag.f90
===================================================================
--- DART/branches/qc8/assimilation_code/programs/obs_diag/oned/obs_diag.f90	2018-06-08 19:38:44 UTC (rev 12648)
+++ DART/branches/qc8/assimilation_code/programs/obs_diag/oned/obs_diag.f90	2018-06-08 21:31:09 UTC (rev 12649)
@@ -9,9 +9,13 @@
 !-----------------------------------------------------------------------
 ! The programs defines a series of epochs (periods of time) and geographic
 ! regions and accumulates statistics for these epochs and regions.
+!
+! All 'possible' obs_kinds are treated separately.
 !-----------------------------------------------------------------------
 
-! In Atmospheric Science, 'spread' has units of standard deviations ...
+! In Atmospheric Science, 'spread' has units of standard deviation ...
+! In filter:obs_space_diagnostics() the 'spread' copies are converted to
+! standard deviations.
 !
 ! I should rename some of the variables I use as variances to reflect this.
 ! 'priorspred' should really be 'priorvar' since you have to accumulate variances
@@ -35,12 +39,12 @@
                              operator(*), operator(+), operator(-), &
                              operator(>), operator(<), operator(/), &
                              operator(/=), operator(<=), operator(>=)
-use    utilities_mod, only : open_file, register_module, &
+use    utilities_mod, only : open_file, close_file, register_module, &
                              file_exist, error_handler, E_ERR, E_WARN, E_MSG,  &
                              initialize_utilities, logfileunit, nmlfileunit,   &
                              find_namelist_in_file, check_namelist_read,       &
-                             nc_check, do_nml_file, do_nml_term, finalize_utilities, &
-                             next_file, get_next_filename
+                             nc_check, do_nml_file, do_nml_term,               &
+                             set_filename_list, finalize_utilities
 use         sort_mod, only : sort
 use   random_seq_mod, only : random_seq_type, init_random_seq, several_random_gaussians
 
@@ -56,7 +60,6 @@
 character(len=*), parameter :: revdate  = "$Date$"
 
 !---------------------------------------------------------------------
-!---------------------------------------------------------------------
 
 integer, parameter :: MaxRegions = 4
 integer, parameter :: MaxTrusted = 5
@@ -72,9 +75,7 @@
 type(obs_def_type)      :: obs_def
 type(location_type)     :: obs_loc
 
-character(len=256) :: obs_seq_in_file_name
-character(len=256), allocatable, dimension(:) :: obs_seq_filenames
-character(len = stringlength), dimension(MaxTrusted) :: trusted_obsname = 'null'
+character(len=stringlength), dimension(MaxTrusted) :: trusted_obsname = 'null'
 
 ! Storage with fixed size for observation space diagnostics
 real(r8), dimension(1) :: prior_mean, posterior_mean, prior_spread, posterior_spread
@@ -90,7 +91,7 @@
 ! variables used primarily/exclusively for the rank histogram
 integer               :: ens_size, rank_histogram_bin
 type(random_seq_type) :: ran_seq
-real(r8)              :: obs_err_var
+real(r8)              :: obs_error_variance
 
 character(len=stringlength) :: obs_seq_read_format
 logical :: pre_I_format
@@ -135,12 +136,9 @@
 ! FIXME can there be a case where the prior is evaluated and the posterior QC is wrong
 ! FIXME ... there are cases where the prior fails but the posterior works ...
 
-integer             :: org_qc_index, dart_qc_index
-integer             :: qc_integer
-integer, parameter  :: QC_MAX = 9
+integer             :: org_qc_index, dart_qc_index, qc_value
 integer, parameter  :: QC_MAX_PRIOR     = 3
 integer, parameter  :: QC_MAX_POSTERIOR = 1
-integer, dimension(0:QC_MAX) :: qc_counter = 0
 real(r8), allocatable, dimension(:) :: qc
 real(r8), allocatable, dimension(:) :: copyvals
 
@@ -151,11 +149,15 @@
 integer, parameter, dimension(2) ::    good_poste_qcs = (/ 0, 1       /)
 integer :: numqcvals
 
+integer, parameter :: max_num_input_files = 50
+
+character(len=256) :: obs_filename
+
 !-----------------------------------------------------------------------
 ! Namelist with default values
 !
-character(len=256) :: obs_sequence_name = "obs_seq.final"
-character(len=256) :: obs_sequence_list = ""
+character(len=256) :: obs_sequence_name(max_num_input_files) = ''
+character(len=256) :: obs_sequence_list = ''
 
 character(len=stringlength), dimension(MaxTrusted) :: trusted_obs = 'null'
 
@@ -232,7 +234,7 @@
 real(r8) :: rlocation
 
 integer  :: obsindex, i, iunit, ierr, io, ireg
-integer  :: seconds, days, Nepochs, Nfiles
+integer  :: seconds, days, Nepochs, num_input_files


More information about the Dart-dev mailing list