Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/nightly-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
C_COMPILER: clang_osx-arm64
FORTRAN_COMPILER: gfortran_osx-arm64
PROJECT_DIR: workdir/macos_arm64
- RUNNER_OS: 'macos-13'
- RUNNER_OS: 'macos-15-intel'
OS: osx-64
OS_NAME: osx_64
MINIFORGE_INSTALLER_URL: https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh
Expand Down
5 changes: 5 additions & 0 deletions Src/cmor.c
Original file line number Diff line number Diff line change
Expand Up @@ -3141,6 +3141,11 @@ int cmor_setGblAttr(int var_id)
/* -------------------------------------------------------------------- */
/* Set branded variable attributes */
/* -------------------------------------------------------------------- */
if (cmor_vars[var_id].branded_variable[0] != '\0') {
cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_BRANDEDVARIABLE,
cmor_vars[var_id].branded_variable,
0);
}
if (cmor_vars[var_id].branding_suffix[0] != '\0') {
cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_BRANDINGSUFFIX,
cmor_vars[var_id].branding_suffix,
Expand Down
1 change: 1 addition & 0 deletions Src/cmor_tables.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@ int cmor_set_variable_entry(cmor_table_t * table,
&variable_entry[pmatch[2].rm_so],
pmatch[5].rm_eo - pmatch[2].rm_so);
variable->branding_suffix[pmatch[5].rm_eo - pmatch[2].rm_so] = '\0';
cmor_set_var_def_att(variable, VARIABLE_ATT_BRANDEDVARIABLE, variable_entry);
}
regfree(&regex);

Expand Down
6 changes: 6 additions & 0 deletions Src/cmor_variables.c
Original file line number Diff line number Diff line change
Expand Up @@ -1165,6 +1165,7 @@ int cmor_variable(int *var_id, char *name, char *units, int ndims,
strncpy(cmor_vars[vrid].id, refvar.out_name, CMOR_MAX_STRING);
}

strncpy(cmor_vars[vrid].branded_variable, refvar.branded_variable, CMOR_MAX_STRING);
strncpy(cmor_vars[vrid].branding_suffix, refvar.branding_suffix, CMOR_MAX_STRING);
strncpy(cmor_vars[vrid].temporal_label, refvar.temporal_label, CMOR_MAX_STRING);
strncpy(cmor_vars[vrid].vertical_label, refvar.vertical_label, CMOR_MAX_STRING);
Expand Down Expand Up @@ -1979,6 +1980,7 @@ void cmor_init_var_def(cmor_var_def_t * var, int table_id)
var->deflate_level = 1;
var->zstandard_level = -999999;
memset(var->generic_level_name, 0, sizeof(var->generic_level_name));
memset(var->branded_variable, 0, sizeof(var->branded_variable));
memset(var->branding_suffix, 0, sizeof(var->branding_suffix));
memset(var->temporal_label, 0, sizeof(var->temporal_label));
memset(var->vertical_label, 0, sizeof(var->vertical_label));
Expand Down Expand Up @@ -2237,6 +2239,10 @@ int cmor_set_var_def_att(cmor_var_def_t * var, char *att, char *val)

strncpy(var->out_name, val, CMOR_MAX_STRING);

} else if (strcmp(att, VARIABLE_ATT_BRANDEDVARIABLE) == 0) {

strncpy(var->branded_variable, val, CMOR_MAX_STRING);

} else if (strcmp(att, VARIABLE_ATT_BRANDINGSUFFIX) == 0) {

strncpy(var->branding_suffix, val, CMOR_MAX_STRING);
Expand Down
2 changes: 2 additions & 0 deletions Test/test_cmor_CMIP7.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ def test_cmip7(self):
ds = Dataset(filename)
attrs = ds.ncattrs()
test_attrs = {
'branded_variable': 'tos_tavg-u-hxy-sea',
'branding_suffix': 'tavg-u-hxy-sea',
'temporal_label': 'tavg',
'vertical_label': 'u',
Expand Down Expand Up @@ -178,6 +179,7 @@ def test_secondary_modeling_realm(self):
ds = Dataset(filename)
attrs = ds.ncattrs()
test_attrs = {
'branded_variable': 'prra_tavg-u-hxy-is',
'branding_suffix': 'tavg-u-hxy-is',
'temporal_label': 'tavg',
'vertical_label': 'u',
Expand Down
4 changes: 4 additions & 0 deletions include/cmor.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@
#define VARIABLE_ATT_FLAGMEANINGS "flag_meanings"
#define VARIABLE_ATT_OUTNAME "out_name"
#define VARIABLE_ATT_BRANDDESCRIPTION "brand_description"
#define VARIABLE_ATT_BRANDEDVARIABLE "branded_variable"
#define VARIABLE_ATT_BRANDINGSUFFIX "branding_suffix"
#define VARIABLE_ATT_TEMPORALLABEL "temporal_label"
#define VARIABLE_ATT_VERTICALLABEL "vertical_label"
Expand All @@ -172,6 +173,7 @@
#define GLOBAL_ATT_ACTIVITY_ID "activity_id"
#define GLOBAL_ATT_VAL_NODRIVER "no-driver"
#define GLOBAL_ATT_VARIABLE_ID "variable_id"
#define GLOBAL_ATT_BRANDEDVARIABLE "branded_variable"
#define GLOBAL_ATT_BRANDINGSUFFIX "branding_suffix"
#define GLOBAL_ATT_TEMPORALLABEL "temporal_label"
#define GLOBAL_ATT_VERTICALLABEL "vertical_label"
Expand Down Expand Up @@ -494,6 +496,7 @@ typedef struct cmor_variable_def_ {
char frequency[CMOR_MAX_STRING];
char out_name[CMOR_MAX_STRING];
char generic_level_name[CMOR_MAX_STRING];
char branded_variable[CMOR_MAX_STRING];
char branding_suffix[CMOR_MAX_STRING];
char temporal_label[CMOR_MAX_STRING];
char vertical_label[CMOR_MAX_STRING];
Expand Down Expand Up @@ -564,6 +567,7 @@ typedef struct cmor_var_ {
char suffix[CMOR_MAX_STRING];
int suffix_has_date;
char frequency[CMOR_MAX_STRING];
char branded_variable[CMOR_MAX_STRING];
char branding_suffix[CMOR_MAX_STRING];
char temporal_label[CMOR_MAX_STRING];
char vertical_label[CMOR_MAX_STRING];
Expand Down