[Dart-dev] DART/branches Revision: 10928

dart at ucar.edu dart at ucar.edu
Fri Jan 20 14:05:26 MST 2017


thoar at ucar.edu
2017-01-20 14:05:26 -0700 (Fri, 20 Jan 2017)
1015
Trying to fix all the 'Missing ranges' errors generated while trying to merge 
the current state of the trunk to the mizzi branch.

The error message was: 
svn: E195016: Reintegrate can only be used if revisions 4680 through 10927 were previously merged from https://svn-dares-dart.cgd.ucar.edu/DART/branches/mizzi to the reintegrate source, but this is not the case:

  DART/trunk
    Missing ranges: /DART/branches/mizzi:5955,5957,5959,5968,6002-6010,7025-7027,7036-7043
  DART/trunk/adaptive_inflate
    Missing ranges: /DART/branches/mizzi/adaptive_inflate:7039,7041
  DART/trunk/assim_tools
    Missing ranges: /DART/branches/mizzi/assim_tools:7039,7041
  DART/trunk/assim_tools/assim_tools_mod.f90
    Missing ranges: /DART/branches/mizzi/assim_tools/assim_tools_mod.f90:7039,7041
...

And the solution I am trying is to do stuff like:
cd /glade/scratch/thoar/wrf_chem_dart/assim_tools
svn merge -c7034,7041 https://svn-dares-dart.cgd.ucar.edu/DART/trunk/assim_tools

for all of the reported missing ranges.




Index: DART/branches/mizzi/adaptive_inflate
===================================================================
--- DART/branches/mizzi/adaptive_inflate	2017-01-20 19:08:38 UTC (rev 10927)
+++ DART/branches/mizzi/adaptive_inflate	2017-01-20 21:05:26 UTC (rev 10928)

Property changes on: DART/branches/mizzi/adaptive_inflate
___________________________________________________________________
Modified: svn:mergeinfo
## -1,6 +1,9 ##
+/DART/branches/NOGAPS/adaptive_inflate:6328-10846
+/DART/branches/cam/adaptive_inflate:6639-7729
 /DART/branches/development/adaptive_inflate:5955-6255
 /DART/branches/gitm/adaptive_inflate:5143-6215
 /DART/branches/gitm_lanai/adaptive_inflate:6571-6652
 /DART/branches/helen/adaptive_inflate:5995-6161
 /DART/branches/inf_restart:4784-4812
-/DART/trunk/adaptive_inflate:4680-7370
\ No newline at end of property
+/DART/branches/trunk_with_cam_style/adaptive_inflate:9473-9540
+/DART/trunk/adaptive_inflate:4680-10927
\ No newline at end of property
Modified: DART/branches/mizzi/adaptive_inflate/adaptive_inflate_mod.f90
===================================================================
--- DART/branches/mizzi/adaptive_inflate/adaptive_inflate_mod.f90	2017-01-20 19:08:38 UTC (rev 10927)
+++ DART/branches/mizzi/adaptive_inflate/adaptive_inflate_mod.f90	2017-01-20 21:05:26 UTC (rev 10928)
@@ -247,9 +247,11 @@
       ! if inflation array is already on PE0, just figure out the
       ! largest value in the array and we're done.
       if (owner == 0) then
-         call prepare_to_read_from_vars(ens_handle)
-         minmax_mean(1) = minval(ens_handle%vars(:, owners_index))
-         minmax_mean(2) = maxval(ens_handle%vars(:, owners_index))
+         if (ens_handle%my_pe == 0) then
+            call prepare_to_read_from_vars(ens_handle)
+            minmax_mean(1) = minval(ens_handle%vars(:, owners_index))
+            minmax_mean(2) = maxval(ens_handle%vars(:, owners_index))
+         endif
       else
          ! someone else has the inf array.  have the owner send the min/max
          ! values to PE0.  after this point only PE0 has the right value
@@ -269,9 +271,11 @@
       ! if inflation sd array is already on PE0, just figure out the
       ! largest value in the array and we're done.
       if (owner == 0) then
-         call prepare_to_read_from_vars(ens_handle)
-         minmax_sd(1) = minval(ens_handle%vars(:, owners_index))
-         minmax_sd(2) = maxval(ens_handle%vars(:, owners_index))
+         if (ens_handle%my_pe == 0) then
+            call prepare_to_read_from_vars(ens_handle)
+            minmax_sd(1) = minval(ens_handle%vars(:, owners_index))
+            minmax_sd(2) = maxval(ens_handle%vars(:, owners_index))
+         endif
       else
          ! someone else has the sd array.  have the owner send the min/max
          ! values to PE0.  after this point only PE0 has the right value
@@ -360,28 +364,51 @@
    trim(det), trim(tadapt), trim(sadapt), trim(akind)
 call error_handler(E_MSG, trim(label) // ' inflation:', msgstring, source, revision, revdate)
 
-! if inflation was set from a namelist, that message has already been
-! printed (further up in this routine).  for values set from a restart
-! file, if the inflation flavor is 2, the values printed are the min and
-! max from the entire array.  for flavors 1 and 3 there is only a single
-! value to print out.
+! if inflation was set from a namelist a message with the values has been
+! printed (further up in this routine).  for values set from a restart file
+! we now know the min/max values, so print them out here. 
+! if the inflation flavor is 2 there are 2 values: the min and max from the 
+! state-vector-sized array.  for flavors 1 and 3 there is only a single value.
+! also check for bad values (missing_r8s should not be found in the inflation files).
+! Only checking for missing_r8 for state space inflation.
 if (inf_flavor > 0) then
-   if (my_task_id()==0 .and. mean_from_restart) then
+   if (mean_from_restart .and. inf_flavor > 1) then
+      ! if my task owns the mean/sd, test for any missing_r8 and error out if found
+      call get_copy_owner_index(ss_inflate_index, owner, owners_index)
+      if (owner == ens_handle%my_pe) then
+         if (any(ens_handle%vars(:, owners_index) == MISSING_R8)) then
+            call error_handler(E_ERR, 'adaptive_inflate_init', 'illegal missing values found in inflation mean file', &
+               source, revision, revdate)
+         endif
+      endif
+   endif
+
+   if (sd_from_restart .and. inf_flavor > 1) then
+      call get_copy_owner_index(ss_inflate_sd_index, owner, owners_index)
+      if (owner == ens_handle%my_pe)  then
+         if (any(ens_handle%vars(:, owners_index) == MISSING_R8)) then
+            call error_handler(E_ERR, 'adaptive_inflate_init', 'illegal missing values found in inflation sd file', &
+               source, revision, revdate)
+         endif
+      endif
+   endif
+   ! task 0 knows the min and maxes and needs to print them for the log
+   if (my_task_id() == 0 .and. mean_from_restart) then
       if (inf_flavor == 2) then
-         write(msgstring, '(A, F8.3, A, F8.3)') &
+         write(msgstring, '(A, F12.3, A, F12.3)') &
             'inf mean   from restart file: min value: ', minmax_mean(1), ' max value: ', minmax_mean(2)
       else
-         write(msgstring, '(A, F8.3, A, F8.3)') &


More information about the Dart-dev mailing list