[Dart-dev] DART/branches Revision: 11003

dart at ucar.edu dart at ucar.edu
Tue Feb 7 09:51:54 MST 2017


hendric at ucar.edu
2017-02-07 09:51:53 -0700 (Tue, 07 Feb 2017)
482
modified dart time to work with fractional seconds rather
than dart days and seconds.  removing the single_filename
type variable from the file_info_type, this was just
redundent code and is not supportive of models with with
multiple domains.  pmo and filter compile and run with
lorenz_63.  Ran a hop test with lorenz_63 with inflation
turned on and results were bitwise. adding domain from
blank instead of file, for models with variable model size
such as lorenz_96 and bgrid.




Modified: DART/branches/rma_single_file/filter/filter_mod.f90
===================================================================
--- DART/branches/rma_single_file/filter/filter_mod.f90	2017-02-04 01:26:39 UTC (rev 11002)
+++ DART/branches/rma_single_file/filter/filter_mod.f90	2017-02-07 16:51:53 UTC (rev 11003)
@@ -173,6 +173,7 @@
 ! File options.  Single vs. Multiple.
 logical            :: single_file_in               = .false. ! all copies read  from 1 file
 logical            :: single_file_out              = .false. ! all copies written to 1 file
+logical            :: has_cycling                  = .false. ! model is subroutine callable
 ! Stages to write.  Valid values include:
 ! input, preassim, postassim, output
 character(len=10)  :: stages_to_write(4) = (/"output    ", "null      ", "null      ", "null      "/) 
@@ -222,7 +223,7 @@
    inf_lower_bound, inf_upper_bound, inf_sd_lower_bound, &
    silence, &
    distributed_state, &
-   single_file_in, single_file_out, &
+   single_file_in, single_file_out, has_cycling, &
    perturb_from_single_instance, perturbation_amplitude, &
    stages_to_write, &
    output_restart_file_list, input_restart_file_list, &
@@ -250,7 +251,7 @@
 
 integer,    allocatable :: keys(:)
 integer(i8)             :: model_size
-integer                 :: i, iunit, io, time_step_number, num_obs_in_set
+integer                 :: j, i, 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
@@ -430,7 +431,7 @@
                                  file_info_preassim, file_info_postassim, &
                                  file_info_output)
 
-call check_file_info_variable_shape(file_info_output, state_ens_handle)
+!call check_file_info_variable_shape(file_info_output, state_ens_handle)
 
 call set_inflation_mean_copy(prior_inflate, PRIOR_INF_COPY)
 call set_inflation_sd_copy(  prior_inflate, PRIOR_INF_SD_COPY)
@@ -439,6 +440,11 @@
 
 call read_state(state_ens_handle, file_info_input, read_time_from_file, time1, prior_inflate, post_inflate)
 
+do j=1,3
+do i=23,26
+   print*, i, j, state_ens_handle%copies(i,j)
+enddo
+enddo
 ! This must be after read_state
 call get_minmax_task_zero(prior_inflate, state_ens_handle, PRIOR_INF_COPY, PRIOR_INF_SD_COPY)
 call log_inflation_info(prior_inflate, state_ens_handle%my_pe, 'Prior')
@@ -2192,19 +2198,15 @@
 
 ! Allocate space for the filename handles
 print*, 'initializing filter_input'
-call io_filenames_init(file_info_input,     num_state_ens_copies, single_file_in,      &
+call io_filenames_init(file_info_input,     num_state_ens_copies, has_cycling, single_file_in,      &
                                             restart_list=input_restart_file_list,  &
-                                            single_filename = 'filter_input.nc', &
                                             root_name='input')
-call io_filenames_init(file_info_preassim,  num_state_ens_copies, single_file_out,     &
-                                            single_filename = 'filter_preassim.nc', &
+call io_filenames_init(file_info_preassim,  num_state_ens_copies, has_cycling, single_file_out,     &
                                             root_name='preassim')
-call io_filenames_init(file_info_postassim, num_state_ens_copies, single_file_out,     &
-                                            single_filename = 'filter_postassim.nc', &
+call io_filenames_init(file_info_postassim, num_state_ens_copies, has_cycling, single_file_out,     &
                                             root_name='postassim')
-call io_filenames_init(file_info_output,    num_state_ens_copies, single_file_out,     &
+call io_filenames_init(file_info_output,    num_state_ens_copies, has_cycling, single_file_out,     &
                                             restart_list=output_restart_file_list, &
-                                            single_filename = 'filter_output.nc', &
                                             root_name='output', &
                                             check_output_compatibility = .true.)
 

Modified: DART/branches/rma_single_file/io/dart_time_io_mod.f90
===================================================================
--- DART/branches/rma_single_file/io/dart_time_io_mod.f90	2017-02-04 01:26:39 UTC (rev 11002)
+++ DART/branches/rma_single_file/io/dart_time_io_mod.f90	2017-02-07 16:51:53 UTC (rev 11003)
@@ -13,7 +13,7 @@
 !> @{
 
 use types_mod,        only : r8, i8
-use time_manager_mod, only : time_type, set_time, get_time
+use time_manager_mod, only : time_type, set_time, get_time, print_time
 use utilities_mod,    only : nc_check
 
 use typeSizes
@@ -36,33 +36,43 @@
 character(len=*), intent(in) :: filename
 type(time_type) :: read_model_time
 
-integer :: ncid, dart_secsVarID, dart_daysVarID
+integer :: ncid, ntimes, TimeVarID, TimeDimID
 integer :: seconds, days
+real(r8), allocatable :: model_time(:)
 
 ! open netcdf file
 call nc_check( nf90_open(filename, NF90_NOWRITE, ncid), &
-               'read_model_time opening : ', filename )


More information about the Dart-dev mailing list