[Dart-dev] DART/branches Revision: 12123

dart at ucar.edu dart at ucar.edu
Mon Nov 20 10:34:37 MST 2017


thoar at ucar.edu
2017-11-20 10:34:32 -0700 (Mon, 20 Nov 2017)
131
Fixed bug with identity observations in the 1D obs_diag,
All workshop_setup scripts also now build obs_diag.
(all consistent now)




Modified: DART/branches/rma_trunk/CHANGELOG
===================================================================
--- DART/branches/rma_trunk/CHANGELOG	2017-11-20 17:14:25 UTC (rev 12122)
+++ DART/branches/rma_trunk/CHANGELOG	2017-11-20 17:34:32 UTC (rev 12123)
@@ -580,6 +580,20 @@
 - Improved some error messages in location_io_mod and state_structure_mod
 
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++ Nov 20 2017 :: 1D obs_diag fix, 1D power forward operator $Revision$
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+- fixed a problem with tutorial section 18 - bad URL.
+
+- fixed a problem with the 1D version of the observation diagnostics program
+  when trying to run diagnostics on identity observations.
+
+- all models with a workshop_setup.csh now build the same set of programs.
+  (some/most did not build obs_diag - which is used in the tutorial)
+
+- added a 1D power forward operator.
+  
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 + MMM DD YYYY :: summary of next changes                    $Revision$
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 

Modified: DART/branches/rma_trunk/assimilation_code/programs/obs_diag/oned/obs_diag.f90
===================================================================
--- DART/branches/rma_trunk/assimilation_code/programs/obs_diag/oned/obs_diag.f90	2017-11-20 17:14:25 UTC (rev 12122)
+++ DART/branches/rma_trunk/assimilation_code/programs/obs_diag/oned/obs_diag.f90	2017-11-20 17:34:32 UTC (rev 12123)
@@ -28,7 +28,7 @@
 use      obs_def_mod, only : obs_def_type, get_obs_def_error_variance, get_obs_def_time, &
                              get_obs_def_location, get_obs_def_type_of_obs
 use     obs_kind_mod, only : max_defined_types_of_obs, get_name_for_type_of_obs, &
-                             QTY_STATE_VARIABLE
+                             RAW_STATE_VARIABLE
 use     location_mod, only : location_type, get_location, operator(/=), LocationDims
 use time_manager_mod, only : time_type, set_time, get_time, print_time, &
                              print_date, set_calendar_type, get_date, &
@@ -41,7 +41,6 @@
                              find_namelist_in_file, check_namelist_read,       &
                              nc_check, do_nml_file, do_nml_term, finalize_utilities, &
                              next_file, get_next_filename
-                             
 use         sort_mod, only : sort
 use   random_seq_mod, only : random_seq_type, init_random_seq, several_random_gaussians
 
@@ -51,15 +50,15 @@
 implicit none
 
 ! version controlled file description for error handling, do not edit
-character(len=256), parameter :: source   = &
+character(len=*), parameter :: source   = &
    "$URL$"
-character(len=32 ), parameter :: revision = "$Revision$"
-character(len=128), parameter :: revdate  = "$Date$"
+character(len=*), parameter :: revision = "$Revision$"
+character(len=*), parameter :: revdate  = "$Date$"
 
 !---------------------------------------------------------------------
 !---------------------------------------------------------------------
 
-integer, parameter :: MaxRegions = 3
+integer, parameter :: MaxRegions = 4
 integer, parameter :: MaxTrusted = 5
 integer, parameter :: stringlength = 32
 
@@ -161,11 +160,11 @@
 ! index 3 == region 3 == [0.5, 1.0)
 
 integer :: Nregions = MaxRegions
-real(r8), dimension(MaxRegions) :: lonlim1 = (/ 0.0_r8, 0.0_r8, 0.5_r8 /)
-real(r8), dimension(MaxRegions) :: lonlim2 = (/ 1.0_r8, 0.5_r8, 1.0_r8 /)
+real(r8), dimension(MaxRegions) :: lonlim1 = (/ 0.0_r8, 0.0_r8, 0.5_r8, -1.0_r8 /)
+real(r8), dimension(MaxRegions) :: lonlim2 = (/ 1.0_r8, 0.5_r8, 1.0_r8, -1.0_r8 /)
 
 character(len=6), dimension(MaxRegions) :: reg_names = &
-                                   (/ 'whole ','yin   ','yang  '/)
+                                   (/ 'whole ','yin   ','yang  ','bogus '/)
 
 namelist /obs_diag_nml/ obs_sequence_name, obs_sequence_list,  &
                         bin_width_days, bin_width_seconds,     &
@@ -564,13 +563,15 @@
          endif
 
          ! Check to see if it is an identity observation.
-         ! Redefine identity observations as flavor = QTY_STATE_VARIABLE
-         !>@todo use get_state_meta_data() to determine exactly. Could then
+         ! Redefine identity observations as flavor = RAW_STATE_VARIABLE
+         !>@todo use get_state_meta_data() to determine state quantity at the index.
+         !> Still have a problem determining what state type best relates
+         !> to the observation kind - but it would allow us to
          !> do this for all models, regardless of dimensionality.
 
          if ( flavor < 0 ) then
             Nidentity = Nidentity + 1
-            flavor = QTY_STATE_VARIABLE
+            flavor = RAW_STATE_VARIABLE
          endif
 
          !--------------------------------------------------------------


More information about the Dart-dev mailing list