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, &
49 savw, vis_coefficient, &
50 diff_coefficient, dis, dis_th, &
62 tsmth=1e-2_default_precision,&
64 local_divmax, global_divmax, cvis=0.0_default_precision, surface_temperature_flux, &
65 surface_vapour_flux, theta_surf, surface_vapour_mixing_ratio, fbuoy, &
66 fbuoynew, theta_virtual_surf, cmbc, rcmbc, ellmocon, velmax, velmin, aloginv, cneut, cfc, &
67 surface_pressure=100000.0_default_precision, surface_reference_pressure = 100000.0_default_precision, &
68 cvel, cvel_x, cvel_y, cvel_z, dtm_new, rmlmax, geostrophic_wind_rate_of_change_in_x, &
69 geostrophic_wind_rate_of_change_in_y, surface_geostrophic_wind_x, surface_geostrophic_wind_y, &
70 local_zumin, local_zumax, local_zvmin, local_zvmax, local_cvel_z
72 lookup_table_ustr, cq, abswmax
73 real(kind=
default_precision),
dimension(:,:),
allocatable :: psrce_recv_buffer_x, psrce_recv_buffer_y
74 integer :: timestep=1, column_global_x, column_global_y, column_local_x, column_local_y, field_stepping, scalar_stepping, &
75 momentum_stepping, number_q_fields=0, start_timestep=1, type_of_surface_boundary_conditions, lookup_table_entries, &
76 cfl_frequency, termination_reason
77 integer :: water_vapour_mixing_ratio_index=0, liquid_water_mixing_ratio_index=0, &
78 rain_water_mixing_ratio_index=0, ice_water_mixing_ratio_index=0, &
79 snow_water_mixing_ratio_index=0, graupel_water_mixing_ratio_index=0, &
80 psrce_x_hs_send_request, psrce_y_hs_send_request, psrce_x_hs_recv_request, psrce_y_hs_recv_request
81 logical :: first_timestep_column, last_timestep_column, halo_column, first_nonhalo_timestep_column, &
82 passive_q=.false., passive_th=.false., &
83 use_time_varying_surface_values, use_anelastic_equations, &
84 saturated_surface, update_dtm=.false., calculate_th_and_q_init, origional_vertical_grid_setup=.true., &
86 logical,
allocatable :: l_forceq(:)
87 double precision :: model_start_wtime
89 logical :: galilean_transformation=.true., fix_ugal=.false., fix_vgal=.false.