[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