ICON Community Interface 0.4.0
Loading...
Searching...
No Matches
comin_host_interface.F90
Go to the documentation of this file.
1
12!
13! - No actual implementations within this module
14!
15! @authors 01/2023 :: ICON Community Interface <comin@icon-model.org>
16!
17! SPDX-License-Identifier: BSD-3-Clause
18!
19! See LICENSES for license information.
20! Where software is supplied by third parties, it is indicated in the
21! headers of the routines.
22!
24
25 USE comin_setup, ONLY: comin_setup_check, &
33
34 USE comin_setup_constants, ONLY: ep_secondary_constructor, &
35 & ep_atm_yac_defcomp_before, &
36 & ep_atm_yac_defcomp_after, &
37 & ep_atm_yac_syncdef_before, &
38 & ep_atm_yac_syncdef_after, &
39 & ep_atm_yac_enddef_before, &
40 & ep_atm_yac_enddef_after, &
41 & ep_atm_init_finalize, &
42 & ep_atm_timeloop_before, &
43 & ep_atm_timeloop_start, &
44 & ep_atm_timeloop_end, &
45 & ep_atm_timeloop_after, &
46 & ep_atm_integrate_before, &
47 & ep_atm_integrate_start, &
48 & ep_atm_integrate_end, &
49 & ep_atm_integrate_after, &
50 & ep_atm_write_output_before, &
51 & ep_atm_write_output_after, &
52 & ep_atm_checkpoint_before, &
53 & ep_atm_checkpoint_after, &
54 & ep_atm_advection_before, &
55 & ep_atm_advection_after, &
56 & ep_atm_physics_before, &
57 & ep_atm_physics_after, &
58 & ep_atm_nudging_before, &
59 & ep_atm_nudging_after, &
60 & ep_atm_surface_before, &
61 & ep_atm_surface_after, &
62 & ep_atm_turbulence_before, &
63 & ep_atm_turbulence_after, &
64 & ep_atm_microphysics_before, &
65 & ep_atm_microphysics_after, &
66 & ep_atm_convection_before, &
67 & ep_atm_convection_after, &
68 & ep_atm_radiation_before, &
69 & ep_atm_radiation_after, &
70 & ep_atm_radheat_before, &
71 & ep_atm_radheat_after, &
72 & ep_atm_gwdrag_before, &
73 & ep_atm_gwdrag_after, &
74 & ep_finish, &
75 & ep_destructor, &
76 & comin_zaxis_none, &
77 & comin_zaxis_2d, comin_zaxis_3d, &
78 & comin_zaxis_3d_half, &
79 & comin_zaxis_undef, &
81 & comin_hgrid_unstructured_cell, &
82 & comin_hgrid_unstructured_edge, &
83 & comin_hgrid_unstructured_vertex, &
84 & comin_metadata_typeid_undefined, &
85 & comin_metadata_typeid_integer, &
86 & comin_metadata_typeid_real, &
87 & comin_metadata_typeid_character, &
88 & comin_metadata_typeid_logical, &
89 & comin_var_datatype_double, &
90 & comin_var_datatype_float, &
91 & comin_var_datatype_int, &
92 & comin_dim_semantics_undef, &
93 & comin_dim_semantics_nproma, &
94 & comin_dim_semantics_block, &
95 & comin_dim_semantics_unblock, &
96 & comin_dim_semantics_level, &
97 & comin_dim_semantics_container,&
98 & comin_dim_semantics_other, &
99 & comin_dim_semantics_unused
113 USE comin_metadata, ONLY: comin_metadata_set => comin_metadata_set_host, &
132
133 IMPLICIT NONE
134
135 PRIVATE
136
137#include "comin_global.inc"
138
139 ! From comin_state:
142 PUBLIC :: comin_setup_errhandler
143
144 ! From comin_setup:
145 PUBLIC :: comin_setup_init
147
148 ! From comin_plugin_types:
150
151 ! From comin_callback:
153
154 ! From comin_setup_utils:
155 PUBLIC :: t_comin_setup_version_info, &
157 PUBLIC :: ep_secondary_constructor, &
158 & ep_atm_yac_defcomp_before, &
159 & ep_atm_yac_defcomp_after, &
160 & ep_atm_yac_syncdef_before, &
161 & ep_atm_yac_syncdef_after, &
162 & ep_atm_yac_enddef_before, &
163 & ep_atm_yac_enddef_after, &
164 & ep_atm_init_finalize, &
165 & ep_atm_timeloop_before, &
166 & ep_atm_timeloop_start, &
167 & ep_atm_timeloop_end, &
168 & ep_atm_timeloop_after, &
169 & ep_atm_integrate_before, &
170 & ep_atm_integrate_start, &
171 & ep_atm_integrate_end, &
172 & ep_atm_integrate_after, &
173 & ep_atm_write_output_before, &
174 & ep_atm_write_output_after, &
175 & ep_atm_checkpoint_before, &
176 & ep_atm_checkpoint_after, &
177 & ep_atm_advection_before, &
178 & ep_atm_advection_after, &
179 & ep_atm_physics_before, &
180 & ep_atm_physics_after, &
181 & ep_atm_nudging_before, &
182 & ep_atm_nudging_after, &
183 & ep_atm_surface_before, &
184 & ep_atm_surface_after, &
185 & ep_atm_turbulence_before, &
186 & ep_atm_turbulence_after, &
187 & ep_atm_microphysics_before, &
188 & ep_atm_microphysics_after, &
189 & ep_atm_convection_before, &
190 & ep_atm_convection_after, &
191 & ep_atm_radiation_before, &
192 & ep_atm_radiation_after, &
193 & ep_atm_radheat_before, &
194 & ep_atm_radheat_after, &
195 & ep_atm_gwdrag_before, &
196 & ep_atm_gwdrag_after, &
197 & ep_finish, &
198 & ep_destructor
199 PUBLIC :: comin_zaxis_none, comin_zaxis_2d, comin_zaxis_3d, comin_zaxis_3d_half, comin_zaxis_undef
202 PUBLIC :: comin_hgrid_unstructured_cell, &
203 & comin_hgrid_unstructured_edge, &
204 & comin_hgrid_unstructured_vertex
205 PUBLIC :: comin_metadata_typeid_undefined, &
206 & comin_metadata_typeid_integer, &
207 & comin_metadata_typeid_real, &
208 & comin_metadata_typeid_character, &
209 & comin_metadata_typeid_logical
210 PUBLIC :: comin_var_datatype_double, comin_var_datatype_float, comin_var_datatype_int
211 PUBLIC :: comin_dim_semantics_undef, &
212 & comin_dim_semantics_nproma, &
213 & comin_dim_semantics_block, &
214 & comin_dim_semantics_unblock, &
215 & comin_dim_semantics_level, &
216 & comin_dim_semantics_container,&
217 & comin_dim_semantics_other, &
218 & comin_dim_semantics_unused
219
220 ! From comin_variable:
225 PUBLIC :: comin_request_get_list
232 PUBLIC :: t_comin_request_item
234 PUBLIC :: comin_var_set_cptr
235 PUBLIC :: comin_var_is_used
236 ! From comin_metadata:
237 PUBLIC :: comin_metadata_set
240 PUBLIC :: comin_metadata_get_or
241 PUBLIC :: comin_metadata_get
242 ! From comin_metadata_types:
244 ! From comin_parallel:
247
248 ! From comin_descrdata:
254
255 ! From mo_mpi_handshake
257
258 ! From comin_errhandler_constants
259 PUBLIC :: comin_success
260
261 ! From comin_ftnlist_ifc
262 PUBLIC :: comin_ftnlist_is_end
267
268END MODULE comin_host_interface
subroutine, public comin_metadata_get_iterator(var_descriptor, iterator)
Return a metadata container iterator.
integer, parameter, public comin_domain_outside_loop
id of current domain, two states possible if not in domain loop
integer function, public comin_metadata_get_typeid(var_descriptor, key)
Return a ID (integer) describing the the metadata for a given key string.
integer function, public comin_parallel_get_host_mpi_comm()
Returns the communicator with all ICON processes.
type(t_comin_setup_version_info) function, public comin_setup_get_version()
Returns version info.
subroutine, public comin_setup_check(plugin_str, wp_check)
Performs basic compatibility checks.
type(c_ptr) function, public comin_request_get_list()
subroutine, public comin_setup_set_verbosity_level(iverbosity)
Sets verbosity level, related to ICON's msg_level. 0 = silent.
subroutine, public comin_plugin_primaryconstructor(plugin_list)
Execute primary constructors.
subroutine, public comin_descrdata_finalize()
Clean descriptive data structure in ComIn currently no content but keep for future use.
subroutine, public comin_var_request_list_finalize()
Destruct variable request list, deallocate memory.
subroutine, public comin_var_list_finalize()
Destruct variable list, deallocate memory.
recursive subroutine, public comin_callback_context_call(entry_point_id, domain_id, lacc)
Routine to find callback routine associated with current entry point.
subroutine, public comin_descrdata_set_simulation_interval(comin_time_info)
Fill time stamp info.
subroutine, public comin_descrdata_set_fct_glb2loc_cell(fct)
Sets the "global-to-local" index lookup function.
subroutine, public comin_descrdata_set_domain(comin_domain_info)
Set up data type for grid data.
subroutine, public comin_setup_init(lstdout, output_unit)
Initialize the comin stateThis routine needs to be called by the host before any other comin call.
subroutine, public mpi_handshake(comm, group_names, group_comms)
Procedure for the communicator splitting ("MPI handshake") that has been harmonized with the respecti...
subroutine, public comin_setup_finalize()
Destructor.
subroutine, public comin_current_set_datetime(sim_time_current)
Update time stamp info, current time information.
subroutine, public comin_var_list_append(var_descr, cptr, device_ptr, array_shape, type_id, dim_semantics, lcontainer, ncontained, var_handle)
Append item to variable list.
subroutine, public comin_descrdata_set_timesteplength(jg, dt_current)
Fill array with timestep.
subroutine, public comin_parallel_mpi_handshake(comm, group_names, component_name)
Procedure for the communicator splitting ("MPI handshake") that has been harmonized with the respecti...
subroutine, public comin_descrdata_set_global(comin_global_info)
Fill global data.
subroutine, public comin_setup_errhandler(error_handler)
Sets the global error handler procedure pointer.
subroutine, public comin_callback_get_ep_name(iep, out_ep_name)
returns entry point name (character string) corresponding to iep.
Read-only access to additional information about a given variable.
Sets metadata for an exposed variable. Note: The host model uses the alias comin_metadata_set.
logical function comin_var_descr_match(var_descriptor1, var_descriptor2)
compare two variable descriptors.
subroutine, public comin_var_descr_list_iterator_delete(it)
Delete list iterator.
logical function, public comin_var_is_used(var_descriptor)
Check if a variable is actually used by any comin plugin.
subroutine, public comin_var_descr_list_finalize()
Destruct variable descriptor list, deallocate memory.
type(c_ptr) function, public comin_var_get_descr_list_next(current)
Get next element of variable descriptor list. Returns a C-pointer that can be evaluated with the auxi...
type(c_ptr) function, public comin_var_get_descr_list_head()
Get first element of variable descriptor list. Returns a C-pointer that can be evaluated with the aux...
subroutine, public comin_var_set_sync_device_mem(sync_device_mem)
subroutine, public comin_var_set_sync_halo(sync_halo)
subroutine, public comin_var_set_cptr(var, cptr)
subroutine, public comin_var_get_descr_list_var_desc(it, var_desc_out)
Auxiliary function: Evaluates a list iterator of the variable descriptor list and returns the corresp...
subroutine, public mpi_handshake_dummy(comm)
Patch grid data structure, gathering information on grids.
Global data is invariant wrt the computational grid and never changed or updated.
Simulation status information, sim_current contains current time step.
Data type, describing the dynamic libraries.
The elements of this derived data type describe the current community interface.
Variable descriptor. identifies (uniquely) a variable. Do not confuse with meta-data.
Variable pointer. Fortran interface for accessing variables.