From c2bbdc3a3bf942911ff02b5d0e45e450c5012214 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 9 Apr 2020 11:15:16 -0700 Subject: [PATCH 01/15] Add missing error handler --- Src/cmor_CV.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index b353cf1e..94ce613f 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -1166,6 +1166,9 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "Please describe the spin-up procedure as defined \n! " "in CMIP6 documentations.\n! ", BRANCH_METHOD); } + cmor_handle_error(msg, CMOR_NORMAL); + cmor_pop_traceback(); + return (-1); } // branch_time_in_child if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_CHILD)) { @@ -1192,7 +1195,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) return (-1); } } - + // branch_time_in_parent if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_PARENT)) { snprintf(msg, CMOR_MAX_STRING, From da06a83fc00706123ca3cd375e2ba9e48777ac97 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 9 Apr 2020 11:34:51 -0700 Subject: [PATCH 02/15] Fix position of error handler --- Src/cmor_CV.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index 94ce613f..7cfe8e67 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -1165,10 +1165,10 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "Your input attribute %s is an empty string\n! " "Please describe the spin-up procedure as defined \n! " "in CMIP6 documentations.\n! ", BRANCH_METHOD); + cmor_handle_error(msg, CMOR_NORMAL); + cmor_pop_traceback(); + return (-1); } - cmor_handle_error(msg, CMOR_NORMAL); - cmor_pop_traceback(); - return (-1); } // branch_time_in_child if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_CHILD)) { From 46bb93bb84fdd65961ad7bef365277b7b233b902 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 9 Apr 2020 13:13:42 -0700 Subject: [PATCH 03/15] Shorten and indent comments --- Src/cmor_CV.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index 7cfe8e67..9a2f4608 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -1251,9 +1251,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) cmor_pop_traceback(); return (-1); } -/* -------------------------------------------------------------------- */ -/* Execute regular expression */ -/* -------------------------------------------------------------------- */ + // Execute regular expression reti = regexec(®ex, szParentTimeUnits, 0, NULL, 0); if (reti == REG_NOMATCH) { snprintf(msg, CMOR_MAX_STRING, @@ -1297,9 +1295,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) cmor_pop_traceback(); return (-1); } -/* -------------------------------------------------------------------- */ -/* Execute regular expression */ -/* -------------------------------------------------------------------- */ + // Execute regular expression reti = regexec(®ex, szParentVariantLabel, 0, NULL, 0); if (reti == REG_NOMATCH) { snprintf(msg, CMOR_MAX_STRING, From 07f2a8a571873a6cd36faa6a3849319bbe61a23b Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 9 Apr 2020 13:19:19 -0700 Subject: [PATCH 04/15] Ignore .vscode directory --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 646512a7..0f20565c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ .cproject .project .settings/ +.vscode/ Test/CMIP5 CMIP5 Makefile From 111097fadec6b845be99d672d79946e9af61c788 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 9 Apr 2020 13:30:45 -0700 Subject: [PATCH 05/15] Check if cmor_has_cur_dataset_attribute is a nonzero integer when checking for attributes --- Src/cmor_CV.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index 9a2f4608..b3ee72d5 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -1147,7 +1147,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) } } // branch method - if (cmor_has_cur_dataset_attribute(BRANCH_METHOD)) { + if (cmor_has_cur_dataset_attribute(BRANCH_METHOD) != 0) { snprintf(msg, CMOR_MAX_STRING, "Your input attribute \"%s\" is not defined \n! " "properly for %s \n! " @@ -1171,7 +1171,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) } } // branch_time_in_child - if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_CHILD)) { + if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_CHILD) != 0) { snprintf(msg, CMOR_MAX_STRING, "Your input attribute \"%s\" is not defined \n! " "properly for %s \n! " @@ -1195,9 +1195,8 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) return (-1); } } - // branch_time_in_parent - if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_PARENT)) { + if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_PARENT) != 0) { snprintf(msg, CMOR_MAX_STRING, "Your input attribute \"%s\" is not defined \n! " "properly for %s \n! " @@ -1222,7 +1221,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) } } // parent_time_units - if (cmor_has_cur_dataset_attribute(PARENT_TIME_UNITS)) { + if (cmor_has_cur_dataset_attribute(PARENT_TIME_UNITS) != 0) { snprintf(msg, CMOR_MAX_STRING, "Your input attribute \"%s\" is not defined \n! " "properly for %s \n! " @@ -1266,7 +1265,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) regfree(®ex); } // parent_variant_label - if (cmor_has_cur_dataset_attribute(PARENT_VARIANT_LABEL)) { + if (cmor_has_cur_dataset_attribute(PARENT_VARIANT_LABEL) != 0) { snprintf(msg, CMOR_MAX_STRING, "Your input attribute \"%s\" is not defined \n! " "properly for %s \n! " From 9a9537ac16aa568b89f2dfa458fa8396ad300874 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 9 Apr 2020 16:07:59 -0700 Subject: [PATCH 06/15] Fix time axis for test_sdepth1_float --- Test/test_sdepth1_float.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Test/test_sdepth1_float.c b/Test/test_sdepth1_float.c index 384cd5c7..06dccdd5 100644 --- a/Test/test_sdepth1_float.c +++ b/Test/test_sdepth1_float.c @@ -29,9 +29,9 @@ int it; double time[]; double time_bnds[]; { - time[0] = it; + time[0] = it + 0.5; time_bnds[0] = it; - time_bnds[1] = it + 1; + time_bnds[1] = it + 1.0; } #include "reader_2D_3D.h" @@ -76,7 +76,7 @@ int main() cmor_set_table(tables[0]); for (i = 0; i < ntimes; i++) { - read_time(i, &Time[i], &bnds_time[i]); + read_time(i, &Time[i], &bnds_time[2 * i]); } ierr = cmor_axis(&myaxes[0], "time", "months since 1980", From 50824b69fd73745f3b94f67d07038122ae25c4f2 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 9 Apr 2020 17:55:35 -0700 Subject: [PATCH 07/15] Allow cmor_CV_checkParentExpID to check for all errors before exiting --- Src/cmor_CV.c | 148 +++++++++++++++++++++----------------------------- 1 file changed, 62 insertions(+), 86 deletions(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index b3ee72d5..1a6a25b9 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -1013,6 +1013,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) char CV_Filename[CMOR_MAX_STRING]; char msg[CMOR_MAX_STRING]; int rc; + int ierr = 0; szParentExpValue[0] = '\0'; cmor_add_traceback("_CV_checkParentExpID"); @@ -1056,7 +1057,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "See Control Vocabulary JSON file.(%s)\n! ", GLOBAL_ATT_PARENT_EXPT_ID, CV_experiment->key, CV_Filename); - cmor_handle_error(msg, CMOR_CRITICAL); + cmor_handle_error(msg, CMOR_NORMAL); cmor_pop_traceback(); return (-1); } @@ -1113,10 +1114,8 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "for your experiment \"%s\"\n!\n! " "See Control Vocabulary JSON file.(%s)\n! ", PARENT_ACTIVITY_ID, CV_experiment->key, CV_Filename); - cmor_handle_error(msg, CMOR_CRITICAL); - cmor_pop_traceback(); - return (-1); - + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; } else { cmor_get_cur_dataset_attribute(PARENT_ACTIVITY_ID, szValue); CV_parent_activity_id = cmor_CV_search_child_key(CV_experiment, @@ -1154,9 +1153,8 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "Please describe the spin-up procedure as defined \n! " "in CMIP6 documentations.\n! ", BRANCH_METHOD, szExperiment_ID); - cmor_handle_error(msg, CMOR_CRITICAL); - cmor_pop_traceback(); - return (-1); + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; } else { cmor_get_cur_dataset_attribute(BRANCH_METHOD, szBranchMethod); @@ -1166,8 +1164,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "Please describe the spin-up procedure as defined \n! " "in CMIP6 documentations.\n! ", BRANCH_METHOD); cmor_handle_error(msg, CMOR_NORMAL); - cmor_pop_traceback(); - return (-1); + ierr = -1; } } // branch_time_in_child @@ -1177,10 +1174,8 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "properly for %s \n! " "Please refer to the CMIP6 documentations.\n! ", BRANCH_TIME_IN_CHILD, szExperiment_ID); - cmor_handle_error(msg, CMOR_CRITICAL); - cmor_pop_traceback(); - return (-1); - + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; } else { cmor_get_cur_dataset_attribute(BRANCH_TIME_IN_CHILD, szBranchTimeInChild); @@ -1190,9 +1185,8 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "Your input attribute branch_time_in_child \"%s\" " "is not a double floating point \n! ", szBranchTimeInChild); - cmor_handle_error(msg, CMOR_CRITICAL); - cmor_pop_traceback(); - return (-1); + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; } } // branch_time_in_parent @@ -1202,10 +1196,8 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "properly for %s \n! " "Please refer to the CMIP6 documentations.\n! ", BRANCH_TIME_IN_PARENT, szExperiment_ID); - cmor_handle_error(msg, CMOR_CRITICAL); - cmor_pop_traceback(); - return (-1); - + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; } else { cmor_get_cur_dataset_attribute(BRANCH_TIME_IN_PARENT, szBranchTimeInParent); @@ -1215,9 +1207,8 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "Your input attribute branch_time_in_parent \"%s\" " "is not a double floating point \n! ", szBranchTimeInParent); - cmor_handle_error(msg, CMOR_CRITICAL); - cmor_pop_traceback(); - return (-1); + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; } } // parent_time_units @@ -1227,10 +1218,8 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "properly for %s \n! " "Please refer to the CMIP6 documentations.\n! ", PARENT_TIME_UNITS, szExperiment_ID); - cmor_handle_error(msg, CMOR_CRITICAL); - cmor_pop_traceback(); - return (-1); - + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; } else { char template[CMOR_MAX_STRING]; int reti; @@ -1247,20 +1236,18 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) template); regfree(®ex); cmor_handle_error(msg, CMOR_NORMAL); - cmor_pop_traceback(); - return (-1); - } - // Execute regular expression - reti = regexec(®ex, szParentTimeUnits, 0, NULL, 0); - if (reti == REG_NOMATCH) { - snprintf(msg, CMOR_MAX_STRING, - "Your \"%s\" set to \"%s\" is invalid. \n! " - "Please refer to the CMIP6 documentations.\n! ", - PARENT_TIME_UNITS, szParentTimeUnits); - regfree(®ex); - cmor_handle_error(msg, CMOR_NORMAL); - cmor_pop_traceback(); - return (-1); + ierr = -1; + } else { + // Execute regular expression + reti = regexec(®ex, szParentTimeUnits, 0, NULL, 0); + if (reti == REG_NOMATCH) { + snprintf(msg, CMOR_MAX_STRING, + "Your \"%s\" set to \"%s\" is invalid. \n! " + "Please refer to the CMIP6 documentations.\n! ", + PARENT_TIME_UNITS, szParentTimeUnits); + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; + } } regfree(®ex); } @@ -1271,10 +1258,8 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "properly for %s \n! " "Please refer to the CMIP6 documentations.\n! ", PARENT_VARIANT_LABEL, szExperiment_ID); - cmor_handle_error(msg, CMOR_CRITICAL); - cmor_pop_traceback(); - return (-1); - + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; } else { char template[CMOR_MAX_STRING]; int reti; @@ -1289,22 +1274,19 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "You regular expression \"%s\" is invalid. \n! " "Please refer to the CMIP6 documentations.\n! ", template); - regfree(®ex); cmor_handle_error(msg, CMOR_NORMAL); - cmor_pop_traceback(); - return (-1); - } - // Execute regular expression - reti = regexec(®ex, szParentVariantLabel, 0, NULL, 0); - if (reti == REG_NOMATCH) { - snprintf(msg, CMOR_MAX_STRING, - "You \"%s\" set to \"%s\" is invalid. \n! " - "Please refer to the CMIP6 documentations.\n! ", - PARENT_VARIANT_LABEL, szParentVariantLabel); - regfree(®ex); - cmor_handle_error(msg, CMOR_NORMAL); - cmor_pop_traceback(); - return (-1); + ierr = -1; + } else { + // Execute regular expression + reti = regexec(®ex, szParentVariantLabel, 0, NULL, 0); + if (reti == REG_NOMATCH) { + snprintf(msg, CMOR_MAX_STRING, + "You \"%s\" set to \"%s\" is invalid. \n! " + "Please refer to the CMIP6 documentations.\n! ", + PARENT_VARIANT_LABEL, szParentVariantLabel); + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; + } } regfree(®ex); } @@ -1316,9 +1298,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "Please refer to the CMIP6 documentations.\n! ", PARENT_SOURCE_ID, szExperiment_ID); cmor_handle_error(msg, CMOR_NORMAL); - cmor_pop_traceback(); - return (-1); - + ierr = -1; } else { cmor_get_cur_dataset_attribute(PARENT_SOURCE_ID, szParentSourceId); @@ -1328,24 +1308,22 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "Your \"source_id\" key could not be found in\n! " "your Control Vocabulary file.(%s)\n! ", CV_Filename); - - cmor_handle_error(msg, CMOR_NORMAL); - cmor_pop_traceback(); - return (-1); - } - // Get specified experiment - cmor_get_cur_dataset_attribute(PARENT_SOURCE_ID, - szParentSourceId); - CV_source = cmor_CV_search_child_key(CV_source_id, - szParentSourceId); - if (CV_source == NULL) { - snprintf(msg, CMOR_MAX_STRING, - "Your parent_source_id \"%s\" defined in your input file\n! " - "could not be found in your Control Vocabulary file.(%s)\n! ", - szParentSourceId, CV_Filename); cmor_handle_error(msg, CMOR_NORMAL); - cmor_pop_traceback(); - return (-1); + ierr = -1; + } else { + // Get specified experiment + cmor_get_cur_dataset_attribute(PARENT_SOURCE_ID, + szParentSourceId); + CV_source = cmor_CV_search_child_key(CV_source_id, + szParentSourceId); + if (CV_source == NULL) { + snprintf(msg, CMOR_MAX_STRING, + "Your parent_source_id \"%s\" defined in your input file\n! " + "could not be found in your Control Vocabulary file.(%s)\n! ", + szParentSourceId, CV_Filename); + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; + } } } // parent_mip_era @@ -1355,10 +1333,8 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "properly for %s \n! " "Please refer to the CMIP6 documentations.\n! ", PARENT_MIP_ERA, szExperiment_ID); - cmor_handle_error(msg, CMOR_CRITICAL); - cmor_pop_traceback(); - return (-1); - + cmor_handle_error(msg, CMOR_NORMAL); + ierr = -1; } else { cmor_get_cur_dataset_attribute(PARENT_MIP_ERA, szValue); if (strcmp(CMIP6, szValue) != 0) { @@ -1375,7 +1351,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) } } cmor_pop_traceback(); - return (0); + return (ierr); } /************************************************************************/ From 204dc09dab53d44baf7d5e1a7b1e1ba2c2894651 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 16 Apr 2020 17:16:19 -0700 Subject: [PATCH 08/15] Remove error returned on CMOR_WARNING in CV_CompareNoParent --- Src/cmor_CV.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index 1a6a25b9..767413b1 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -777,8 +777,6 @@ int CV_CompareNoParent(char *szKey) szValue, NO_PARENT); cmor_set_cur_dataset_attribute_internal(szKey, NO_PARENT, 1); cmor_handle_error(msg, CMOR_WARNING); - cmor_pop_traceback(); - return (-1); } } cmor_pop_traceback(); From ff90119f8594aba51b561b29251dd2d020650a07 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 16 Apr 2020 17:32:13 -0700 Subject: [PATCH 09/15] Remove redundant return --- Src/cmor_CV.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index 767413b1..2122cd67 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -1100,9 +1100,6 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) cmor_handle_error(msg, CMOR_WARNING); } } - - cmor_pop_traceback(); - return (0); } else { // real parent case // Parent Activity ID From aa8f0f1231df710099bd86b18d82f35ed349aff9 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 16 Apr 2020 18:26:54 -0700 Subject: [PATCH 10/15] Search for "parent_experiment_id" not "parent_activity_id" --- Src/cmor_CV.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index 2122cd67..5f215bf2 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -1044,7 +1044,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) // Do we have a parent_experiment_id? if (cmor_has_cur_dataset_attribute(GLOBAL_ATT_PARENT_EXPT_ID) != 0) { CV_parent_exp_id = cmor_CV_search_child_key(CV_experiment, - PARENT_ACTIVITY_ID); + PARENT_EXPERIMENT_ID); if (CV_IsStringInArray(CV_parent_exp_id, NO_PARENT)) { cmor_pop_traceback(); return (0); From bee982b86ca52df003ba8b6af751f160bf185b02 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Thu, 23 Apr 2020 18:03:58 -0700 Subject: [PATCH 11/15] Throw error if "source" is not found in "source_id" entry of CV file. --- Src/cmor_CV.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index 5f215bf2..61bb8797 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -653,14 +653,13 @@ int cmor_CV_checkSourceID(cmor_CV_def_t * CV) } // Check source with experiment_id label. rc = cmor_get_cur_dataset_attribute(GLOBAL_ATT_SOURCE, szSource); - if(CV_source_id->nbObjects == -1) { + if(CV_source_id->nbObjects < 1) { snprintf(msg, CMOR_MAX_STRING, "You did not define a %s section in your source_id %s.\n! \n! \n! " "See Control Vocabulary JSON file. (%s)\n! ", CV_KEY_SOURCE_LABEL, szSource_ID, CV_Filename); - cmor_handle_error(msg, CMOR_WARNING); - return(1); - break; + cmor_handle_error(msg, CMOR_CRITICAL); + return(-1); } for (j = 0; j < CV_source_id->nbObjects; j++) { if (strcmp(CV_source_id->oValue[j].key, CV_KEY_SOURCE_LABEL) == @@ -673,8 +672,8 @@ int cmor_CV_checkSourceID(cmor_CV_def_t * CV) "Could not find %s string in source_id section.\n! \n! \n! " "See Control Vocabulary JSON file. (%s)\n! ", CV_KEY_SOURCE_LABEL, CV_Filename); - cmor_handle_error(msg, CMOR_WARNING); - break; + cmor_handle_error(msg, CMOR_CRITICAL); + return(-1); } pos = strchr(CV_source_id->oValue[j].szValue, ')'); strncpy(szSubstring, CV_source_id->oValue[j].szValue, From f8b67192652cc1266bd34bc32ce38c2b92782a7f Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Fri, 1 May 2020 14:53:32 -0700 Subject: [PATCH 12/15] Replace file's parent_experiment_id with "no parent" if it is an empty string, and "no parent" is a valid parent_experiment_id in the CV. --- Src/cmor_CV.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index 61bb8797..4c2c3ea7 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -1045,8 +1045,14 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) CV_parent_exp_id = cmor_CV_search_child_key(CV_experiment, PARENT_EXPERIMENT_ID); if (CV_IsStringInArray(CV_parent_exp_id, NO_PARENT)) { - cmor_pop_traceback(); - return (0); + snprintf(msg, CMOR_MAX_STRING, + "Your input attribute \"%s\" defined as \"\" " + "will be replaced with \n! " + "\"%s\" as defined in your Control Vocabulary file.\n! ", + PARENT_EXPERIMENT_ID, NO_PARENT, NO_PARENT); + cmor_handle_error(msg, CMOR_WARNING); + cmor_set_cur_dataset_attribute_internal(PARENT_EXPERIMENT_ID, + NO_PARENT, 1); } else { snprintf(msg, CMOR_MAX_STRING, "Your input attribute \"%s\" is not defined properly \n! " From 94cd145473d35e158c622289ce367940308bf74a Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Fri, 1 May 2020 15:10:21 -0700 Subject: [PATCH 13/15] Fix typo --- Src/cmor_CV.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index 4c2c3ea7..a35fa336 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -1049,7 +1049,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) "Your input attribute \"%s\" defined as \"\" " "will be replaced with \n! " "\"%s\" as defined in your Control Vocabulary file.\n! ", - PARENT_EXPERIMENT_ID, NO_PARENT, NO_PARENT); + PARENT_EXPERIMENT_ID, NO_PARENT); cmor_handle_error(msg, CMOR_WARNING); cmor_set_cur_dataset_attribute_internal(PARENT_EXPERIMENT_ID, NO_PARENT, 1); From 0a469c59240149fafd0b48df3889cb38c81a91f9 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Fri, 1 May 2020 15:20:54 -0700 Subject: [PATCH 14/15] Update tables --- cmip6-cmor-tables | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmip6-cmor-tables b/cmip6-cmor-tables index fa22c103..989aa102 160000 --- a/cmip6-cmor-tables +++ b/cmip6-cmor-tables @@ -1 +1 @@ -Subproject commit fa22c10345b0cbb7d002bb81ac1865c775340be8 +Subproject commit 989aa102ec7b14f10347b89e8a18eb88760c68ea From a0118677171e99fbbd1abe32e4fbafccc4b25cc1 Mon Sep 17 00:00:00 2001 From: mauzey1 Date: Tue, 12 May 2020 11:43:55 -0700 Subject: [PATCH 15/15] Fix typo in warning message --- Src/cmor_CV.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c index a35fa336..aaed0346 100644 --- a/Src/cmor_CV.c +++ b/Src/cmor_CV.c @@ -1123,7 +1123,7 @@ int cmor_CV_checkParentExpID(cmor_CV_def_t * CV) if (CV_IsStringInArray(CV_parent_activity_id, szValue) == 0) { if (CV_parent_activity_id->anElements == 1) { snprintf(msg, CMOR_MAX_STRING, - "Your input attribute parent_activity_id \"%s\" defined as \"%s\" " + "Your input attribute \"%s\" defined as \"%s\" " "will be replaced with \n! " "\"%s\" as defined in your Control Vocabulary file.\n! ", PARENT_ACTIVITY_ID, szValue,