diff --git a/components/lfric-xios/integration-test/iodef.xml b/components/lfric-xios/integration-test/iodef.xml index babba32a1..6c7a904f0 100644 --- a/components/lfric-xios/integration-test/iodef.xml +++ b/components/lfric-xios/integration-test/iodef.xml @@ -5,7 +5,7 @@ performance - 1.0 + 1.0 diff --git a/components/lfric-xios/source/lfric_xios_field_mod.f90 b/components/lfric-xios/source/lfric_xios_field_mod.f90 index e49a5aae8..c24946a60 100644 --- a/components/lfric-xios/source/lfric_xios_field_mod.f90 +++ b/components/lfric-xios/source/lfric_xios_field_mod.f90 @@ -112,11 +112,12 @@ end function lfric_xios_field_constructor !> Registers a representation of the model field with the associated XIOS field !> group -subroutine register(self) +subroutine register(self, field_read_access) implicit none class(lfric_xios_field_type), intent(inout) :: self + logical, intent(in) :: field_read_access type(xios_fieldgroup) :: fieldgroup_hdl type(xios_domain) :: domain @@ -135,7 +136,9 @@ subroutine register(self) ! Get field group handle and add field call xios_get_handle(trim(adjustl(self%fieldgroup_id)), fieldgroup_hdl) call xios_add_child(fieldgroup_hdl, self%handle, trim(self%xios_id)) - call xios_set_attr(self%handle, name=trim(adjustl(self%model_field%get_name()))) + call xios_set_attr( self%handle, & + name=trim(adjustl(self%model_field%get_name())), & + read_access=field_read_access ) ! Set up dimensions of output field vspace => self%model_field%get_function_space() diff --git a/components/lfric-xios/source/lfric_xios_file_mod.f90 b/components/lfric-xios/source/lfric_xios_file_mod.f90 index cc1e9a820..121c8bcbf 100644 --- a/components/lfric-xios/source/lfric_xios_file_mod.f90 +++ b/components/lfric-xios/source/lfric_xios_file_mod.f90 @@ -410,7 +410,7 @@ subroutine register_with_context(self) ! Iterate over field collection and register fields do i = 1, size(self%fields) - call self%fields(i)%register() + call self%fields(i)%register(field_read_access=self%mode_is_read()) end do ! Set up time axis if needed diff --git a/components/lfric-xios/source/lfric_xios_metafile_mod.F90 b/components/lfric-xios/source/lfric_xios_metafile_mod.F90 index ae5841734..a138ccf00 100644 --- a/components/lfric-xios/source/lfric_xios_metafile_mod.F90 +++ b/components/lfric-xios/source/lfric_xios_metafile_mod.F90 @@ -269,6 +269,12 @@ subroutine add_field(metafile, dict_field_id, mode, operation, id_as_name, legac end if end if end if + + ! Enable read_access if field is being added for restarting + if (mode == RESTARTING) then + call xios_set_field_attr(field_id, read_access=.true.) + end if + end do end subroutine add_field diff --git a/rose-stem/app/coupled/file/iodef.xml b/rose-stem/app/coupled/file/iodef.xml index a223c9ebc..76b7fa544 100644 --- a/rose-stem/app/coupled/file/iodef.xml +++ b/rose-stem/app/coupled/file/iodef.xml @@ -59,7 +59,7 @@ performance - 1.0 + 1.0 diff --git a/rose-stem/app/io_demo/file/iodef.xml b/rose-stem/app/io_demo/file/iodef.xml index f944d70c8..19a6dc5d2 100644 --- a/rose-stem/app/io_demo/file/iodef.xml +++ b/rose-stem/app/io_demo/file/iodef.xml @@ -25,7 +25,7 @@ performance - 1.0 + 1.0 diff --git a/rose-stem/app/lbc_demo/file/iodef.xml b/rose-stem/app/lbc_demo/file/iodef.xml index 2c60bbd11..05f272079 100644 --- a/rose-stem/app/lbc_demo/file/iodef.xml +++ b/rose-stem/app/lbc_demo/file/iodef.xml @@ -47,7 +47,7 @@ performance - 1.0 + 1.0 diff --git a/rose-stem/app/simple_diffusion/file/iodef.xml b/rose-stem/app/simple_diffusion/file/iodef.xml index e616648cd..436ac43e7 100644 --- a/rose-stem/app/simple_diffusion/file/iodef.xml +++ b/rose-stem/app/simple_diffusion/file/iodef.xml @@ -25,7 +25,7 @@ performance - 1.0 + 1.0 diff --git a/rose-stem/app/skeleton/file/iodef.xml b/rose-stem/app/skeleton/file/iodef.xml index 6ed58c278..ecbeb5424 100644 --- a/rose-stem/app/skeleton/file/iodef.xml +++ b/rose-stem/app/skeleton/file/iodef.xml @@ -59,7 +59,7 @@ performance - 1.0 + 1.0