ICON Community Interface 0.4.0
Loading...
Searching...
No Matches
Plugin Interface

Data Types

interface  comin_metadata::comin_metadata_set_request
 Sets metadata for a requested ComIn variable. Note:Plugins use the alias comin_metadata_set. More...
 
interface  comin_metadata::comin_metadata_get
 Read-only access to additional information about a given variable. More...
 
type  comin_plugin_types::t_comin_plugin_info
 The elements of this derived data type describe a 3rd party plugin. More...
 

Functions/Subroutines

subroutine, public comin_callback::comin_callback_register (entry_point_id, fct_ptr)
 Routine to register new callbacks during primary constructor.
 
subroutine, public comin_callback::comin_callback_get_ep_name (iep, out_ep_name)
 returns entry point name (character string) corresponding to iep.
 
subroutine, public comin_descrdata::comin_current_get_datetime (sim_time_current)
 Retrieve time stamp info, current time information.
 
type(t_comin_descrdata_global) function, pointer, public comin_descrdata::comin_descrdata_get_global ()
 request a pointer to the global data type
 
type(t_comin_descrdata_domain) function, pointer, public comin_descrdata::comin_descrdata_get_domain (jg)
 request a pointer to the grid data type for a specific computational domain
 
type(t_comin_descrdata_simulation_interval) function, pointer, public comin_descrdata::comin_descrdata_get_simulation_interval ()
 request a pointer to simulation status
 
real(wp) function, public comin_descrdata::comin_descrdata_get_timesteplength (jg)
 Receive pointer on array storing timestep information for all domains.
 
integer(c_int) function, public comin_descrdata::comin_descrdata_get_block (idx1d)
 auxiliary functions taken from ICON, version 2.6.5
 
integer(c_int) function, public comin_descrdata::comin_descrdata_get_index (idx1d)
 Auxiliary function: conversion of 1D to 2D indices.
 
subroutine, public comin_descrdata::comin_descrdata_get_cell_indices (jg, i_blk, i_startblk, i_endblk, i_startidx, i_endidx, irl_start, irl_end)
 Computes the start and end indices of do loops for cell-based variables.
 
subroutine, public comin_descrdata::comin_descrdata_get_edge_indices (jg, i_blk, i_startblk, i_endblk, i_startidx, i_endidx, irl_start, irl_end)
 Computes the start and end indices of do loops for edge-based variables.
 
subroutine, public comin_descrdata::comin_descrdata_get_vert_indices (jg, i_blk, i_startblk, i_endblk, i_startidx, i_endidx, irl_start, irl_end)
 Computes the start and end indices of do loops for vertex-based variables.
 
integer(c_int) function, public comin_descrdata::comin_descrdata_get_cell_npromz (jg)
 Calculate npromz value for the blocking, needed for patch allocation. ... for the cells.
 
integer(c_int) function, public comin_descrdata::comin_descrdata_get_edge_npromz (jg)
 Calculate npromz value for the blocking, needed for patch allocation. ... for the edges.
 
integer(c_int) function, public comin_descrdata::comin_descrdata_get_vert_npromz (jg)
 Calculate npromz value for the blocking, needed for patch allocation. ... for the vertices.
 
integer(c_int) function, public comin_descrdata::comin_descrdata_index_lookup_glb2loc_cell (jg, global_idx)
 Conversion of global cell index to MPI-process local index.
 
subroutine comin_plugin_finish_external (routine, text)
 Wrapper function for callback to ICON's "finish" routine.
 
subroutine, public comin_errhandler::comin_plugin_finish (routine, text)
 Wrapper function for callback to ICON's "finish" routine.
 
subroutine, public comin_errhandler::comin_error_get_message (error_code, category, message)
 query the message and category for a given error code
 
subroutine, public comin_errhandler::comin_error_check ()
 check the error code: does nothing if error_code == COMIN_SUCCESS prints the corresponding message calls comin_plugin_finish if the error_code is an error or fatal error
 
integer(c_int) function, public comin_errhandler::comin_error_get ()
 returns the current error code
 
subroutine, public comin_errhandler::comin_error_reset ()
 resets the internal error code to COMIN_SUCCESS
 
subroutine, public comin_errhandler::comin_error_set_errors_return (errors_return)
 Change the error handling mode. Set it to .TRUE. to handle errors manually. If it set to .FALSE. (default) comin calls finish if an error occurs.
 
integer function, public comin_parallel::comin_parallel_get_plugin_mpi_comm ()
 Called within a plugin's callback function: get MPI communicator which contains all MPI tasks of the host model together with the plugin's external MPI partners (if any).
 
integer(kind=c_int) function, public comin_parallel::comin_parallel_get_host_mpi_rank ()
 Called within a plugin's callback function: get MPI rank with respect to the "host" MPI communicator.
 
subroutine, public comin_print::comin_print_debug (msg)
 Prints a debug message if the plugin has set log_debug (disabled per default) The message will only be printed on process 0.
 
subroutine, public comin_print::comin_print_info (msg)
 Prints a info message if the plugin has set log_info (enabled per default) The message will only be printed on process 0.
 
subroutine, public comin_print::comin_print_warning (msg)
 Prints a warning if the plugin has set log_warning (enabled per default) The message will only be printed on process 0.
 
subroutine, public comin_setup::comin_current_get_plugin_info (comin_current_plugin)
 Returns the structure current_plugin. It can for example be used to access the id of the current plugin.
 
integer(c_int) function, public comin_state::comin_current_get_ep ()
 Access information on the current entry point being processed by ComIn.
 
integer(c_int) function, public comin_state::comin_current_get_domain_id ()
 Request information on current domain.
 
subroutine, public comin_variable::comin_var_get (context, var_descriptor, flag, var_ptr)
 Request a pointer to an ICON variable in context(s).
 
subroutine, public comin_variable::comin_var_request_add (var_descriptor, lmodexclusive)
 By calling this subroutine inside the primary constructor, 3rd party plugins may request the creation of additional variables.
 
subroutine comin_variable_types::comin_var_to_3d_dp (var, slice)
 Convenience operation for accessing 2D/3D fields.
 
subroutine comin_variable_types::comin_var_to_3d_sp (var, slice)
 Convenience operation for accessing 2D/3D fields.
 
subroutine comin_variable_types::comin_var_to_3d_i (var, slice)
 Convenience operation for accessing 2D/3D fields.
 

Detailed Description

Entities that are exposed to both, the host interface and the plugin interface are listed in the group Common.

Function/Subroutine Documentation

◆ comin_callback_get_ep_name()

subroutine, public comin_callback::comin_callback_get_ep_name ( integer, intent(in) iep,
character(len=:), intent(out), allocatable out_ep_name )

returns entry point name (character string) corresponding to iep.

Parameters
[in]iepentry point ID
[out]out_ep_nameentry point name string

Definition at line 308 of file comin_callback.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_callback_register()

subroutine, public comin_callback::comin_callback_register ( integer(kind=c_int), intent(in), value entry_point_id,
procedure(comin_callback_routine) fct_ptr )

Routine to register new callbacks during primary constructor.

Also stores the currently active 3rd party plugin "current_plugin".

callbacks cannot be registered after primary constructor

Definition at line 46 of file comin_callback.F90.

Here is the call graph for this function:

◆ comin_current_get_datetime()

subroutine, public comin_descrdata::comin_current_get_datetime ( character(len=:), intent(out), allocatable sim_time_current)

Retrieve time stamp info, current time information.

Definition at line 68 of file comin_descrdata.F90.

◆ comin_current_get_domain_id()

integer(c_int) function, public comin_state::comin_current_get_domain_id

Request information on current domain.

Definition at line 134 of file comin_state.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_current_get_ep()

integer(c_int) function, public comin_state::comin_current_get_ep

Access information on the current entry point being processed by ComIn.

Definition at line 127 of file comin_state.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_current_get_plugin_info()

subroutine, public comin_setup::comin_current_get_plugin_info ( type(t_comin_plugin_info), intent(out) comin_current_plugin)

Returns the structure current_plugin. It can for example be used to access the id of the current plugin.

Parameters
[out]comin_current_pluginplugin info struct

Definition at line 226 of file comin_setup.F90.

◆ comin_descrdata_get_block()

integer(c_int) function, public comin_descrdata::comin_descrdata_get_block ( integer(c_int), intent(in), value idx1d)

auxiliary functions taken from ICON, version 2.6.5

from mo_parallel_config names of routines in ICON are: blk_no, idx_no Auxiliary function: conversion of 1D to 2D indices.

Definition at line 230 of file comin_descrdata.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_descrdata_get_cell_indices()

subroutine, public comin_descrdata::comin_descrdata_get_cell_indices ( integer(c_int), intent(in), value jg,
integer(c_int), intent(in), value i_blk,
integer(c_int), intent(in), value i_startblk,
integer(c_int), intent(in), value i_endblk,
integer(c_int), intent(out) i_startidx,
integer(c_int), intent(out) i_endidx,
integer(c_int), intent(in), value irl_start,
integer(c_int), intent(in), value irl_end )

Computes the start and end indices of do loops for cell-based variables.

From ICON's mo_loopindices

Definition at line 251 of file comin_descrdata.F90.

◆ comin_descrdata_get_cell_npromz()

integer(c_int) function, public comin_descrdata::comin_descrdata_get_cell_npromz ( integer(c_int), intent(in), value jg)

Calculate npromz value for the blocking, needed for patch allocation. ... for the cells.

NB: Avoid the case nblks=0 for empty patches, this might cause troubles if a empty patch is used somewhere (and npromz gets wrong in the formulas below).

from mo_setup_subdivision

Definition at line 345 of file comin_descrdata.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_descrdata_get_domain()

type(t_comin_descrdata_domain) function, pointer, public comin_descrdata::comin_descrdata_get_domain ( integer, intent(in) jg)

request a pointer to the grid data type for a specific computational domain

Definition at line 105 of file comin_descrdata.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_descrdata_get_edge_indices()

subroutine, public comin_descrdata::comin_descrdata_get_edge_indices ( integer(c_int), intent(in), value jg,
integer(c_int), intent(in), value i_blk,
integer(c_int), intent(in), value i_startblk,
integer(c_int), intent(in), value i_endblk,
integer(c_int), intent(out) i_startidx,
integer(c_int), intent(out) i_endidx,
integer(c_int), intent(in), value irl_start,
integer(c_int), intent(in), value irl_end )

Computes the start and end indices of do loops for edge-based variables.

From ICON's mo_loopindices

Definition at line 283 of file comin_descrdata.F90.

◆ comin_descrdata_get_edge_npromz()

integer(c_int) function, public comin_descrdata::comin_descrdata_get_edge_npromz ( integer(c_int), intent(in), value jg)

Calculate npromz value for the blocking, needed for patch allocation. ... for the edges.

NB: Avoid the case nblks=0 for empty patches, this might cause troubles if a empty patch is used somewhere (and npromz gets wrong in the formulas below).

from mo_setup_subdivision

Definition at line 360 of file comin_descrdata.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_descrdata_get_global()

type(t_comin_descrdata_global) function, pointer, public comin_descrdata::comin_descrdata_get_global

request a pointer to the global data type

Definition at line 92 of file comin_descrdata.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_descrdata_get_index()

integer(c_int) function, public comin_descrdata::comin_descrdata_get_index ( integer(c_int), intent(in), value idx1d)

Auxiliary function: conversion of 1D to 2D indices.

Definition at line 237 of file comin_descrdata.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_descrdata_get_simulation_interval()

type(t_comin_descrdata_simulation_interval) function, pointer, public comin_descrdata::comin_descrdata_get_simulation_interval

request a pointer to simulation status

Definition at line 120 of file comin_descrdata.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_descrdata_get_timesteplength()

real(wp) function, public comin_descrdata::comin_descrdata_get_timesteplength ( integer(c_int), intent(in), value jg)

Receive pointer on array storing timestep information for all domains.

Definition at line 171 of file comin_descrdata.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_descrdata_get_vert_indices()

subroutine, public comin_descrdata::comin_descrdata_get_vert_indices ( integer(c_int), intent(in), value jg,
integer(c_int), intent(in), value i_blk,
integer(c_int), intent(in), value i_startblk,
integer(c_int), intent(in), value i_endblk,
integer(c_int), intent(out) i_startidx,
integer(c_int), intent(out) i_endidx,
integer(c_int), intent(in), value irl_start,
integer(c_int), intent(in), value irl_end )

Computes the start and end indices of do loops for vertex-based variables.

From ICON's mo_loopindices

Definition at line 310 of file comin_descrdata.F90.

◆ comin_descrdata_get_vert_npromz()

integer(c_int) function, public comin_descrdata::comin_descrdata_get_vert_npromz ( integer(c_int), intent(in), value jg)

Calculate npromz value for the blocking, needed for patch allocation. ... for the vertices.

NB: Avoid the case nblks=0 for empty patches, this might cause troubles if a empty patch is used somewhere (and npromz gets wrong in the formulas below).

from mo_setup_subdivision

Definition at line 375 of file comin_descrdata.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_descrdata_index_lookup_glb2loc_cell()

integer(c_int) function, public comin_descrdata::comin_descrdata_index_lookup_glb2loc_cell ( integer(kind=c_int), intent(in), value jg,
integer(kind=c_int), intent(in), value global_idx )

Conversion of global cell index to MPI-process local index.

Parameters
[in]jgdomain index
[in]global_idxglobal cell index

Definition at line 384 of file comin_descrdata.F90.

◆ comin_error_check()

subroutine, public comin_errhandler::comin_error_check

check the error code: does nothing if error_code == COMIN_SUCCESS prints the corresponding message calls comin_plugin_finish if the error_code is an error or fatal error

Definition at line 145 of file comin_errhandler.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_error_get()

integer(c_int) function, public comin_errhandler::comin_error_get

returns the current error code

Definition at line 184 of file comin_errhandler.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_error_get_message()

subroutine, public comin_errhandler::comin_error_get_message ( integer, intent(in) error_code,
character(len=11), intent(inout) category,
character(len=comin_max_len_err_message), intent(inout) message )

query the message and category for a given error code

Definition at line 102 of file comin_errhandler.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_error_reset()

subroutine, public comin_errhandler::comin_error_reset

resets the internal error code to COMIN_SUCCESS

Definition at line 192 of file comin_errhandler.F90.

◆ comin_error_set_errors_return()

subroutine, public comin_errhandler::comin_error_set_errors_return ( logical, intent(in) errors_return)

Change the error handling mode. Set it to .TRUE. to handle errors manually. If it set to .FALSE. (default) comin calls finish if an error occurs.

Definition at line 201 of file comin_errhandler.F90.

◆ comin_parallel_get_host_mpi_rank()

integer(kind=c_int) function, public comin_parallel::comin_parallel_get_host_mpi_rank

Called within a plugin's callback function: get MPI rank with respect to the "host" MPI communicator.

Definition at line 127 of file comin_parallel.F90.

Here is the call graph for this function:

◆ comin_parallel_get_plugin_mpi_comm()

integer function, public comin_parallel::comin_parallel_get_plugin_mpi_comm

Called within a plugin's callback function: get MPI communicator which contains all MPI tasks of the host model together with the plugin's external MPI partners (if any).

Definition at line 109 of file comin_parallel.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_plugin_finish()

subroutine, public comin_errhandler::comin_plugin_finish ( character(len=*), intent(in) routine,
character(len=*), intent(in) text )

Wrapper function for callback to ICON's "finish" routine.

Definition at line 67 of file comin_errhandler.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_plugin_finish_external()

subroutine comin_plugin_finish_external ( character(len=*), intent(in) routine,
character(len=*), intent(in) text )

Wrapper function for callback to ICON's "finish" routine.

Definition at line 15 of file comin_errhandler.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comin_print_debug()

subroutine, public comin_print::comin_print_debug ( character(len=*), intent(in) msg)

Prints a debug message if the plugin has set log_debug (disabled per default) The message will only be printed on process 0.

Definition at line 27 of file comin_print.F90.

Here is the caller graph for this function:

◆ comin_print_info()

subroutine, public comin_print::comin_print_info ( character(len=*), intent(in) msg)

Prints a info message if the plugin has set log_info (enabled per default) The message will only be printed on process 0.

Definition at line 46 of file comin_print.F90.

Here is the caller graph for this function:

◆ comin_print_warning()

subroutine, public comin_print::comin_print_warning ( character(len=*), intent(in) msg)

Prints a warning if the plugin has set log_warning (enabled per default) The message will only be printed on process 0.

Definition at line 65 of file comin_print.F90.

Here is the caller graph for this function:

◆ comin_var_get()

subroutine, public comin_variable::comin_var_get ( integer, dimension(:), intent(in) context,
type(t_comin_var_descriptor), intent(in) var_descriptor,
integer, intent(in) flag,
type(t_comin_var_handle), intent(out) var_ptr )

Request a pointer to an ICON variable in context(s).

Definition at line 466 of file comin_variable.F90.

Here is the call graph for this function:

◆ comin_var_request_add()

subroutine, public comin_variable::comin_var_request_add ( type (t_comin_var_descriptor), intent(in) var_descriptor,
logical, intent(in) lmodexclusive )

By calling this subroutine inside the primary constructor, 3rd party plugins may request the creation of additional variables.

Note: The lmodexclusive argument provides the information if this variable is exclusive to the calling plugin.

Note: If a 3rd party plugin requests the creation of a variable through this subroutine, it is still not guaranteed that this variable is actually created! It might be skipped due to inconsistencies, it could be a duplicate etc. Therefore, 3rd party plugins still have to evaluate the return code of comin_var_request_add.

Definition at line 539 of file comin_variable.F90.

Here is the caller graph for this function:

◆ comin_var_to_3d_dp()

subroutine comin_variable_types::comin_var_to_3d_dp ( class(t_comin_var_handle), intent(in) var,
real(dp), dimension(:,:,:), pointer slice )

Convenience operation for accessing 2D/3D fields.

Assumes that the last dimension is not used!

Definition at line 267 of file comin_variable_types.F90.

◆ comin_var_to_3d_i()

subroutine comin_variable_types::comin_var_to_3d_i ( class(t_comin_var_handle), intent(in) var,
integer(c_int), dimension(:,:,:), pointer slice )

Convenience operation for accessing 2D/3D fields.

Assumes that the last dimension is not used!

Definition at line 329 of file comin_variable_types.F90.

◆ comin_var_to_3d_sp()

subroutine comin_variable_types::comin_var_to_3d_sp ( class(t_comin_var_handle), intent(in) var,
real(sp), dimension(:,:,:), pointer slice )

Convenience operation for accessing 2D/3D fields.

Assumes that the last dimension is not used!

Definition at line 298 of file comin_variable_types.F90.