[Dart-dev] DART/branches Revision: 12620
dart at ucar.edu
dart at ucar.edu
Mon Jun 4 22:09:19 MDT 2018
thoar at ucar.edu
2018-06-04 22:09:19 -0600 (Mon, 04 Jun 2018)
351
Support DART QC = 8
The html documentation is more correct.
The html files are structured very similarly to enable spotting differences.
The source codes are structured very similarly to enable spotting differences.
Should reorder the routines in the 3D codes to be ordered like in the 1D code
to facilitate differencing, but have not done so yet.
Modified: DART/branches/gigg/assimilation_code/programs/obs_diag/oned/obs_diag.f90
===================================================================
--- DART/branches/gigg/assimilation_code/programs/obs_diag/oned/obs_diag.f90 2018-06-04 23:35:53 UTC (rev 12619)
+++ DART/branches/gigg/assimilation_code/programs/obs_diag/oned/obs_diag.f90 2018-06-05 04:09:19 UTC (rev 12620)
@@ -88,11 +88,11 @@
integer :: num_obs_types
! 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
+integer :: ens_size, rank_histogram_bin
+type(random_seq_type) :: ran_seq
+real(r8) :: obs_err_var
-character(len=129) :: obs_seq_read_format
+character(len=stringlength) :: obs_seq_read_format
logical :: pre_I_format
integer, dimension(2) :: key_bounds
@@ -370,7 +370,7 @@
! Declares and initializes the prior and poste structures.
!----------------------------------------------------------------------
-call PrepareVariables()
+call InitializeVariables()
!----------------------------------------------------------------------
! Open file for histogram of innovations, as a function of standard deviation.
@@ -526,9 +526,12 @@
call SetIndices()
!====================================================================
- EpochLoop : do iepoch = 1, Nepochs
+ ! Loop over all potential time periods ... the observation sequence
+ ! files are not required to be in any particular order.
!====================================================================
+ EpochLoop : do iepoch = 1, Nepochs
+
call get_obs_time_range(seq, binedges(1,iepoch), binedges(2,iepoch), key_bounds, &
num_obs_in_epoch, out_of_range )
@@ -581,12 +584,6 @@
trusted = .false.
endif
- if ( use_zero_error_obs ) then
- obs_err_var = 0.0_r8
- else
- obs_err_var = get_obs_def_error_variance(obs_def)
- endif
-
! Check to see if it is an identity observation.
! Redefine identity observations as flavor = RAW_STATE_VARIABLE
!>@todo use get_state_meta_data() to determine state quantity at the index.
@@ -599,6 +596,12 @@
flavor = RAW_STATE_VARIABLE
endif
+ if ( use_zero_error_obs ) then
+ obs_err_var = 0.0_r8
+ else
+ obs_err_var = get_obs_def_error_variance(obs_def)
+ endif
+
!--------------------------------------------------------------
! retrieve observation prior and posterior means and spreads
!--------------------------------------------------------------
@@ -618,7 +621,7 @@
! Convert the DART QC data to an integer and create histogram
!--------------------------------------------------------------
- call get_qc(observation, qc) ! populates 'qc' with ALL qc values
+ call get_qc(observation, qc)
if ( dart_qc_index > 0 ) then
qc_integer = min( nint(qc(dart_qc_index)), QC_MAX )
@@ -764,8 +767,8 @@
write(*,*) '# identity : ',Nidentity
write(*,*) '# bad DART QC prior : ',sum(prior%NbadDartQC)
write(*,*) '# bad DART QC post : ',sum(poste%NbadDartQC)
-write(*,*) '# TRUSTED : ',sum(poste%Ntrusted)
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)
@@ -776,6 +779,7 @@
write(*,*) '# prior DART QC 7 : ',sum(prior%NDartQC_7)
write(*,*) '# prior DART QC 8 : ',sum(prior%NDartQC_8)
write(*,*)
+write(*,*) '# trusted poste : ',sum(poste%Ntrusted)
write(*,*) '# poste DART QC 0 : ',sum(poste%NDartQC_0)
write(*,*) '# poste DART QC 1 : ',sum(poste%NDartQC_1)
write(*,*) '# poste DART QC 2 : ',sum(poste%NDartQC_2)
@@ -785,6 +789,7 @@
write(*,*) '# poste DART QC 6 : ',sum(poste%NDartQC_6)
write(*,*) '# poste DART QC 7 : ',sum(poste%NDartQC_7)
write(*,*) '# poste DART QC 8 : ',sum(poste%NDartQC_8)
+write(*,*)
More information about the Dart-dev
mailing list