YetAnotherCoupler 3.2.0_a
Loading...
Searching...
No Matches
Enumerations | Functions
couple_config.h File Reference
#include "interp_method_avg.h"
#include "interp_method_callback.h"
#include "interp_method_check.h"
#include "interp_method_conserv.h"
#include "interp_method_creep.h"
#include "interp_method_file.h"
#include "interp_method_fixed.h"
#include "interp_method_hcsbb.h"
#include "interp_method_ncc.h"
#include "interp_method_nnn.h"
#include "interp_method_spmap.h"
#include "interp_stack_config.h"
Include dependency graph for couple_config.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  yac_time_unit_type {
  C_MILLISECOND = 0 , C_SECOND = 1 , C_MINUTE = 2 , C_HOUR = 3 ,
  C_DAY = 4 , C_MONTH = 5 , C_YEAR = 6 , C_ISO_FORMAT = 7 ,
  TIME_UNIT_UNDEFINED
}
 
enum  yac_reduction_type {
  TIME_NONE = 0 , TIME_ACCUMULATE = 1 , TIME_AVERAGE = 2 , TIME_MINIMUM = 3 ,
  TIME_MAXIMUM = 4
}
 

Functions

struct yac_couple_configyac_couple_config_new ()
 
void yac_couple_config_delete (struct yac_couple_config *couple_config)
 
char const * yac_couple_config_get_start_datetime (struct yac_couple_config *couple_config)
 
char const * yac_couple_config_get_end_datetime (struct yac_couple_config *couple_config)
 
void yac_couple_config_set_datetime (struct yac_couple_config *couple_config, char const *start, char const *end)
 
size_t yac_couple_config_get_num_components (struct yac_couple_config *couple_config)
 
int yac_couple_config_component_name_is_valid (struct yac_couple_config *couple_config, char const *component_name)
 
size_t yac_couple_config_get_component_idx (struct yac_couple_config *couple_config, char const *component_name)
 
char const * yac_couple_config_get_component_name (struct yac_couple_config *couple_config, size_t component_idx)
 
void yac_couple_config_add_component (struct yac_couple_config *couple_config, char const *name)
 
void yac_couple_config_component_set_metadata (struct yac_couple_config *couple_config, char const *comp_name, const char *metadata)
 
const char * yac_couple_config_component_get_metadata (struct yac_couple_config *couple_config, char const *comp_name)
 
int yac_couple_config_contains_grid_name (struct yac_couple_config *couple_config, char const *grid_name)
 
void yac_couple_config_add_grid (struct yac_couple_config *couple_config, char const *name)
 
void yac_couple_config_grid_set_metadata (struct yac_couple_config *couple_config, char const *grid_name, const char *metadata)
 
const char * yac_couple_config_grid_get_metadata (struct yac_couple_config *couple_config, char const *grid_name)
 
size_t yac_couple_config_get_grid_idx (struct yac_couple_config *couple_config, char const *grid_name)
 
char const * yac_couple_config_get_grid_name (struct yac_couple_config *couple_config, size_t grid_idx)
 
void yac_couple_config_component_add_field (struct yac_couple_config *couple_config, const char *component_name, const char *grid_name, const char *name, const char *timestep, size_t collection_size)
 
void yac_couple_config_field_set_metadata (struct yac_couple_config *couple_config, char const *comp_name, char const *grid_name, char const *field_name, const char *metadata)
 
const char * yac_couple_config_field_get_metadata (struct yac_couple_config *couple_config, char const *comp_name, char const *grid_name, char const *field_name)
 
size_t yac_couple_config_get_field_idx (struct yac_couple_config *couple_config, size_t component_idx, size_t grid_idx, char const *field_name)
 
void yac_couple_config_field_enable_frac_mask (struct yac_couple_config *couple_config, char const *comp_name, char const *grid_name, char const *field_name, double frac_mask_fallback_value)
 
double yac_couple_config_get_frac_mask_fallback_value (struct yac_couple_config *couple_config, char const *component_name, char const *grid_name, char const *field_name)
 
char const * yac_couple_config_get_field_grid_name (struct yac_couple_config *couple_config, size_t component_idx, size_t field_idx)
 
char const * yac_couple_config_get_field_name (struct yac_couple_config *couple_config, size_t component_idx, size_t field_idx)
 
char const * yac_couple_config_get_field_timestep (struct yac_couple_config *couple_config, char const *component_name, char const *grid_name, char const *field_name)
 
int yac_couple_config_get_field_role (struct yac_couple_config *couple_config, char const *component_name, char const *grid_name, char const *field_name)
 
int yac_couple_config_field_is_valid (struct yac_couple_config *couple_config, size_t component_idx, size_t field_idx)
 
size_t yac_couple_config_get_num_couples (struct yac_couple_config *couple_config)
 
size_t yac_couple_config_get_num_couple_fields (struct yac_couple_config *couple_config, size_t couple_idx)
 
void yac_couple_config_get_couple_component_names (struct yac_couple_config *couple_config, size_t couple_idx, char const *couple_component_names[2])
 
void yac_couple_config_def_couple (struct yac_couple_config *couple_config, char const *src_comp_name, char const *src_grid_name, char const *src_field_name, char const *tgt_comp_name, char const *tgt_grid_name, char const *tgt_field_name, char const *coupling_period, int time_reduction, struct yac_interp_stack_config *interp_stack, int src_lag, int tgt_lag, char const *weight_file_name, int mapping_on_source, double scale_factor, double scale_summand, size_t num_src_mask_names, char const *const *src_mask_names, char const *tgt_mask_name)
 
size_t yac_couple_config_get_num_grids (struct yac_couple_config *couple_config)
 
size_t yac_couple_config_get_num_fields (struct yac_couple_config *couple_config, size_t component_idx)
 
struct yac_interp_stack_configyac_couple_config_get_interp_stack (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
void yac_couple_config_get_field_grid_names (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx, char const **src_grid_name, char const **tgt_grid_name)
 
void yac_couple_config_get_field_couple_component_names (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx, char const **src_component_name, char const **tgt_component_name)
 
size_t yac_couple_config_get_collection_size (struct yac_couple_config *couple_config, char const *component_name, char const *grid_name, char const *field_name)
 
void yac_couple_config_get_field_names (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx, const char **src_field_name, const char **tgt_field_name)
 
int yac_couple_config_mapping_on_source (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
int yac_couple_config_get_source_lag (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
int yac_couple_config_get_target_lag (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
char const * yac_couple_config_get_coupling_period (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
char const * yac_couple_config_get_source_timestep (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
char const * yac_couple_config_get_target_timestep (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
enum yac_reduction_type yac_couple_config_get_coupling_period_operation (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
int yac_couple_config_enforce_write_weight_file (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
char const * yac_couple_config_get_weight_file_name (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
double yac_couple_config_get_scale_factor (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
double yac_couple_config_get_scale_summand (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
void yac_couple_config_get_src_mask_names (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx, char const *const **mask_names, size_t *num_mask_names)
 
char const * yac_couple_config_get_tgt_mask_name (struct yac_couple_config *couple_config, size_t couple_idx, size_t field_couple_idx)
 
void yac_couple_config_sync (struct yac_couple_config *couple_config, MPI_Comm comm)
 

Enumeration Type Documentation

◆ yac_reduction_type

Enumerator
TIME_NONE 
TIME_ACCUMULATE 
TIME_AVERAGE 
TIME_MINIMUM 
TIME_MAXIMUM 

Definition at line 37 of file couple_config.h.

◆ yac_time_unit_type

Enumerator
C_MILLISECOND 
C_SECOND 
C_MINUTE 
C_HOUR 
C_DAY 
C_MONTH 
C_YEAR 
C_ISO_FORMAT 
TIME_UNIT_UNDEFINED 

Definition at line 25 of file couple_config.h.

Function Documentation

◆ yac_couple_config_add_component()

void yac_couple_config_add_component ( struct yac_couple_config couple_config,
char const *  name 
)

Definition at line 648 of file couple_config.c.

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

◆ yac_couple_config_add_grid()

void yac_couple_config_add_grid ( struct yac_couple_config couple_config,
char const *  name 
)

Definition at line 618 of file couple_config.c.

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

◆ yac_couple_config_component_add_field()

void yac_couple_config_component_add_field ( struct yac_couple_config couple_config,
const char *  component_name,
const char *  grid_name,
const char *  name,
const char *  timestep,
size_t  collection_size 
)

Definition at line 789 of file couple_config.c.

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

◆ yac_couple_config_component_get_metadata()

const char * yac_couple_config_component_get_metadata ( struct yac_couple_config couple_config,
char const *  comp_name 
)

Definition at line 687 of file couple_config.c.

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

◆ yac_couple_config_component_name_is_valid()

int yac_couple_config_component_name_is_valid ( struct yac_couple_config couple_config,
char const *  component_name 
)

Definition at line 840 of file couple_config.c.

◆ yac_couple_config_component_set_metadata()

void yac_couple_config_component_set_metadata ( struct yac_couple_config couple_config,
char const *  comp_name,
const char *  metadata 
)

Definition at line 654 of file couple_config.c.

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

◆ yac_couple_config_contains_grid_name()

int yac_couple_config_contains_grid_name ( struct yac_couple_config couple_config,
char const *  grid_name 
)

Definition at line 1555 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_def_couple()

void yac_couple_config_def_couple ( struct yac_couple_config couple_config,
char const *  src_comp_name,
char const *  src_grid_name,
char const *  src_field_name,
char const *  tgt_comp_name,
char const *  tgt_grid_name,
char const *  tgt_field_name,
char const *  coupling_period,
int  time_reduction,
struct yac_interp_stack_config interp_stack,
int  src_lag,
int  tgt_lag,
char const *  weight_file_name,
int  mapping_on_source,
double  scale_factor,
double  scale_summand,
size_t  num_src_mask_names,
char const *const *  src_mask_names,
char const *  tgt_mask_name 
)

Definition at line 2347 of file couple_config.c.

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

◆ yac_couple_config_delete()

void yac_couple_config_delete ( struct yac_couple_config couple_config)

Definition at line 574 of file couple_config.c.

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

◆ yac_couple_config_enforce_write_weight_file()

int yac_couple_config_enforce_write_weight_file ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1455 of file couple_config.c.

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

◆ yac_couple_config_field_enable_frac_mask()

void yac_couple_config_field_enable_frac_mask ( struct yac_couple_config couple_config,
char const *  comp_name,
char const *  grid_name,
char const *  field_name,
double  frac_mask_fallback_value 
)

Definition at line 1136 of file couple_config.c.

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

◆ yac_couple_config_field_get_metadata()

const char * yac_couple_config_field_get_metadata ( struct yac_couple_config couple_config,
char const *  comp_name,
char const *  grid_name,
char const *  field_name 
)

Definition at line 701 of file couple_config.c.

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

◆ yac_couple_config_field_is_valid()

int yac_couple_config_field_is_valid ( struct yac_couple_config couple_config,
size_t  component_idx,
size_t  field_idx 
)

Definition at line 1056 of file couple_config.c.

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

◆ yac_couple_config_field_set_metadata()

void yac_couple_config_field_set_metadata ( struct yac_couple_config couple_config,
char const *  comp_name,
char const *  grid_name,
char const *  field_name,
const char *  metadata 
)

Definition at line 674 of file couple_config.c.

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

◆ yac_couple_config_get_collection_size()

size_t yac_couple_config_get_collection_size ( struct yac_couple_config couple_config,
char const *  component_name,
char const *  grid_name,
char const *  field_name 
)

Definition at line 1200 of file couple_config.c.

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

◆ yac_couple_config_get_component_idx()

size_t yac_couple_config_get_component_idx ( struct yac_couple_config couple_config,
char const *  component_name 
)

Definition at line 878 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_get_component_name()

char const * yac_couple_config_get_component_name ( struct yac_couple_config couple_config,
size_t  component_idx 
)

Definition at line 942 of file couple_config.c.

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

◆ yac_couple_config_get_couple_component_names()

void yac_couple_config_get_couple_component_names ( struct yac_couple_config couple_config,
size_t  couple_idx,
char const *  couple_component_names[2] 
)

Definition at line 826 of file couple_config.c.

Here is the call graph for this function:

◆ yac_couple_config_get_coupling_period()

char const * yac_couple_config_get_coupling_period ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1321 of file couple_config.c.

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

◆ yac_couple_config_get_coupling_period_operation()

enum yac_reduction_type yac_couple_config_get_coupling_period_operation ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1386 of file couple_config.c.

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

◆ yac_couple_config_get_end_datetime()

char const * yac_couple_config_get_end_datetime ( struct yac_couple_config couple_config)

Definition at line 1434 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_get_field_couple_component_names()

void yac_couple_config_get_field_couple_component_names ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx,
char const **  src_component_name,
char const **  tgt_component_name 
)

Definition at line 1227 of file couple_config.c.

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

◆ yac_couple_config_get_field_grid_name()

char const * yac_couple_config_get_field_grid_name ( struct yac_couple_config couple_config,
size_t  component_idx,
size_t  field_idx 
)

Definition at line 966 of file couple_config.c.

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

◆ yac_couple_config_get_field_grid_names()

void yac_couple_config_get_field_grid_names ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx,
char const **  src_grid_name,
char const **  tgt_grid_name 
)

Definition at line 1099 of file couple_config.c.

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

◆ yac_couple_config_get_field_idx()

size_t yac_couple_config_get_field_idx ( struct yac_couple_config couple_config,
size_t  component_idx,
size_t  grid_idx,
char const *  field_name 
)

Definition at line 913 of file couple_config.c.

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

◆ yac_couple_config_get_field_name()

char const * yac_couple_config_get_field_name ( struct yac_couple_config couple_config,
size_t  component_idx,
size_t  field_idx 
)

Definition at line 981 of file couple_config.c.

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

◆ yac_couple_config_get_field_names()

void yac_couple_config_get_field_names ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx,
const char **  src_field_name,
const char **  tgt_field_name 
)

Definition at line 1246 of file couple_config.c.

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

◆ yac_couple_config_get_field_role()

int yac_couple_config_get_field_role ( struct yac_couple_config couple_config,
char const *  component_name,
char const *  grid_name,
char const *  field_name 
)

Definition at line 1021 of file couple_config.c.

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

◆ yac_couple_config_get_field_timestep()

char const * yac_couple_config_get_field_timestep ( struct yac_couple_config couple_config,
char const *  component_name,
char const *  grid_name,
char const *  field_name 
)

Definition at line 995 of file couple_config.c.

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

◆ yac_couple_config_get_frac_mask_fallback_value()

double yac_couple_config_get_frac_mask_fallback_value ( struct yac_couple_config couple_config,
char const *  component_name,
char const *  grid_name,
char const *  field_name 
)

Definition at line 1173 of file couple_config.c.

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

◆ yac_couple_config_get_grid_idx()

size_t yac_couple_config_get_grid_idx ( struct yac_couple_config couple_config,
char const *  grid_name 
)

Definition at line 896 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_get_grid_name()

char const * yac_couple_config_get_grid_name ( struct yac_couple_config couple_config,
size_t  grid_idx 
)

Definition at line 1444 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_get_interp_stack()

struct yac_interp_stack_config * yac_couple_config_get_interp_stack ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1085 of file couple_config.c.

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

◆ yac_couple_config_get_num_components()

size_t yac_couple_config_get_num_components ( struct yac_couple_config couple_config)

Definition at line 858 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_get_num_couple_fields()

size_t yac_couple_config_get_num_couple_fields ( struct yac_couple_config couple_config,
size_t  couple_idx 
)

Definition at line 816 of file couple_config.c.

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

◆ yac_couple_config_get_num_couples()

size_t yac_couple_config_get_num_couples ( struct yac_couple_config couple_config)

Definition at line 801 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_get_num_fields()

size_t yac_couple_config_get_num_fields ( struct yac_couple_config couple_config,
size_t  component_idx 
)

Definition at line 871 of file couple_config.c.

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

◆ yac_couple_config_get_num_grids()

size_t yac_couple_config_get_num_grids ( struct yac_couple_config couple_config)

Definition at line 865 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_get_scale_factor()

double yac_couple_config_get_scale_factor ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1488 of file couple_config.c.

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

◆ yac_couple_config_get_scale_summand()

double yac_couple_config_get_scale_summand ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1503 of file couple_config.c.

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

◆ yac_couple_config_get_source_lag()

int yac_couple_config_get_source_lag ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1291 of file couple_config.c.

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

◆ yac_couple_config_get_source_timestep()

char const * yac_couple_config_get_source_timestep ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1336 of file couple_config.c.

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

◆ yac_couple_config_get_src_mask_names()

void yac_couple_config_get_src_mask_names ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx,
char const *const **  mask_names,
size_t *  num_mask_names 
)

Definition at line 1518 of file couple_config.c.

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

◆ yac_couple_config_get_start_datetime()

char const * yac_couple_config_get_start_datetime ( struct yac_couple_config couple_config)

Definition at line 1424 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_get_target_lag()

int yac_couple_config_get_target_lag ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1306 of file couple_config.c.

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

◆ yac_couple_config_get_target_timestep()

char const * yac_couple_config_get_target_timestep ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1361 of file couple_config.c.

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

◆ yac_couple_config_get_tgt_mask_name()

char const * yac_couple_config_get_tgt_mask_name ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1540 of file couple_config.c.

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

◆ yac_couple_config_get_weight_file_name()

char const * yac_couple_config_get_weight_file_name ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1470 of file couple_config.c.

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

◆ yac_couple_config_grid_get_metadata()

const char * yac_couple_config_grid_get_metadata ( struct yac_couple_config couple_config,
char const *  grid_name 
)

Definition at line 694 of file couple_config.c.

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

◆ yac_couple_config_grid_set_metadata()

void yac_couple_config_grid_set_metadata ( struct yac_couple_config couple_config,
char const *  grid_name,
const char *  metadata 
)

Definition at line 663 of file couple_config.c.

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

◆ yac_couple_config_mapping_on_source()

int yac_couple_config_mapping_on_source ( struct yac_couple_config couple_config,
size_t  couple_idx,
size_t  field_couple_idx 
)

Definition at line 1276 of file couple_config.c.

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

◆ yac_couple_config_new()

struct yac_couple_config * yac_couple_config_new ( )

Definition at line 91 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_set_datetime()

void yac_couple_config_set_datetime ( struct yac_couple_config couple_config,
char const *  start,
char const *  end 
)

Definition at line 1401 of file couple_config.c.

Here is the caller graph for this function:

◆ yac_couple_config_sync()

void yac_couple_config_sync ( struct yac_couple_config couple_config,
MPI_Comm  comm 
)

synchronises the coupling configuration across all processes in comm

Parameters
[in]couple_configcoupling configuration
[in]commMPI communicator

Definition at line 2790 of file couple_config.c.

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