[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