[Dart-dev] DART/branches Revision: 11262
dart at ucar.edu
dart at ucar.edu
Thu Mar 9 13:42:16 MST 2017
nancy at ucar.edu
2017-03-09 13:42:15 -0700 (Thu, 09 Mar 2017)
3366
collected updates for many different reasons. list of
changes are:
adaptive_inflate/adaptive_inflate_mod.f90:
add rtps inflation
common/types_mod.f90:
add missing_i8
filter/filter_mod.f90:
filter/filter_mod.dopplerfold.f90:
add rtps inflation
re-enable check_file_info_variable_shape() for output file
add back in perturb capability for single-file input
bring dopplerfold in sync with plain version
forward_operator/forward_operator_mod.f90:
fix doxygen, no code changes
io/dart_time_io_mod.f90:
add support for different calendars to created single-file output
files we create, add support for reading times with 'days since' or
'seconds since' a base time in netcdf attrs.
io/direct_netcdf_mod.f90:
add code, currently disabled, which would update the time
in an existing output file if it isn't the same as the model_time.
not sure if this is a good idea - might need to be namelist
selectable - but was needed for a ROMS run and don't want to
lose the code.
io/io_filenames_mod.f90:
fix code using num_dims instead of the correct io_num_dims
improve some error messages
io/state_space_diag_mod.f90:
add back in the capability for perturbing a single state
fix the computation of variable shapes so we can re-enable
check_file_info_variable_shape(), taking into account the
possible 'time' and 'member' dimensions
use the actual dims instead of assuming positions in the array
io/state_structure_mod.f90:
fix the code that computes variable sizes in the single file case
(don't include the time or member dimensions)
remove extra trim() intrinsics when comparing strings; you need
it for prints or writes, but not for comparisons
fix one call which needs to include the time and member
dimensions which wasn't before
io/state_vector_io_mod.f90:
includes passing down the perturb flag to read_singlefile
models/bgrid_solo/model_mod.f90:
added an optional 'template_file' namelist item so we can
get the sizes and shapes of the arrays from that file,
instead of trying to construct the domain from scratch.
if not starting from a restart file, leave template_file
unset and the domain will be constructed as before.
models/bgrid_solo/work/input.nml:
add template_file to model_nml namelist
models/wrf/distributed_phb_model_mod.f90:
all_reduce_min_max renamed to broadcast_minmax
mpi_utilities/mpi_utilities_mod.f90:
mpi_utilities/null_mpi_utilities_mod.f90:
remove obsolete comment block at top; add broadcast_flag
and broadcast_minmax; deprecate all_reduce_min_max
convert to doxygen comments and style guide
add start_mpi_timer/read_mpi_timer to
wrap mpi_wtime() - corresponding routines
using the normal clock added to null mpi version
obs_def/obs_def_gps_mod.f90:
obs_def/obs_def_tpw_mod.f90:
obs_def/obs_def_upper_atm_mod.f90:
observations/ROMS/convert_roms_obs.f90:
fix the format of the doxygen 'todo's so they show
up on the list
observations/AIRS/work/mkmf_convert_airs_L2:
add comment that if you're building on yellowstone
i've got the libraries in my work directory
observations/buildall.csh:
build the ncep converters first because they are
needed by at least one other converter
quality_control/quality_control_mod.f90:
change the doxygen formatting
change a 'stop' to a call to the error handler
Modified: DART/branches/rma_trunk/common/types_mod.f90
===================================================================
--- DART/branches/rma_trunk/common/types_mod.f90 2017-03-09 20:26:25 UTC (rev 11261)
+++ DART/branches/rma_trunk/common/types_mod.f90 2017-03-09 20:42:15 UTC (rev 11262)
@@ -16,7 +16,7 @@
public :: i2, i4, i8, r4, c4, r8, c8, digits12
public :: PI, DEG2RAD, RAD2DEG, MISSING_R4, MISSING_R8
-public :: MISSING_I, MISSING_DATA
+public :: MISSING_I, MISSING_I8, MISSING_DATA
public :: SECPERDAY
public :: t_kelvin, es_alpha, es_beta, es_gamma, gas_constant_v, gas_constant
public :: L_over_Rv, ps0, earth_radius, gravity
@@ -74,16 +74,16 @@
integer, parameter :: i8 = SELECTED_INT_KIND(13)
! real precision:
+! TO RUN WITH REDUCED PRECISION REALS (and use correspondingly less memory)
+! comment OUT the r8 definition below and use the second one:
integer, parameter :: r4 = SELECTED_REAL_KIND(6,30)
integer, parameter :: r8 = SELECTED_REAL_KIND(12) ! real r8
-! integer, parameter :: r8 = r4 ! alias r8 to r4
+!integer, parameter :: r8 = r4 ! alias r8 to r4
! complex precision:
integer, parameter :: c4 = SELECTED_REAL_KIND(6,30)
integer, parameter :: c8 = SELECTED_REAL_KIND(12)
-! TO RUN WITH REDUCED PRECISION REALS (and use correspondingly less memory)
-! comment OUT the r8 definition above and use this one:
! 'digits12' is reserved for real variables that MUST retain 64 bits of
@@ -104,10 +104,11 @@
real(kind=r8), parameter :: DEG2RAD = PI / 180.0_r8
real(kind=r8), parameter :: RAD2DEG = 180.0_r8 / PI
-integer, parameter :: MISSING_I = -888888
-integer, parameter :: MISSING_DATA = -88
-real(kind=r4), parameter :: MISSING_R4 = -888888.0_r4
-real(kind=r8), parameter :: MISSING_R8 = -888888.0_r8
+integer, parameter :: MISSING_I = -888888
+integer(kind=i8), parameter :: MISSING_I8 = -888888_I8
+integer, parameter :: MISSING_DATA = -88
+real(kind=r4), parameter :: MISSING_R4 = -888888.0_r4
+real(kind=r8), parameter :: MISSING_R8 = -888888.0_r8
real(r8), parameter :: t_kelvin = 273.15_r8
real(r8), parameter :: es_alpha = 611.2_r8
Modified: DART/branches/rma_trunk/filter/filter_mod.dopplerfold.f90
===================================================================
--- DART/branches/rma_trunk/filter/filter_mod.dopplerfold.f90 2017-03-09 20:26:25 UTC (rev 11261)
+++ DART/branches/rma_trunk/filter/filter_mod.dopplerfold.f90 2017-03-09 20:42:15 UTC (rev 11262)
@@ -50,7 +50,7 @@
do_single_ss_inflate, inflate_ens, adaptive_inflate_init, &
adaptive_inflate_type, set_inflation_mean_copy , &
log_inflation_info, set_inflation_sd_copy, &
- get_minmax_task_zero
+ get_minmax_task_zero, do_rtps_inflate
use mpi_utilities_mod, only : my_task_id, task_sync, broadcast_send, broadcast_recv, &
task_count
use smoother_mod, only : smoother_read_restart, advance_smoother, &
@@ -132,6 +132,7 @@
integer :: POSTASSIM_PRIORINF_SD = COPY_NOT_PRESENT
integer :: POSTASSIM_POSTINF_MEAN = COPY_NOT_PRESENT
integer :: POSTASSIM_POSTINF_SD = COPY_NOT_PRESENT
+integer :: SPARE_PRIOR_SPREAD = COPY_NOT_PRESENT
logical :: do_prior_inflate = .false.
logical :: do_posterior_inflate = .false.
@@ -205,7 +206,8 @@
! == './advance_model.csh' -> advance ensemble using a script
! Inflation namelist entries follow, first entry for prior, second for posterior
-! inf_flavor is 0:none, 1:obs space, 2: varying state space, 3: fixed state_space
+! inf_flavor is 0:none, 1:obs space, 2: varying state space, 3: fixed state_space,
+! 4 is rtps (relax to prior spread)
integer :: inf_flavor(2) = 0
logical :: inf_initial_from_restart(2) = .false.
logical :: inf_sd_initial_from_restart(2) = .false.
@@ -263,7 +265,7 @@
integer, allocatable :: keys(:)
integer(i8) :: model_size
-integer :: j, i, iunit, io, time_step_number, num_obs_in_set
+integer :: i, j, iunit, io, time_step_number, num_obs_in_set
integer :: last_key_used, key_bounds(2)
integer :: in_obs_copy, obs_val_index
integer :: prior_obs_mean_index, posterior_obs_mean_index
@@ -322,10 +324,11 @@
! See if smoothing is turned on
ds = do_smoothing()
-! Make sure inflation options are legal
+! Make sure inflation options are legal - this should be in the inflation module
+! and not here. FIXME!
do i = 1, 2
- if(inf_flavor(i) < 0 .or. inf_flavor(i) > 3) then
- write(msgstring, *) 'inf_flavor=', inf_flavor(i), ' Must be 0, 1, 2, 3 '
+ if(inf_flavor(i) < 0 .or. inf_flavor(i) > 4) then
More information about the Dart-dev
mailing list