|
MONC
|
Implements TVD advection for prognostic fields. More...
Functions/Subroutines | |
| type(component_descriptor_type) function, public | tvdadvection_get_descriptor () |
| Provides a description of this component for the core to register. More... | |
| subroutine | field_information_retrieval_callback (current_state, name, field_information) |
| Field information retrieval callback, this returns information for a specific components 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 | initialisation_callback (current_state) |
| Sets up the stencil_mod (used in interpolation) and allocates data for the flux fields. More... | |
| subroutine | finalisation_callback (current_state) |
| Frees up the memory associated with the advection. More... | |
| subroutine | timestep_callback (current_state) |
| Timestep callback hook which performs the TVD advection for each prognostic field. More... | |
| subroutine | advect_flow_fields (current_state) |
| Will advect the flow fields. More... | |
| subroutine | advect_q_fields (current_state) |
| Advects the Q fields. More... | |
| subroutine | advect_theta (current_state) |
| Advects the theta field if it is active. More... | |
| subroutine | advect_scalar_field (y_local_index, x_local_index, dt, u, v, w, z_q_field, q_field, source_field, global_grid, local_grid, parallel, halo_column, field_stepping) |
| Advects a single scalar field. More... | |
| subroutine | advect_u (y_local_index, x_local_index, dt, u, v, w, zf, su, global_grid, local_grid, parallel, halo_column, field_stepping) |
| Advects the U flow field. More... | |
| subroutine | advect_v (y_local_index, x_local_index, dt, u, v, w, zf, sv, global_grid, local_grid, parallel, halo_column, field_stepping) |
| Advects the V flow field. More... | |
| subroutine | advect_w (y_local_index, x_local_index, dt, u, v, w, zf, sw, global_grid, local_grid, parallel, halo_column, field_stepping) |
| Advects the W flow field. More... | |
| subroutine | differentiate_face_values (y_flow_index, x_flow_index, u, v, w, y_source_index, x_source_index, source_field, local_grid, global_grid, flux_y_previous, flux_x_previous, tzc1, tzc2, differentiate_top) |
| Differentiates face values to update the source field. More... | |
| subroutine | complete_y_flux_wrap_send_if_required (y_local_index, field, parallel, local_grid) |
| Completes the Y flux MPI asynchronous send if required. More... | |
| subroutine | register_y_flux_wrap_send_if_required (y_local_index, field, parallel, local_grid) |
| Registers an asynchronous send for the Y flux if required. More... | |
| subroutine | complete_y_flux_wrap_recv_if_required (y_local_index, field, parallel, local_grid) |
| Completes the Y flux MPI asynchronous recieve if required. If the wrap around process is the same (one process in the y dimension) then just issues a local copy. More... | |
| subroutine | register_y_flux_wrap_recv_if_required (y_local_index, field, parallel, local_grid) |
| Registers an MPI asynchronous receive for the flux if required. More... | |
| subroutine | save_precomponent_tendencies (current_state, cxn, cyn, txn, tyn) |
| Save the 3d tendencies coming into the component. More... | |
| subroutine | compute_component_tendencies (current_state, cxn, cyn, txn, tyn) |
| Computation of component tendencies. 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. More... | |
| logical function | determine_if_advection_here (field) |
| Parses a field string (read in from the configuration file) and determines whether this algorithm should be used for advecting that field. More... | |
Variables | |
| type(grid_stencil_type), save | star_stencil |
| integer, save | u_index =0 |
| integer, save | v_index =0 |
| integer, save | w_index =0 |
| logical | advect_flow |
| logical | advect_th |
| logical | advect_q |
| real(kind=default_precision), dimension(:), allocatable | flux_x |
| real(kind=default_precision), dimension(:), allocatable | flux_y |
| real(kind=default_precision), dimension(:), allocatable | flux_z |
| real(kind=default_precision), dimension(:), allocatable | u_advection |
| real(kind=default_precision), dimension(:), allocatable | v_advection |
| real(kind=default_precision), dimension(:), allocatable | w_advection |
| real(kind=default_precision), dimension(:), allocatable | th_advection |
| real(kind=default_precision), dimension(:,:), allocatable | q_advection |
| type(prognostic_field_type), dimension(:), allocatable | interpolated_fields |
| real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_u |
| real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_v |
| real(kind=default_precision), dimension(:,:,:), allocatable | tend_3d_w |
| 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_u |
| logical | l_tend_3d_v |
| logical | l_tend_3d_w |
| 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_u |
| real(kind=default_precision), dimension(:), allocatable | tend_pr_tot_v |
| real(kind=default_precision), dimension(:), allocatable | tend_pr_tot_w |
| 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_u |
| logical | l_tend_pr_tot_v |
| logical | l_tend_pr_tot_w |
| 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 |
Implements TVD advection for prognostic fields.
|
private |
Will advect the flow fields.
| current_state | The current model state_mod |
Definition at line 586 of file tvdadvection.F90.


|
private |
Advects the Q fields.
| current_state | The current model state_mod |
Definition at line 633 of file tvdadvection.F90.


|
private |
Advects a single scalar field.
Definition at line 685 of file tvdadvection.F90.


|
private |
Advects the theta field if it is active.
| current_state | The current model state_mod |
Definition at line 662 of file tvdadvection.F90.


|
private |
Advects the U flow field.
Definition at line 728 of file tvdadvection.F90.


|
private |
Advects the V flow field.
Definition at line 777 of file tvdadvection.F90.


|
private |
Advects the W flow field.
Definition at line 826 of file tvdadvection.F90.


|
private |
Completes the Y flux MPI asynchronous recieve if required. If the wrap around process is the same (one process in the y dimension) then just issues a local copy.
| y_local_index | The local index in Y |
| field | The prognostic field |
| parallel | Parallel system description |
| local_grid | The local grid description |
Definition at line 977 of file tvdadvection.F90.

|
private |
Completes the Y flux MPI asynchronous send if required.
| y_local_index | The local index in Y |
| field | The prognostic field |
| parallel | Parallel system description |
| local_grid | The local grid description |
Definition at line 930 of file tvdadvection.F90.

|
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 1075 of file tvdadvection.F90.

|
private |
Parses a field string (read in from the configuration file) and determines whether this algorithm should be used for advecting that field.
| field | The string configuration of field advection |
Definition at line 1181 of file tvdadvection.F90.

|
private |
Differentiates face values to update the source field.
Definition at line 874 of file tvdadvection.F90.

|
private |
Field information retrieval callback, this returns information for a specific components 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 |
Definition at line 108 of file tvdadvection.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 207 of file tvdadvection.F90.


|
private |
Frees up the memory associated with the advection.
| current_state | The current model state |
Definition at line 472 of file tvdadvection.F90.

|
private |
Sets up the stencil_mod (used in interpolation) and allocates data for the flux fields.
| current_state | The current model state_mod |
Definition at line 277 of file tvdadvection.F90.


|
private |
Registers an MPI asynchronous receive for the flux if required.
This is registered at the start and we have until the last column in Y until it must be completed. No communication is registered if this is a local operation
| y_local_index | The local index in Y |
| field | The prognostic field |
| parallel | Parallel system description |
| local_grid | The local grid description |
Definition at line 1002 of file tvdadvection.F90.

|
private |
Registers an asynchronous send for the Y flux if required.
This is done after the second y is computed and we have until the entire Y dimension is completed until the communication must be complete. If the wrap around process is the same (one process in Y dimension) then just issues a local copy to the buffer.
| y_local_index | The local index in Y |
| field | The prognostic field |
| parallel | Parallel system description |
| local_grid | The local grid description |
Definition at line 953 of file tvdadvection.F90.

|
private |
Save the 3d tendencies coming into the component.
| 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 1027 of file tvdadvection.F90.

|
private |
Sets the published field value from the temporary diagnostic values held by.
Definition at line 1159 of file tvdadvection.F90.

|
private |
Timestep callback hook which performs the TVD advection for each prognostic field.
| current_state | The current model state_mod |
Definition at line 514 of file tvdadvection.F90.


| type(component_descriptor_type) function, public tvdadvection_mod::tvdadvection_get_descriptor |
Provides a description of this component for the core to register.
Definition at line 62 of file tvdadvection.F90.

|
private |
Definition at line 28 of file tvdadvection.F90.
|
private |
Definition at line 28 of file tvdadvection.F90.
|
private |
Definition at line 28 of file tvdadvection.F90.
|
private |
Definition at line 54 of file tvdadvection.F90.
|
private |
Definition at line 29 of file tvdadvection.F90.
|
private |
Definition at line 29 of file tvdadvection.F90.
|
private |
Definition at line 29 of file tvdadvection.F90.
|
private |
Definition at line 33 of file tvdadvection.F90.
|
private |
Definition at line 53 of file tvdadvection.F90.
|
private |
Definition at line 53 of file tvdadvection.F90.
|
private |
Definition at line 53 of file tvdadvection.F90.
|
private |
Definition at line 53 of file tvdadvection.F90.
|
private |
Definition at line 53 of file tvdadvection.F90.
|
private |
Definition at line 53 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 41 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 49 of file tvdadvection.F90.
|
private |
Definition at line 31 of file tvdadvection.F90.
|
private |
Definition at line 26 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 37 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 45 of file tvdadvection.F90.
|
private |
Definition at line 29 of file tvdadvection.F90.
|
private |
Definition at line 29 of file tvdadvection.F90.
|
private |
Definition at line 27 of file tvdadvection.F90.
|
private |
Definition at line 29 of file tvdadvection.F90.
|
private |
Definition at line 27 of file tvdadvection.F90.
|
private |
Definition at line 29 of file tvdadvection.F90.
|
private |
Definition at line 27 of file tvdadvection.F90.