-
Notifications
You must be signed in to change notification settings - Fork 173
Description
In
create_and_open_state_output, only 'time' (lower case) can be the unlimited dimension.DART/assimilation_code/modules/io/direct_netcdf_mod.f90
Lines 1643 to 1656 in cbe0d41
! define dimensions, loop around unique dimensions do i = 1, get_io_num_unique_dims(dom_id) if ( trim(get_io_unique_dim_name(dom_id, i)) == 'time' ) then ret = nf90_def_dim(ncfile_out, 'time', NF90_UNLIMITED, new_dimid) else ret = nf90_def_dim(ncfile_out, get_io_unique_dim_name(dom_id, i), & get_io_unique_dim_length(dom_id, i), new_dimid) endif !>@todo if we already have a unique names we can take this test out if(ret /= NF90_NOERR .and. ret /= NF90_ENAMEINUSE) then call nc_check(ret, routine, & 'defining dimensions'//trim(get_io_unique_dim_name(dom_id, i))) endif enddo If you have an unlimited dimension in the state_structure_mod, e.g. WRF has 'Time' this gets created as a limited dimension.
This means that your created netcdf files have a different netcdf dimension structure than your model files.
has_unlimitedis a property of the state_stucture%domain, but it is (can be) different between netcdf files because of create_and_open_state_output. I think this is why dart_time_io_mod is querying the netcdf file rather than the state_structure (see comment above).There is also
domain%variable(ivar)%var_has_unlimwhich is per variable, set but never used.
Originally posted by @hkershaw-brown in #359