solver_session Module



Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: solver_status_ok = 0

Operation completed successfully.

integer, public, parameter :: solver_status_invalid_argument = 1

Caller supplied an invalid handle, key, buffer, or scalar argument.

integer, public, parameter :: solver_status_invalid_state = 2

Operation requires an initialised runtime, but the session is not ready.

integer, public, parameter :: solver_status_config_error = 3

Config loading or validation failed.

integer, public, parameter :: solver_status_io_error = 4

File I/O or other runtime setup/output work failed.

integer, public, parameter :: solver_status_busy = 5

Reserved for adapters that need to report temporary v1 exclusivity/busy state.


Derived Types

type, public ::  solver_progress_t

Polling-friendly runtime summary exposed to adapters.

Read more…

Components

Type Visibility Attributes Name Initial
integer, public :: iteration = 0
integer, public :: n_point = 0
logical, public :: is_initialized = .false.
logical, public :: is_finished = .false.
real(kind=wp), public :: sim_time = 0.0_wp
real(kind=wp), public :: time_stop = 0.0_wp
real(kind=wp), public :: dt = 0.0_wp
real(kind=wp), public :: residual = 0.0_wp

type, public ::  solver_session_t

Mutable solver session that owns one configuration and, optionally, one runtime.

Read more…

Components

Type Visibility Attributes Name Initial
type(config_t), public :: cfg
type(solver_run_context_t), public :: ctx
logical, public :: has_runtime = .false.
character(len=512), public :: last_error = ''

Subroutines

public subroutine solver_session_create(session)

Reset a session to its default empty state.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(out) :: session

public subroutine solver_session_destroy(session)

Tear down any live runtime allocations and clear the last error.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session

public subroutine solver_session_load_namelist(session, filename, status, message)

Load configuration from a namelist file into the session.

Read more…

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
character(len=*), intent(in) :: filename
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_initialize(session, status, message)

Validate the current configuration and allocate the runtime context.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_advance(session, max_steps, steps_taken, finished, status, message)

Advance the runtime by at most max_steps iterations.

Read more…

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
integer, intent(in) :: max_steps
integer, intent(out) :: steps_taken
logical, intent(out) :: finished
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_run_to_end(session, status, message)

Run the current session until time_stop is reached.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_get_progress(session, progress, status, message)

Copy out a lightweight progress snapshot for polling clients.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(in) :: session
type(solver_progress_t), intent(out) :: progress
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_get_point_count(session, n_point, status, message)

Return the current grid-point count expected by solution copy-out buffers.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(in) :: session
integer, intent(out) :: n_point
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_copy_solution(session, x, rho, u, p, status, message)

Copy the current primitive-variable solution into caller-owned arrays.

Read more…

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(in) :: session
real(kind=wp), intent(out) :: x(:)
real(kind=wp), intent(out) :: rho(:)
real(kind=wp), intent(out) :: u(:)
real(kind=wp), intent(out) :: p(:)
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_write_result(session, filename, status, message)

Write the current solution in the standard result.dat-style text format.

Read more…

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
character(len=*), intent(in), optional :: filename
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_write_checkpoint(session, base, status, message)

Force an immediate checkpoint write using the configured or overridden base name.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
character(len=*), intent(in), optional :: base
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_last_error(session, message)

Copy the last stored writable-operation error message.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(in) :: session
character(len=*), intent(out) :: message

public subroutine solver_session_get_integer(session, key, value, status, message)

Read an integer configuration field by canonical schema key.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(in) :: session
character(len=*), intent(in) :: key
integer, intent(out) :: value
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_get_real(session, key, value, status, message)

Read a scalar real configuration field by canonical schema key.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(in) :: session
character(len=*), intent(in) :: key
real(kind=wp), intent(out) :: value
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_get_logical(session, key, value, status, message)

Read a logical configuration field by canonical schema key.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(in) :: session
character(len=*), intent(in) :: key
logical, intent(out) :: value
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_get_string(session, key, value, status, message)

Read a string or choice-token configuration field by canonical schema key.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(in) :: session
character(len=*), intent(in) :: key
character(len=*), intent(out) :: value
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_get_real3(session, key, value, status, message)

Read a real-3 configuration field by canonical schema key.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(in) :: session
character(len=*), intent(in) :: key
real(kind=wp), intent(out) :: value(3)
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_set_integer(session, key, value, status, message)

Set an integer configuration field and invalidate any live runtime.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
character(len=*), intent(in) :: key
integer, intent(in) :: value
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_set_real(session, key, value, status, message)

Set a scalar real configuration field and invalidate any live runtime.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
character(len=*), intent(in) :: key
real(kind=wp), intent(in) :: value
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_set_logical(session, key, value, status, message)

Set a logical configuration field and invalidate any live runtime.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
character(len=*), intent(in) :: key
logical, intent(in) :: value
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_set_string(session, key, value, status, message)

Set a string or choice-token configuration field and invalidate any runtime.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
character(len=*), intent(in) :: key
character(len=*), intent(in) :: value
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

public subroutine solver_session_set_real3(session, key, value, status, message)

Set a real-3 configuration field and invalidate any live runtime.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
character(len=*), intent(in) :: key
real(kind=wp), intent(in) :: value(3)
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

private subroutine reset_runtime(session)

Tear down the live runtime context while keeping editable config state.

Read more…

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session

private subroutine finish(session, status_code, err, status, message)

Store the last writable-operation error and mirror it to optional outputs.

Arguments

Type IntentOptional Attributes Name
type(solver_session_t), intent(inout) :: session
integer, intent(in) :: status_code
character(len=*), intent(in) :: err
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message

private subroutine finish_readonly(status_code, err, status, message)

Mirror readonly-operation status without mutating the session state.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: status_code
character(len=*), intent(in) :: err
integer, intent(out), optional :: status
character(len=*), intent(out), optional :: message