22 integer :: processes, & !> Total number of processes
23 my_rank,& !> My process rank in the system
24 neighbour_comm,& !> Neighbour communicator
25 monc_communicator=-1, io_communicator=-1, corresponding_io_server_process
26 integer,
dimension(3) :: &
27 my_coords,& !> My process coordinates in each dimension
29 logical,
dimension(3,2) :: wrapped_around
30 procedure(),
nopass,
pointer :: decomposition_procedure => null()
40 logical :: continue_timestep=.true., initialised=.false., continuation_run=.false.
41 logical :: use_viscosity_and_diffusion=.true., &
42 use_surface_boundary_conditions=.true., backscatter=.true.
48 type(
prognostic_field_type) :: u, w, v, th, p, zu, zw, zv, zth, su, sw, sv, sth, savu, savv, savw, vis_coefficient, &
49 diff_coefficient, dis, dis_th
52 real(kind=DEFAULT_PRECISION) :: time=.0_default_precision,&
57 tsmth=1e-2_default_precision,&
59 local_divmax, global_divmax, cvis=0.0_default_precision, surface_temperature_flux, &
60 surface_vapour_flux, theta_surf, surface_vapour_mixing_ratio, fbuoy, &
61 fbuoynew, theta_virtual_surf, cmbc, rcmbc, ellmocon, velmax, velmin, aloginv, cneut, cfc, &
62 surface_pressure=100000.0_default_precision, surface_reference_pressure = 100000.0_default_precision, &
63 cvel, cvel_x, cvel_y, cvel_z, dtm_new, rmlmax, geostrophic_wind_rate_of_change_in_x, &
64 geostrophic_wind_rate_of_change_in_y, surface_geostrophic_wind_x, surface_geostrophic_wind_y, &
65 local_zumin, local_zumax, local_zvmin, local_zvmax, local_cvel_z
66 real(kind=DEFAULT_PRECISION),
dimension(:),
allocatable :: lookup_table_velocity, &
67 lookup_table_ustr, cq, abswmax
68 real(kind=DEFAULT_PRECISION),
dimension(:,:),
allocatable :: psrce_recv_buffer_x, psrce_recv_buffer_y
69 integer :: timestep=1, column_global_x, column_global_y, column_local_x, column_local_y, field_stepping, scalar_stepping, &
70 momentum_stepping, number_q_fields=0, start_timestep=1, type_of_surface_boundary_conditions, lookup_table_entries, &
71 cfl_frequency, termination_reason
72 integer :: water_vapour_mixing_ratio_index=0, liquid_water_mixing_ratio_index=0, &
73 psrce_x_hs_send_request, psrce_y_hs_send_request, psrce_x_hs_recv_request, psrce_y_hs_recv_request
74 logical :: first_timestep_column, last_timestep_column, halo_column, first_nonhalo_timestep_column, &
75 passive_q=.false., passive_th=.false., &
76 use_time_varying_surface_values, use_anelastic_equations, &
77 saturated_surface, update_dtm=.false., calculate_th_and_q_init, origional_vertical_grid_setup=.true., &
79 logical,
allocatable :: l_forceq(:)
80 double precision :: model_start_wtime
82 logical :: galilean_transformation=.true., fix_ugal=.false., fix_vgal=.false.
83 real(kind=DEFAULT_PRECISION) :: ugal=0.,vgal=0.
integer, parameter, public message_termination_reason
integer, parameter, public forward_stepping
Contains the types used for communication, holding the state of communications and supporting activit...
Contains prognostic field definitions and functions.
A prognostic field which is assumed to be 3D.
integer, parameter, public default_precision
MPI communication type which we use for the prognostic and calculation data.
Information about the parallel aspects of the system.
Contains common definitions for the data and datatypes used by MONC.
The ModelState which represents the current state of a run.
integer, parameter, public centred_stepping
Stepping parameter values which determine centred or forward stepping.
A hashmap structure, the same as a map but uses hashing for greatly improved performance when storing...
integer, parameter, public prescribed_surface_fluxes
integer, parameter, public timestep_termination_reason
Maintains the state of a halo swap and contains buffers, neighbours etc.
Defined the local grid, i.e. the grid held on this process after decomposition.
Collection data structures.
integer, parameter, public time_termination_reason
The constants defining the reason why the model has terminated.
integer, parameter, public prescribed_surface_values
Functionality to support the different types of grid and abstraction between global grids and local o...
integer, parameter, public walltime_termination_reason
The model state which represents the current state of a run.