[Dart-dev] DART/branches Revision: 11828
dart at ucar.edu
dart at ucar.edu
Tue Jul 18 10:25:40 MDT 2017
hendric at ucar.edu
2017-07-18 10:25:40 -0600 (Tue, 18 Jul 2017)
44
merging recent changes from the rma_trunk
Index: DART/branches/rma_array_nml
===================================================================
--- DART/branches/rma_array_nml 2017-07-18 16:21:32 UTC (rev 11827)
+++ DART/branches/rma_array_nml 2017-07-18 16:25:40 UTC (rev 11828)
Property changes on: DART/branches/rma_array_nml
___________________________________________________________________
Modified: svn:mergeinfo
## -32,6 +32,7 ##
/DART/branches/rma_sprint:8095-8166
/DART/branches/rma_state_structure_test_dir:9472-9676
/DART/branches/rma_state_structure_unit_test:9691-10268
+/DART/branches/rma_trunk:11814-11827
/DART/branches/rma_trunk_clamping:8786-8801
/DART/branches/rma_trunk_filename:8011-8157
/DART/branches/rma_trunk_get_state_fun:8568-8596
Modified: DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90
===================================================================
--- DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90 2017-07-18 16:21:32 UTC (rev 11827)
+++ DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90 2017-07-18 16:25:40 UTC (rev 11828)
@@ -2212,9 +2212,9 @@
!------------------------------------------------------------------
!> Set file name information. For members restarts can be read from
-!> a restart_file_list.txt or constructed using a stage name and
+!> an input_state_file_list or constructed using a stage name and
!> num_ens. The file_info handle knows whether or not there is an
-!> associated restart_file_list.txt. If no list is provided member
+!> associated input_state_file_list. If no list is provided member
!> filenames are written as :
!> stage_member_####.nc (ex. preassim_member_0001.nc)
!> extra copies are stored as :
Modified: DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.f90
===================================================================
--- DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.f90 2017-07-18 16:21:32 UTC (rev 11827)
+++ DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.f90 2017-07-18 16:25:40 UTC (rev 11828)
@@ -2198,9 +2198,9 @@
!------------------------------------------------------------------
!> Set file name information. For members restarts can be read from
-!> a restart_file_list.txt or constructed using a stage name and
+!> an input_state_file_list or constructed using a stage name and
!> num_ens. The file_info handle knows whether or not there is an
-!> associated restart_file_list.txt. If no list is provided member
+!> associated input_state_file_list. If no list is provided member
!> filenames are written as :
!> stage_member_####.nc (ex. preassim_member_0001.nc)
!> extra copies are stored as :
Modified: DART/branches/rma_array_nml/assimilation_code/modules/io/direct_netcdf_mod.f90
===================================================================
--- DART/branches/rma_array_nml/assimilation_code/modules/io/direct_netcdf_mod.f90 2017-07-18 16:21:32 UTC (rev 11827)
+++ DART/branches/rma_array_nml/assimilation_code/modules/io/direct_netcdf_mod.f90 2017-07-18 16:25:40 UTC (rev 11828)
@@ -494,7 +494,7 @@
integer :: ens_size, extra_size, time_size, var_size, elm_count, ndims
integer :: my_pe, recv_pe, recv_start, recv_end, start_rank
integer :: start_pos, end_pos, send_start, send_end, start_point
-logical :: do_perturb, is_sender, is_receiver, is_member_copy, is_extra_copy
+logical :: do_perturb, is_sender, is_receiver, is_extra_copy
real(r8), allocatable :: var_block(:)
@@ -545,6 +545,8 @@
! recv_* and send_* are PE's that variables are sent and received
call get_pe_loops(ens_size, recv_start, recv_end, send_start, send_end)
+call check_singlefile_member_info(my_ncid, fname, ens_size, do_perturb)
+
COPY_LOOP: do icopy = 1, ens_size+extra_size
! only SINGLE_IO_TASK_ID reads and distributes data
@@ -553,17 +555,15 @@
! {variable}_priorinf_{mean,sd}
! {variable}_postinf_{mean,sd}
+ if ( file_handle%stage_metadata%io_flag(icopy) /= READ_COPY ) cycle
+
is_extra_copy = (icopy > ens_size)
- is_member_copy = (icopy <= ens_size)
! check that copy infomation is valid
- if ( is_member_copy ) call check_singlefile_member_info(my_ncid, fname, ens_size, do_perturb)
! starting position in the copies array
start_pos = 1
- if ( file_handle%stage_metadata%io_flag(icopy) /= READ_COPY ) cycle
-
VAR_LOOP: do ivar = 1, get_num_variables(domain)
var_size = get_variable_size(domain, ivar)
@@ -2538,11 +2538,17 @@
ret = nf90_inquire_dimension(ncid, MemDimID, len=member_size)
call nc_check(ret, 'check_singlefile_member_info', 'inq_varid member : '//trim(fname))
- !>@todo FIXME : if there is a single file with a member dimension but only one member
- !> it is ok if we are perturbing.
+ ! are there enough members to start from this file? if you're perturbing a single member
+ ! to generate an ensemble it's ok to have 1. otherwise you have to have at least
+ ! 'ens_size' members (more is ok).
More information about the Dart-dev
mailing list