[Dart-dev] DART/branches Revision: 10980
dart at ucar.edu
dart at ucar.edu
Wed Feb 1 15:58:03 MST 2017
hendric at ucar.edu
2017-02-01 15:58:03 -0700 (Wed, 01 Feb 2017)
71
reading in last inflation values from last time slot in
single files.
Modified: DART/branches/rma_single_file/io/direct_netcdf_mod.f90
===================================================================
--- DART/branches/rma_single_file/io/direct_netcdf_mod.f90 2017-02-01 20:07:34 UTC (rev 10979)
+++ DART/branches/rma_single_file/io/direct_netcdf_mod.f90 2017-02-01 22:58:03 UTC (rev 10980)
@@ -95,8 +95,7 @@
public :: read_transpose, &
transpose_write, &
- read_variables, &
- read_single_file
+ read_variables
! version controlled file description for error handling, do not edit
character(len=256), parameter :: source = &
@@ -1544,95 +1543,6 @@
end function find_start_point
-
-!-------------------------------------------------------
-!>
-!>
-!>
-
-
-subroutine read_single_file(state_ens_handle, file_info, use_time_from_file, time)
-
-type(ensemble_type), intent(inout) :: state_ens_handle
-type(file_info_type), intent(in) :: file_info
-logical, intent(in) :: use_time_from_file
-type(time_type), intent(inout) :: time
-
-integer :: dart_index ! where to start in state_ens_handle%copies
-type(stage_metadata_type) :: name_handle
-
-! NetCDF IO variables
-integer :: ncid, varid, MemDimID, ret, icopy, ivar, istart, iend, i
-integer :: ens_size, mem_size, model_size, var_size, domain
-character(len=32) :: var_name
-real(r8), allocatable :: var_block(:)
-character(len=256) :: fname
-
-! check whether file_info handle is initialized
-!#! call assert_file_info_initialized(file_info, 'read_restart_direct')
-
-! do this once
-name_handle = get_stage_metadata(file_info)
-
-ens_size = state_ens_handle%num_copies - state_ens_handle%num_extras
-
-! read time from input file if time not set in namelist
-!>@todo Check time constistency across files? This is assuming they are consistent.
-if(use_time_from_file) then
- time = read_model_time(fname)
-endif
-
-state_ens_handle%time = time
-
-fname = get_single_filename(file_info)
-print*, 'fname -> ', fname
-
-domain = 1 !>@todo : single domain for single file read supported
-
-ret = nf90_open(fname, NF90_NOWRITE, ncid)
-call nc_check(ret, 'read_single_file: nf90_open', fname)
-
-do ivar = 1, get_num_variables(domain)
- var_size = get_variable_size(domain, ivar)
- allocate( var_block(var_size) )
-
- var_name = get_variable_name(domain, ivar)
- ret = nf90_inq_varid(ncid, var_name, varid)
- call nc_check(ret, 'read_single_file: nf90_inq_varid', fname)
-
- ! if member dimension is defined then we are reading from a single file
- !>@todo there is probably a cleaner way of doing this
- ret = nf90_inq_dimid(ncid, "member", MemDimID)
- if( ret == 0 ) then
- ret = nf90_inquire_dimension(ncid, MemDimID, len=mem_size)
- call nc_check(ret, 'read_single_file: nf90_inquire_dimension', fname)
- if (mem_size < ens_size) ens_size = mem_size
- !#! print*, 'num members : ', ens_size
- endif
-
- do icopy = 1, ens_size
- ret = nf90_get_var(ncid, varid, var_block, start=(/1,icopy,1/))
- call nc_check(ret, 'read_single_file: nf90_get_var', fname)
- istart = 1
- iend = var_size
- state_ens_handle%copies(icopy, istart:iend) = var_block
-
- !#! istart = var_size + 1
-
- !#! write(*,*) 'var_block : icopy = ', icopy, var_size
- !#! do i = 1, var_size
- !#! write(*,*) state_ens_handle%copies(icopy, i)
- !#! enddo
- enddo
- deallocate( var_block )
-enddo
-
More information about the Dart-dev
mailing list