[Dart-dev] DART/branches Revision: 11150

dart at ucar.edu dart at ucar.edu
Thu Feb 23 14:21:47 MST 2017


hendric at ucar.edu
2017-02-23 14:21:45 -0700 (Thu, 23 Feb 2017)
48
closing netcdf files fixes loosing last write.




Modified: DART/branches/rma_trunk/filter/filter_mod.f90
===================================================================
--- DART/branches/rma_trunk/filter/filter_mod.f90	2017-02-23 18:56:24 UTC (rev 11149)
+++ DART/branches/rma_trunk/filter/filter_mod.f90	2017-02-23 21:21:45 UTC (rev 11150)
@@ -75,6 +75,8 @@
 
 use quality_control_mod,   only : initialize_qc
 
+use state_space_diag_mod,  only : finalize_singlefile_output
+
 !------------------------------------------------------------------------------
 
 implicit none
@@ -258,7 +260,7 @@
 
 integer,    allocatable :: keys(:)
 integer(i8)             :: model_size
-integer                 :: j, i, iunit, io, time_step_number, num_obs_in_set
+integer                 :: ret, 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
@@ -933,10 +935,23 @@
    call write_state(state_ens_handle, file_info_all)
 else
 
-   !#! if (get_stage_to_write('output')) &
-   !#!    call write_state(state_ens_handle, file_info_output)
+   if (get_stage_to_write('output')) &
+       call write_state(state_ens_handle, file_info_output)
 endif
 
+if (single_file_in) then
+   ret = finalize_singlefile_output(file_info_input)
+endif
+
+if( single_file_out ) then
+   if (get_stage_to_write('preassim')) &
+      ret = finalize_singlefile_output(file_info_preassim)
+   if (get_stage_to_write('postassim')) &
+      ret = finalize_singlefile_output(file_info_postassim)
+   if (get_stage_to_write('output')) &
+      ret = finalize_singlefile_output(file_info_output)
+endif
+
 if(ds) call smoother_write_restart(1, ens_size)
 call trace_message('After  writing state restart files if requested')
 call timestamp_message('After  writing state restart files if requested')

Modified: DART/branches/rma_trunk/io/io_filenames_mod.f90
===================================================================
--- DART/branches/rma_trunk/io/io_filenames_mod.f90	2017-02-23 18:56:24 UTC (rev 11149)
+++ DART/branches/rma_trunk/io/io_filenames_mod.f90	2017-02-23 21:21:45 UTC (rev 11150)
@@ -953,6 +953,8 @@
                              file_info%stage_metadata%my_copy_number(      i)
       write(*,'(A, I4,A,I4)') 'file_info%stage_metadata%io_flag(         ',i,'     ) ', &
                              file_info%stage_metadata%io_flag(             i)
+      write(*,'(A, I4,2A)') 'file_info%stage_metadata%copy_name(         ',i,'     ) ', &
+                             file_info%stage_metadata%copy_name(i)
    enddo
 enddo
 

Modified: DART/branches/rma_trunk/io/state_space_diag_mod.f90
===================================================================
--- DART/branches/rma_trunk/io/state_space_diag_mod.f90	2017-02-23 18:56:24 UTC (rev 11149)
+++ DART/branches/rma_trunk/io/state_space_diag_mod.f90	2017-02-23 21:21:45 UTC (rev 11150)
@@ -356,11 +356,14 @@
 !-------------------------------------------------------------------------------
 !>
 
-function finalize_singlefile_output(ncFileID) result(ierr)
+function finalize_singlefile_output(file_handle) result(ierr)
 
-type(netcdf_file_type), intent(inout) :: ncFileID
+type(file_info_type), intent(inout) :: file_handle
 integer             :: ierr
 
+type(netcdf_file_type) :: ncFileID
+
+ncFileID = file_handle%stage_metadata%ncFileID
 ierr = 0
 
 if (my_task_id()==0) then


More information about the Dart-dev mailing list