Appearance
adam_fnl_rk_object
ADAM, RK class FNL (FNL backend of rk_object).
Source: src/lib/fnl/adam_fnl_rk_object.F90
Dependencies
Contents
Derived Types
rk_fnl_object
RK FNL class definition.
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
alph_gpu | real(kind=R8P) | pointer | RK alpha coefficients. |
beta_gpu | real(kind=R8P) | pointer | RK beta coefficients. |
gamm_gpu | real(kind=R8P) | pointer | RK gamma coefficients. |
q_rk_gpu | real(kind=R8P) | pointer | Field cell centered variables, RK stages. |
Type-Bound Procedures
| Name | Attributes | Description |
|---|---|---|
assign_stage | pass(self) | Assign q to RK stage. |
compute_stage | pass(self) | Compute RK stage. |
compute_stage_ls | pass(self) | Compute RK stage, low storage scheme. |
initialize | pass(self) | Initialize class from global singletons. |
initialize_stages | pass(self) | Initialize RK stages. |
update_q | pass(self) | Update RK q. |
Subroutines
assign_stage
Assign q to RK stage.
fortran
subroutine assign_stage(self, grid, field, s, q_gpu, phi_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(rk_fnl_object) | inout | RK object. | |
grid | type(grid_object) | in | target | Grid (sibling realm component, threaded in). |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
s | integer(kind=I4P) | in | Current stage number. | |
q_gpu | real(kind=R8P) | in | Conservative variables. | |
phi_gpu | real(kind=R8P) | in | optional | IB distance. |
Call graph
compute_stage
Compute RK stage.
fortran
subroutine compute_stage(self, grid, field, s, dt, phi_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(rk_fnl_object) | inout | RK object. | |
grid | type(grid_object) | in | target | Grid (sibling realm component, threaded in). |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
s | integer(kind=I4P) | in | Current stage number. | |
dt | real(kind=R8P) | in | Current time step. | |
phi_gpu | real(kind=R8P) | in | optional | IB distance. |
Call graph
compute_stage_ls
Compute RK stage, low storage scheme. The first (only) stage is assumed to be the previous time step q solution.
fortran
subroutine compute_stage_ls(self, grid, field, rk, s, dt, phi_gpu, dq_gpu, q_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(rk_fnl_object) | in | RK object. | |
grid | type(grid_object) | in | target | Grid (sibling realm component, threaded in). |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
rk | type(rk_object) | in | Host RK (sibling realm component, threaded in). | |
s | integer(kind=I4P) | in | Current RK stage. | |
dt | real(kind=R8P) | in | Current time step. | |
phi_gpu | real(kind=R8P) | in | optional | IB distance. |
dq_gpu | real(kind=R8P) | in | Conservative variables residuals. | |
q_gpu | real(kind=R8P) | inout | Conservative variables stage. |
Call graph
initialize
Initialize class from the host grid/field/rk sibling realm components (threaded in). Requires mpih_fnl (adam_fnl_mpih_global) to be ready.
fortran
subroutine initialize(self, grid, field, rk)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(rk_fnl_object) | inout | RK FNL object. | |
grid | type(grid_object) | in | Grid (sibling realm component, threaded in). | |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
rk | type(rk_object) | in | Host RK (sibling realm component, threaded in). |
Call graph
initialize_stages
Initialize RK stages.
fortran
subroutine initialize_stages(self, grid, field, q_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(rk_fnl_object) | inout | RK object. | |
grid | type(grid_object) | in | target | Grid (sibling realm component, threaded in). |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
q_gpu | real(kind=R8P) | in | Conservative variables. |
Call graph
update_q
Update RK q.
fortran
subroutine update_q(self, grid, field, rk, dt, phi_gpu, q_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(rk_fnl_object) | in | RK object. | |
grid | type(grid_object) | in | target | Grid (sibling realm component, threaded in). |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
rk | type(rk_object) | in | Host RK (sibling realm component, threaded in). | |
dt | real(kind=R8P) | in | Current time step. | |
phi_gpu | real(kind=R8P) | in | optional | IB distance. |
q_gpu | real(kind=R8P) | inout | Conservative variables. |
Call graph