MONC
|
Does the field stepping Stepping is called at the end of processing a column and steps the x-2 column. More...
Functions/Subroutines | |
type(component_descriptor_type) function, public | stepfields_get_descriptor () |
Provides the descriptor back to the caller and is used in component registration. More... | |
subroutine | initialisation_callback (current_state) |
Initialisation callback. More... | |
subroutine | finalisation_callback (current_state) |
Finalisation callback. More... | |
subroutine | timestep_callback (current_state) |
Called at each timestep and will perform swapping and smoothing as required. More... | |
subroutine | step_all_fields (current_state) |
Steps all fields. More... | |
subroutine | determine_local_flow_minmax (current_state, local_y, local_x) |
Determines the minimum and maximum values for the local flow field. These are before the stepping, and are all reduced later on in the cfl test. More... | |
subroutine | reset_local_minmax_values (current_state) |
Resets the local min and max values for the flow fields. More... | |
subroutine | remove_negative_rounding_errors_for_single_field (x_local_index, y_local_index, x_prev, y_prev, field, local_grid) |
Removes the negative rounding errors from a specific single field. This works two columns behind and then catches up on the last column. More... | |
subroutine | remove_negative_rounding_errors_in_slice (y_local_index, x_prev, y_prev, field, local_grid) |
Removes the negative rounding errors from a slice of a single field. This works two columns behind and then catches up on the last column. More... | |
subroutine | step_single_field (x_local_index, y_local_index, x_prev, y_prev, field, zfield, sfield, local_grid, flow_field, direction, dtm, gal, c1, c2, do_timesmoothing, sav) |
Steps a single specific field. This will step on the yth column of the x-2 slice and x-1 and x if this is the last slice. More... | |
subroutine | perform_timesmooth_for_field (field, zfield, local_grid, x_index, y_index, c1, c2) |
Performs initial timesmoothing for a theta or Q field using Robert filter. This is finished off in swapsmooth. More... | |
subroutine | step_column_in_slice (y_local_index, x_prev, y_prev, field, zfield, sfield, local_grid, flow_field, direction, dtm, gal, c1, c2, do_timesmoothing, sav) |
Will step a column in a specific slice. If y_prev is large enough then will step the y-1 column and if this is the last column of the slice then will also step the current column. More... | |
subroutine | step_field (x_local_index, y_local_index, field, zfield, sfield, local_grid, flow_field, direction, dtm, gal, sav) |
Will do the actual field stepping. More... | |
Variables | |
logical | determine_flow_minmax =.false. |
logical | cfl_is_enabled |
real(kind=default_precision), dimension(:), allocatable | resetq_min |
logical | l_nonconservative_positive_q =.true. |
Does the field stepping Stepping is called at the end of processing a column and steps the x-2 column.
|
private |
Determines the minimum and maximum values for the local flow field. These are before the stepping, and are all reduced later on in the cfl test.
current_state | The current model state |
local_y | The local y index |
local_x | The local x index |
Definition at line 146 of file stepfields.F90.
|
private |
Finalisation callback.
current_state | The current model state |
Definition at line 51 of file stepfields.F90.
|
private |
Initialisation callback.
current_state | The current model state |
Definition at line 40 of file stepfields.F90.
|
private |
Performs initial timesmoothing for a theta or Q field using Robert filter. This is finished off in swapsmooth.
field | The field to smooth |
zfield | The zfield to use in smoothing |
local_grid | Description of the local grid |
x_index | The X index to work on |
y_index | The Y index to work on |
c1 | Constant to use in smoothing |
c2 | Constant to use in smoothing |
Definition at line 296 of file stepfields.F90.
|
private |
Removes the negative rounding errors from a specific single field. This works two columns behind and then catches up on the last column.
x_local_index | The current local x index |
y_local_index | The current local y index |
x_prev | The previous x index to step |
y_prev | The previous y index to step |
field | The prognostic field |
local_grid | Description of the local grid |
Definition at line 190 of file stepfields.F90.
|
private |
Removes the negative rounding errors from a slice of a single field. This works two columns behind and then catches up on the last column.
y_local_index | The current local y index |
x_prev | The previous x index to step |
y_prev | The previous y index to step |
field | The prognostic field |
local_grid | Description of the local grid |
Definition at line 213 of file stepfields.F90.
|
private |
Resets the local min and max values for the flow fields.
current_state | The current model state |
Definition at line 171 of file stepfields.F90.
|
private |
Steps all fields.
current_state | The current model state_mod |
Definition at line 98 of file stepfields.F90.
|
private |
Will step a column in a specific slice. If y_prev is large enough then will step the y-1 column and if this is the last column of the slice then will also step the current column.
x_local_index | The current local x index |
y_local_index | The current local y index |
x_prev | The previous x index to step |
y_prev | The previous y index to step |
field | The prognostic field |
zfield | Z prognostic field |
sfield | Source terms for the prognostic field |
local_grid | Description of the local grid |
flow_field | Whether or not this is a flow field |
direction | The stepping direction (centred or forward) |
dtm | The delta time per timestep |
gal | Galilean transformation |
c1 | Constant to use in smoothing |
c2 | Constant to use in smoothing |
do_timesmoothing | Whether timesmoothing using Robert filter should be done on the field |
sav | Optional sav field |
Definition at line 328 of file stepfields.F90.
|
private |
Will do the actual field stepping.
flow_field | Whether or not we are stepping a flow field |
direction | 1=forward, 0=centred |
x_index | The local X slice index |
y_index | The local Y column index |
kkp | Points in the vertical column |
dtm | The model timestep |
field | The prognostic field |
zfield | The prognostic z field (which goes to timestep t+1) |
xfield | The tendency of the field |
gal | The galilean transformation |
Definition at line 371 of file stepfields.F90.
|
private |
Steps a single specific field. This will step on the yth column of the x-2 slice and x-1 and x if this is the last slice.
x_local_index | The current local x index |
y_local_index | The current local y index |
x_prev | The previous x index to step |
y_prev | The previous y index to step |
field | The prognostic field |
zfield | Z prognostic field |
sfield | Source terms for the prognostic field |
local_grid | Description of the local grid |
flow_field | Whether or not this is a flow field |
direction | The stepping direction (centred or forward) |
dtm | The delta time per timestep |
gal | Galilean transformation |
c1 | Constant to use in smoothing |
c2 | Constant to use in smoothing |
do_timesmoothing | Whether timesmoothing using Robert filter should be done on the field |
sav | Optional sav field |
Definition at line 248 of file stepfields.F90.
type(component_descriptor_type) function, public stepfields_mod::stepfields_get_descriptor | ( | ) |
Provides the descriptor back to the caller and is used in component registration.
Definition at line 30 of file stepfields.F90.
|
private |
Called at each timestep and will perform swapping and smoothing as required.
current_state | The current model state_mod |
Definition at line 59 of file stepfields.F90.
|
private |
Definition at line 17 of file stepfields.F90.
|
private |
Definition at line 17 of file stepfields.F90.
|
private |
Definition at line 21 of file stepfields.F90.
|
private |
Definition at line 20 of file stepfields.F90.