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... | |
subroutine | compute_component_tendencies (current_state, cxn, cyn, txn, tyn) |
Computation of component tendencies. More... | |
subroutine | field_information_retrieval_callback (current_state, name, field_information) |
Field information retrieval callback, this returns information for a specific component's published field. More... | |
subroutine | field_value_retrieval_callback (current_state, name, field_value) |
Field value retrieval callback, this returns the value of a specific published field. More... | |
subroutine | set_published_field_value (field_value, real_1d_field, real_2d_field, real_3d_field) |
Sets the published field value from the temporary diagnostic values held by this component. 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. |
real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_th |
real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_qv |
real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_ql |
real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_qi |
real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_qr |
real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_qs |
real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_qg |
real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_tabs |
logical | l_tend_3d_th |
logical | l_tend_3d_qv |
logical | l_tend_3d_ql |
logical | l_tend_3d_qi |
logical | l_tend_3d_qr |
logical | l_tend_3d_qs |
logical | l_tend_3d_qg |
logical | l_tend_3d_tabs |
real(kind=default_precision), dimension(:), allocatable | tend_pr_tot_th |
real(kind=default_precision), dimension(:), allocatable | tend_pr_tot_qv |
real(kind=default_precision), dimension(:), allocatable | tend_pr_tot_ql |
real(kind=default_precision), dimension(:), allocatable | tend_pr_tot_qi |
real(kind=default_precision), dimension(:), allocatable | tend_pr_tot_qr |
real(kind=default_precision), dimension(:), allocatable | tend_pr_tot_qs |
real(kind=default_precision), dimension(:), allocatable | tend_pr_tot_qg |
real(kind=default_precision), dimension(:), allocatable | tend_pr_tot_tabs |
logical | l_tend_pr_tot_th |
logical | l_tend_pr_tot_qv |
logical | l_tend_pr_tot_ql |
logical | l_tend_pr_tot_qi |
logical | l_tend_pr_tot_qr |
logical | l_tend_pr_tot_qs |
logical | l_tend_pr_tot_qg |
logical | l_tend_pr_tot_tabs |
integer | iqv =0 |
integer | iql =0 |
integer | iqr =0 |
integer | iqi =0 |
integer | iqs =0 |
integer | iqg =0 |
integer | diagnostic_generation_frequency |
Does the field stepping Stepping is called at the end of processing a column and steps the x-2 column.
|
private |
Computation of component tendencies.
current_state | Current model state |
cxn | The current slice, x, index |
cyn | The current column, y, index. |
txn | target_x_index |
tyn | target_y_index |
Definition at line 628 of file stepfields.F90.
|
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 365 of file stepfields.F90.
|
private |
Field information retrieval callback, this returns information for a specific component's published field.
current_state | Current model state |
name | The name of the field to retrieve information for |
field_information | Populated with information about the field |
strcomp | Starting index within 1st argument string that matches substring (2nd argument); 0 if not a match. |
Definition at line 693 of file stepfields.F90.
|
private |
Field value retrieval callback, this returns the value of a specific published field.
current_state | Current model state |
name | The name of the field to retrieve the value for |
field_value | Populated with the value of the field |
Definition at line 768 of file stepfields.F90.
|
private |
Finalisation callback.
current_state | The current model state |
Definition at line 209 of file stepfields.F90.
|
private |
Initialisation callback.
current_state | The current model state |
Definition at line 89 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 515 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 409 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 432 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 390 of file stepfields.F90.
|
private |
Sets the published field value from the temporary diagnostic values held by this component.
field_value | Populated with the value of the field |
real_1d_field | Optional one dimensional real of values to publish |
real_2d_field | Optional two dimensional real of values to publish |
Definition at line 817 of file stepfields.F90.
|
private |
Steps all fields.
current_state | The current model state_mod |
Definition at line 315 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 546 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 590 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 466 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 56 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 236 of file stepfields.F90.
|
private |
Definition at line 22 of file stepfields.F90.
|
private |
Definition at line 22 of file stepfields.F90.
|
private |
Definition at line 47 of file stepfields.F90.
|
private |
Definition at line 46 of file stepfields.F90.
|
private |
Definition at line 46 of file stepfields.F90.
|
private |
Definition at line 46 of file stepfields.F90.
|
private |
Definition at line 46 of file stepfields.F90.
|
private |
Definition at line 46 of file stepfields.F90.
|
private |
Definition at line 46 of file stepfields.F90.
|
private |
Definition at line 26 of file stepfields.F90.
|
private |
Definition at line 34 of file stepfields.F90.
|
private |
Definition at line 34 of file stepfields.F90.
|
private |
Definition at line 34 of file stepfields.F90.
|
private |
Definition at line 34 of file stepfields.F90.
|
private |
Definition at line 34 of file stepfields.F90.
|
private |
Definition at line 34 of file stepfields.F90.
|
private |
Definition at line 34 of file stepfields.F90.
|
private |
Definition at line 34 of file stepfields.F90.
|
private |
Definition at line 42 of file stepfields.F90.
|
private |
Definition at line 42 of file stepfields.F90.
|
private |
Definition at line 42 of file stepfields.F90.
|
private |
Definition at line 42 of file stepfields.F90.
|
private |
Definition at line 42 of file stepfields.F90.
|
private |
Definition at line 42 of file stepfields.F90.
|
private |
Definition at line 42 of file stepfields.F90.
|
private |
Definition at line 42 of file stepfields.F90.
|
private |
Definition at line 25 of file stepfields.F90.
|
private |
Definition at line 30 of file stepfields.F90.
|
private |
Definition at line 30 of file stepfields.F90.
|
private |
Definition at line 30 of file stepfields.F90.
|
private |
Definition at line 30 of file stepfields.F90.
|
private |
Definition at line 30 of file stepfields.F90.
|
private |
Definition at line 30 of file stepfields.F90.
|
private |
Definition at line 30 of file stepfields.F90.
|
private |
Definition at line 30 of file stepfields.F90.
|
private |
Definition at line 38 of file stepfields.F90.
|
private |
Definition at line 38 of file stepfields.F90.
|
private |
Definition at line 38 of file stepfields.F90.
|
private |
Definition at line 38 of file stepfields.F90.
|
private |
Definition at line 38 of file stepfields.F90.
|
private |
Definition at line 38 of file stepfields.F90.
|
private |
Definition at line 38 of file stepfields.F90.
|
private |
Definition at line 38 of file stepfields.F90.