[Dart-dev] DART/branches Revision: 12569
dart at ucar.edu
dart at ucar.edu
Mon Apr 30 15:03:23 MDT 2018
thoar at ucar.edu
2018-04-30 15:03:23 -0600 (Mon, 30 Apr 2018)
101
Adding support for DART QC == 8 vertical conversion failed.
In response to JIRA ticket DARTSUP-433
Modified: DART/branches/rma_trunk/assimilation_code/programs/obs_diag/threed_sphere/obs_diag.f90
===================================================================
--- DART/branches/rma_trunk/assimilation_code/programs/obs_diag/threed_sphere/obs_diag.f90 2018-04-30 18:03:01 UTC (rev 12568)
+++ DART/branches/rma_trunk/assimilation_code/programs/obs_diag/threed_sphere/obs_diag.f90 2018-04-30 21:03:23 UTC (rev 12569)
@@ -13,7 +13,9 @@
! 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
@@ -148,7 +150,8 @@
! input.nml:obs_kind_nml:[assimilate,evaluate]_these_obs_types
! 6 prior QC rejected
! 7 outlier rejected
-! 8+ reserved for future use
+! 8 failed vertical conversion
+! 9+ reserved for future use
!
! Some DART QC == 4 have meaningful posterior mean/spread (i.e. not MISSING)
! Anything with a DART QC == 5 has MISSING values for all DART copies
@@ -162,7 +165,7 @@
integer :: org_qc_index, dart_qc_index
integer :: qc_integer
-integer, parameter :: QC_MAX = 8
+integer, parameter :: QC_MAX = 9
integer, parameter :: QC_MAX_PRIOR = 3
integer, parameter :: QC_MAX_POSTERIOR = 1
integer, dimension(0:QC_MAX) :: qc_counter = 0
@@ -229,13 +232,15 @@
! Variables used to accumulate the statistics.
!-----------------------------------------------------------------------
-integer, parameter :: Ncopies = 22
+!>@todo must be a more clever way to relate the copy_names to the components
+
+integer, parameter :: Ncopies = 23
character(len=stringlength), dimension(Ncopies) :: copy_names = &
(/ 'Nposs ', 'Nused ', 'NbigQC ', 'NbadIZ ', 'NbadUV ', &
'NbadLV ', 'rmse ', 'bias ', 'spread ', 'totalspread', &
- 'NbadDARTQC ', 'observation', 'ens_mean ', &
- 'N_DARTqc_0 ', 'N_DARTqc_1 ', 'N_DARTqc_2 ', 'N_DARTqc_3 ', &
- 'N_DARTqc_4 ', 'N_DARTqc_5 ', 'N_DARTqc_6 ', 'N_DARTqc_7 ', 'N_trusted ' /)
+ 'NbadDARTQC ', 'observation', 'ens_mean ', 'N_trusted ', &
+ 'N_DARTqc_0 ', 'N_DARTqc_1 ', 'N_DARTqc_2 ', 'N_DARTqc_3 ', 'N_DARTqc_4 ', &
+ 'N_DARTqc_5 ', 'N_DARTqc_6 ', 'N_DARTqc_7 ', 'N_DARTqc_8' /)
type TLRV_type
! statistics by time-level-region-variable
@@ -255,6 +260,7 @@
real(r8), dimension(:,:,:,:), pointer :: observation, ens_mean
integer, dimension(:,:,:,:), pointer :: NDartQC_0, NDartQC_1, NDartQC_2, NDartQC_3
integer, dimension(:,:,:,:), pointer :: NDartQC_4, NDartQC_5, NDartQC_6, NDartQC_7
+ integer, dimension(:,:,:,:), pointer :: NDartQC_8
integer, dimension(:,:,:,:,:), pointer :: hist_bin => NULL()
end type TLRV_type
@@ -275,6 +281,7 @@
real(r8), dimension(:,:,:), pointer :: observation, ens_mean
integer, dimension(:,:,:), pointer :: NDartQC_0, NDartQC_1, NDartQC_2, NDartQC_3
integer, dimension(:,:,:), pointer :: NDartQC_4, NDartQC_5, NDartQC_6, NDartQC_7
+ integer, dimension(:,:,:), pointer :: NDartQC_8
end type LRV_type
! FIXME ... I have these things in global storage ... should not be passing as
@@ -774,8 +781,8 @@
! so I erred on the conservative side. TJH 24 Aug 2007
!--------------------------------------------------------------
- ! integer, parameter :: QC_MAX_PRIOR = 3
- ! integer, parameter :: QC_MAX_POSTERIOR = 1
+ ! REPEATED FOR REFERENCE integer, parameter :: QC_MAX_PRIOR = 3
+ ! REPEATED FOR REFERENCE integer, parameter :: QC_MAX_POSTERIOR = 1
! debug section for strange looking observations:
if ( 1 == 2 ) then
@@ -836,8 +843,8 @@
obs(1) = obs(1) *scale_factor(flavor)
pr_mean = prior_mean(1) *scale_factor(flavor)
po_mean = posterior_mean(1) *scale_factor(flavor)
- pr_sprd = prior_spread(1) *scale_factor(flavor)
- po_sprd = posterior_spread(1)*scale_factor(flavor)
+ pr_sprd = prior_spread(1) *scale_factor(flavor) ! standard deviations
+ po_sprd = posterior_spread(1)*scale_factor(flavor) ! standard deviations
!--------------------------------------------------------------
! (DEBUG) Summary of observation knowledge at this point
@@ -1185,6 +1192,7 @@
write(*,*) '# bad DART QC post : ',sum(poste%NbadDartQC)
write(*,*) '# priorQC 7 postQC 4 : ',num_ambiguous
write(*,*)
+write(*,*) '# trusted prior : ',sum(prior%Ntrusted)
write(*,*) '# prior DART QC 0 : ',sum(prior%NDartQC_0)
write(*,*) '# prior DART QC 1 : ',sum(prior%NDartQC_1)
write(*,*) '# prior DART QC 2 : ',sum(prior%NDartQC_2)
@@ -1193,8 +1201,9 @@
More information about the Dart-dev
mailing list