[Dart-dev] DART/branches Revision: 11609
dart at ucar.edu
dart at ucar.edu
Fri May 5 16:10:41 MDT 2017
nancy at ucar.edu
2017-05-05 16:10:40 -0600 (Fri, 05 May 2017)
339
merge in rma_trunk changes, and make wrf reproduce compared
to the previous rma_trunk. you MUST set:
&assim_tools_nml
convert_all_state_verticals_first = .true.
convert_all_obs_verticals_first = .true.
lanai_bitwise = .false.
to match the previous rma_trunk tests.
i believe this is ready to merge back onto the
rma_trunk.
Index: DART/branches/model_mod_changes
===================================================================
--- DART/branches/model_mod_changes 2017-05-05 21:51:08 UTC (rev 11608)
+++ DART/branches/model_mod_changes 2017-05-05 22:10:40 UTC (rev 11609)
Property changes on: DART/branches/model_mod_changes
___________________________________________________________________
Modified: svn:mergeinfo
## -29,7 +29,7 ##
/DART/branches/rma_sprint:8101-8172
/DART/branches/rma_state_structure_test_dir:9478-9682
/DART/branches/rma_state_structure_unit_test:9697-10274
-/DART/branches/rma_trunk:11409-11552
+/DART/branches/rma_trunk:11409-11608
/DART/branches/rma_trunk_clamping:8792-8807
/DART/branches/rma_trunk_filename:8017-8163
/DART/branches/rma_trunk_get_state_fun:8574-8602
Modified: DART/branches/model_mod_changes/assimilation_code/location/threed_cartesian/location_mod.f90
===================================================================
--- DART/branches/model_mod_changes/assimilation_code/location/threed_cartesian/location_mod.f90 2017-05-05 21:51:08 UTC (rev 11608)
+++ DART/branches/model_mod_changes/assimilation_code/location/threed_cartesian/location_mod.f90 2017-05-05 22:10:40 UTC (rev 11609)
@@ -840,6 +840,11 @@
allocate(gc%box%loc_box(num))
gc%box%loc_box(:) = -1
+! Allocate the storage for the grid dependent boxes
+allocate(gc%box%count(nx,ny,nz), gc%box%start(nx,ny,nz))
+gc%box%count = -1
+gc%box%start = -1
+
! Set the value of num_locs in the structure
gc%num = num
@@ -1281,11 +1286,11 @@
dist = 1e38_r8 ! something big and positive.
! the list of locations in the loc() argument must be the same
-! as the list of locations passed into get_close_obs_init(), so
+! as the list of locations passed into get_close_init(), so
! gc%num and size(loc) better be the same. if the list changes,
! you have to destroy the old gc and init a new one.
if (size(loc_list) /= gc%num) then
- write(errstring,*)'loc() array must match one passed to get_close_obs_init()'
+ write(errstring,*)'loc() array must match one passed to get_close_init()'
call error_handler(E_ERR, 'find_nearest_boxes', errstring, source, revision, revdate)
endif
Modified: DART/branches/model_mod_changes/assimilation_code/modules/assimilation/assim_tools_mod.f90
===================================================================
--- DART/branches/model_mod_changes/assimilation_code/modules/assimilation/assim_tools_mod.f90 2017-05-05 21:51:08 UTC (rev 11608)
+++ DART/branches/model_mod_changes/assimilation_code/modules/assimilation/assim_tools_mod.f90 2017-05-05 22:10:40 UTC (rev 11609)
@@ -94,6 +94,10 @@
logical :: close_obs_caching = .true.
real(r8), parameter :: small = epsilon(1.0_r8) ! threshold for avoiding NaNs/Inf
+! true if we have multiple vert choices and we're doing vertical localization
+! (make it a local variable so we don't keep making subroutine calls)
+logical :: is_doing_vertical_conversion = .false.
+
character(len = 255) :: msgstring, msgstring2, msgstring3
! Need to read in table for off-line based sampling correction and store it
@@ -164,6 +168,24 @@
character(len=256) :: obs_impact_filename = ''
logical :: allow_any_impact_values = .false.
+! These next two only affect models with multiple options
+! for vertical localization:
+!
+! "convert_state" is false by default; it depends on the model
+! what is faster - do the entire state up front and possibly
+! do unneeded work, or do the conversion during the assimilation
+! loop. we think this depends heavily on how much of the state
+! is going to be adjusted by the obs. for a global model
+! we think false may be better; for a regional model with
+! a lot of obs and full coverage true may be better.
+!
+! "convert_obs" is true by default; in general it seems to
+! be better for each task to convert the obs vertical before
+! going into the loop but again this depends on how many
+! obs per task and whether the mean is distributed or
+! replicated on each task.
+logical :: convert_all_state_verticals_first = .false.
+logical :: convert_all_obs_verticals_first = .true.
! Not in the namelist; this var disables the experimental
! linear and spherical case code in the adaptive localization
@@ -189,8 +211,9 @@
output_localization_diagnostics, localization_diagnostics_file, &
special_localization_obs_types, special_localization_cutoffs, &
allow_missing_in_clm, distribute_mean, close_obs_caching, &
- adjust_obs_impact, obs_impact_filename, &
- allow_any_impact_values, lanai_bitwise ! don't document these last two for now
+ adjust_obs_impact, obs_impact_filename, allow_any_impact_values, &
+ convert_all_state_verticals_first, convert_all_obs_verticals_first, &
+ lanai_bitwise ! don't document this one -- only used for regression tests
!============================================================================
@@ -288,99 +311,11 @@
More information about the Dart-dev
mailing list