registry_register_scalar Subroutine

private subroutine registry_register_scalar(this, tag, scal, optional)

Register a host scalar (rank-0 persistent state, e.g. the Chapman eta_old_chapman_* corner values). Host-only — never device- mapped, so the write path skips update self for it.

Type Bound

restart_registry_t

Arguments

Type IntentOptional Attributes Name
class(restart_registry_t), intent(inout) :: this
character(len=*), intent(in) :: tag
real(kind=wp), intent(in), target :: scal
logical, intent(in), optional :: optional

Calls

proc~~registry_register_scalar~~CallsGraph proc~registry_register_scalar restart_registry_t%registry_register_scalar error error proc~registry_register_scalar->error to_string to_string proc~registry_register_scalar->to_string

Called by

proc~~registry_register_scalar~~CalledByGraph proc~registry_register_scalar restart_registry_t%registry_register_scalar proc~ocean_state_build_restart_registry ocean_state_build_restart_registry proc~ocean_state_build_restart_registry->proc~registry_register_scalar proc~ocean_state_restart_read ocean_state_restart_read proc~ocean_state_restart_read->proc~ocean_state_build_restart_registry proc~ocean_state_restart_write ocean_state_restart_write proc~ocean_state_restart_write->proc~ocean_state_build_restart_registry proc~ocean_state_restart_write_drop_field ocean_state_restart_write_drop_field proc~ocean_state_restart_write_drop_field->proc~ocean_state_build_restart_registry proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~ocean_state_restart_write proc~engine_setup engine_setup proc~driver_run_ocean->proc~engine_setup proc~engine_setup->proc~ocean_state_restart_read proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~driver_validate driver_validate proc~driver_validate->proc~engine_setup proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~complete_ocean_create proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~complete_ocean_create

Source Code

   subroutine registry_register_scalar(this, tag, scal, optional)
      !! Register a host scalar (rank-0 persistent state, e.g. the Chapman
      !! `eta_old_chapman_*` corner values).  Host-only — never device-
      !! mapped, so the write path skips `update self` for it.
      class(restart_registry_t), intent(inout) :: this
      character(len=*), intent(in) :: tag
      real(wp), target, intent(in) :: scal
      logical, intent(in), optional :: optional

      if (this%n >= MAX_RESTART_ENTRIES) then
         call logger%error("restart registry full ("//to_string(MAX_RESTART_ENTRIES)// &
                           " entries); bump MAX_RESTART_ENTRIES")
         error stop "restart registry overflow"
      end if
      this%n = this%n + 1
      this%entries(this%n)%tag = tag
      this%entries(this%n)%rank = 0
      this%entries(this%n)%p0 => scal
      this%entries(this%n)%device_mapped = .false.
      if (present(optional)) this%entries(this%n)%optional = optional
   end subroutine registry_register_scalar