Skip to content

In create_and_open_state_output, only 'time' (lower case) can be the unlimited dimension. #1080

@hkershaw-brown

Description

@hkershaw-brown

In create_and_open_state_output, only 'time' (lower case) can be the unlimited dimension.

! 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_unlimited is 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_unlim which is per variable, set but never used.

Originally posted by @hkershaw-brown in #359

Metadata

Metadata

Assignees

No one assigned

    Labels

    IOIO refactoring notes and issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions