From 67e5514353a02a544762527db36628ffbbd00f64 Mon Sep 17 00:00:00 2001 From: Jim Edwards Date: Mon, 9 Dec 2019 07:26:14 -0700 Subject: [PATCH] add cime_config to NEMS model --- cime_config/buildexe | 89 + cime_config/buildnml | 511 +++ cime_config/config_archive.xml | 19 + cime_config/config_component.xml | 2536 ++++++++++++ cime_config/config_component_ufs.xml | 526 +++ cime_config/config_compsets.xml | 106 + cime_config/config_pes.xml | 210 + cime_config/namelist_definition_drv.xml | 3789 ++++++++++++++++++ cime_config/namelist_definition_drv_flds.xml | 148 + cime_config/namelist_definition_modelio.xml | 206 + cime_config/testdefs/testlist_drv.xml | 472 +++ cime_config/user_nl_cpl | 19 + 12 files changed, 8631 insertions(+) create mode 100755 cime_config/buildexe create mode 100755 cime_config/buildnml create mode 100644 cime_config/config_archive.xml create mode 100644 cime_config/config_component.xml create mode 100644 cime_config/config_component_ufs.xml create mode 100644 cime_config/config_compsets.xml create mode 100644 cime_config/config_pes.xml create mode 100644 cime_config/namelist_definition_drv.xml create mode 100644 cime_config/namelist_definition_drv_flds.xml create mode 100644 cime_config/namelist_definition_modelio.xml create mode 100644 cime_config/testdefs/testlist_drv.xml create mode 100644 cime_config/user_nl_cpl diff --git a/cime_config/buildexe b/cime_config/buildexe new file mode 100755 index 00000000..e3c22042 --- /dev/null +++ b/cime_config/buildexe @@ -0,0 +1,89 @@ +#!/usr/bin/env python + +""" +build model executable +""" + +import sys, os + +_CIMEROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..","..","..","..") +if not os.path.basename(_CIMEROOT)=="cime": + _CIMEROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..","..","..","..","..","cime") +sys.path.append(os.path.join(_CIMEROOT, "scripts", "Tools")) + +from standard_script_setup import * +from CIME.buildlib import parse_input +from CIME.build import get_standard_makefile_args +from CIME.case import Case +from CIME.utils import expect, run_cmd, copyifnewer + +#pylint: disable=undefined-variable +logger = logging.getLogger(__name__) + +############################################################################### +def _main_func(): +############################################################################### + + caseroot, _, _ = parse_input(sys.argv) + + logger.info("Building a single executable version of target model") + + with Case(caseroot) as case: + casetools = case.get_value("CASETOOLS") + cimeroot = case.get_value("CIMEROOT") + exeroot = case.get_value("EXEROOT") + gmake = case.get_value("GMAKE") + gmake_j = case.get_value("GMAKE_J") + cime_model = case.get_value("MODEL") + num_esp = case.get_value("NUM_COMP_INST_ESP") + ocn_model = case.get_value("COMP_OCN") + atm_model = case.get_value("COMP_ATM") + gmake_args = get_standard_makefile_args(case) + + if ocn_model == 'mom' or atm_model == "fv3gfs": + gmake_args += "USE_FMS=TRUE" + + ncep_libs = os.environ.get("NCEP_LIBS") + if ncep_libs is not None: + if atm_model == "fv3gfs": + gmake_args += " USER_SLIBS=\"-L{} {}\" ".format(os.path.join(ncep_libs,"lib"), "-lnemsio -lbacio -lsp -lw3emc -lw3nco") + + comp_classes = case.get_values("COMP_CLASSES") + if not "CPL" in comp_classes: + #in this case NEMS.exe should already be built + copyifnewer(os.path.join(exeroot,"atm","obj","NEMS.exe"),os.path.join(exeroot,"ufs.exe")) + return + + for comp in comp_classes: + model = case.get_value("COMP_{}".format(comp)) + stubcomp = "s{}".format(comp.lower()) + if model == stubcomp: + gmake_args += " {}_PRESENT=FALSE".format(comp) + gmake_args += " IAC_PRESENT=FALSE" + expect((num_esp is None) or (int(num_esp) == 1), "ESP component restricted to one instance") + + with open('Filepath', 'w') as out: + out.write(os.path.join(caseroot, "SourceMods", "src.drv") + "\n") + out.write(os.path.join(cimeroot, "src", "drivers", "nuopc", "mediator") + "\n") + out.write(os.path.join(cimeroot, "src", "drivers", "nuopc", "drivers", "cime") + "\n") + + + # build model executable + + makefile = os.path.join(casetools, "Makefile") + exename = os.path.join(exeroot, cime_model + ".exe") + # always relink + if os.path.isfile(exename): + os.remove(exename) + + cmd = "{} exec_se -j {} EXEC_SE={} MODEL=driver {} -f {} "\ + .format(gmake, gmake_j, exename, gmake_args, makefile) + + rc, out, err = run_cmd(cmd) + expect(rc==0,"Command {} failed rc={}\nout={}\nerr={}".format(cmd,rc,out,err)) + logger.info(out) + +############################################################################### + +if __name__ == "__main__": + _main_func() diff --git a/cime_config/buildnml b/cime_config/buildnml new file mode 100755 index 00000000..541bff1f --- /dev/null +++ b/cime_config/buildnml @@ -0,0 +1,511 @@ +#!/usr/bin/env python +"""Namelist creator for CIME's driver. +""" +import os, sys + +_CIMEROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..","..","..","..") +sys.path.append(os.path.join(_CIMEROOT, "scripts", "Tools")) + +import shutil, glob, itertools +from standard_script_setup import * +from CIME.case import Case +from CIME.nmlgen import NamelistGenerator +from CIME.utils import expect +from CIME.utils import get_model, get_time_in_seconds, get_timestamp +from CIME.buildnml import create_namelist_infile, parse_input +from CIME.XML.files import Files +#pylint: disable=undefined-variable +logger = logging.getLogger(__name__) + +############################################################################### +def _create_drv_namelists(case, infile, confdir, nmlgen, files): +############################################################################### + + #-------------------------------- + # Set up config dictionary + #-------------------------------- + config = {} + cime_model = get_model() + config['cime_model'] = cime_model + config['iyear'] = case.get_value('COMPSET').split('_')[0] + config['BGC_MODE'] = case.get_value("CCSM_BGC") + config['CPL_I2O_PER_CAT'] = case.get_value('CPL_I2O_PER_CAT') + config['COMP_RUN_BARRIERS'] = case.get_value('COMP_RUN_BARRIERS') + config['DRV_THREADING'] = case.get_value('DRV_THREADING') + config['CPL_ALBAV'] = case.get_value('CPL_ALBAV') + config['CPL_EPBAL'] = case.get_value('CPL_EPBAL') + config['FLDS_WISO'] = case.get_value('FLDS_WISO') + config['BUDGETS'] = case.get_value('BUDGETS') + config['MACH'] = case.get_value('MACH') + config['MPILIB'] = case.get_value('MPILIB') + config['OS'] = case.get_value('OS') + config['glc_nec'] = 0 if case.get_value('GLC_NEC') == 0 else case.get_value('GLC_NEC') + config['single_column'] = 'true' if case.get_value('PTS_MODE') else 'false' + config['timer_level'] = 'pos' if case.get_value('TIMER_LEVEL') >= 1 else 'neg' + config['bfbflag'] = 'on' if case.get_value('BFBFLAG') else 'off' + config['continue_run'] = '.true.' if case.get_value('CONTINUE_RUN') else '.false.' + config['flux_epbal'] = 'ocn' if case.get_value('CPL_EPBAL') == 'ocn' else 'off' + config['atm_grid'] = case.get_value('ATM_GRID') + + # needed for determining the run sequence as well as glc_renormalize_smb + config['COMP_ATM'] = case.get_value("COMP_ATM") + config['COMP_ICE'] = case.get_value("COMP_ICE") + config['COMP_GLC'] = case.get_value("COMP_GLC") + config['COMP_LND'] = case.get_value("COMP_LND") + config['COMP_OCN'] = case.get_value("COMP_OCN") + config['COMP_ROF'] = case.get_value("COMP_ROF") + config['COMP_WAV'] = case.get_value("COMP_WAV") + + + if case.get_value('RUN_TYPE') == 'startup': + config['run_type'] = 'startup' + elif case.get_value('RUN_TYPE') == 'hybrid': + config['run_type'] = 'startup' + elif case.get_value('RUN_TYPE') == 'branch': + config['run_type'] = 'branch' + + #---------------------------------------------------- + # Initialize namelist defaults + #---------------------------------------------------- + nmlgen.init_defaults(infile, config) + + if case.get_value('MEDIATOR_READ_RESTART'): + nmlgen.set_value('mediator_read_restart', value='.true.') + else: + nmlgen.set_value('mediator_read_restart', value='.false.') + + #-------------------------------- + # Overwrite: set brnch_retain_casename + #-------------------------------- + start_type = nmlgen.get_value('start_type') + if start_type != 'startup': + if case.get_value('CASE') == case.get_value('RUN_REFCASE'): + nmlgen.set_value('brnch_retain_casename' , value='.true.') + + # set aquaplanet if appropriate + if config['COMP_OCN'] == 'docn' and 'aqua' in case.get_value("DOCN_MODE"): + nmlgen.set_value('aqua_planet' , value='.true.') + + #-------------------------------- + # Overwrite: set component coupling frequencies + #-------------------------------- + ncpl_base_period = case.get_value('NCPL_BASE_PERIOD') + if ncpl_base_period == 'hour': + basedt = 3600 + elif ncpl_base_period == 'day': + basedt = 3600 * 24 + elif ncpl_base_period == 'year': + if case.get_value('CALENDAR') == 'NO_LEAP': + basedt = 3600 * 24 * 365 + else: + expect(False, "Invalid CALENDAR for NCPL_BASE_PERIOD %s " %ncpl_base_period) + elif ncpl_base_period == 'decade': + if case.get_value('CALENDAR') == 'NO_LEAP': + basedt = 3600 * 24 * 365 * 10 + else: + expect(False, "invalid NCPL_BASE_PERIOD NCPL_BASE_PERIOD %s " %ncpl_base_period) + else: + expect(False, "invalid NCPL_BASE_PERIOD NCPL_BASE_PERIOD %s " %ncpl_base_period) + + if basedt < 0: + expect(False, "basedt invalid overflow for NCPL_BASE_PERIOD %s " %ncpl_base_period) + + + # determine coupling intervals + comps = case.get_values("COMP_CLASSES") + mindt = basedt + coupling_times = {} + for comp in comps: + ncpl = case.get_value(comp.upper() + '_NCPL') + if ncpl is not None: + cpl_dt = basedt // int(ncpl) + totaldt = cpl_dt * int(ncpl) + if totaldt != basedt: + expect(False, " %s ncpl doesn't divide base dt evenly" %comp) + nmlgen.add_default(comp.lower() + '_cpl_dt', value=cpl_dt) + coupling_times[comp.lower() + '_cpl_dt'] = cpl_dt + mindt = min(mindt, cpl_dt) + + # sanity check + comp_atm = case.get_value("COMP_ATM") + if comp_atm is not None and comp_atm not in('datm', 'xatm', 'satm'): + atmdt = int(basedt / case.get_value('ATM_NCPL')) + expect(atmdt == mindt, 'Active atm should match shortest model timestep atmdt={} mindt={}' + .format(atmdt, mindt)) + + #-------------------------------- + # Overwrite: set start_ymd + #-------------------------------- + run_startdate = "".join(str(x) for x in case.get_value('RUN_STARTDATE').split('-')) + nmlgen.set_value('start_ymd', value=run_startdate) + + #-------------------------------- + # Overwrite: set tprof_option and tprof_n - if tprof_total is > 0 + #-------------------------------- + # This would be better handled inside the alarm logic in the driver routines. + # Here supporting only nday(s), nmonth(s), and nyear(s). + + stop_option = case.get_value('STOP_OPTION') + if 'nyear' in stop_option: + tprofoption = 'ndays' + tprofmult = 365 + elif 'nmonth' in stop_option: + tprofoption = 'ndays' + tprofmult = 30 + elif 'nday' in stop_option: + tprofoption = 'ndays' + tprofmult = 1 + else: + tprofmult = 1 + tprofoption = 'never' + + tprof_total = case.get_value('TPROF_TOTAL') + if ((tprof_total > 0) and (case.get_value('STOP_DATE') < 0) and ('ndays' in tprofoption)): + stop_n = case.get_value('STOP_N') + stopn = tprofmult * stop_n + tprofn = int(stopn / tprof_total) + if tprofn < 1: + tprofn = 1 + nmlgen.set_value('tprof_option', value=tprofoption) + nmlgen.set_value('tprof_n' , value=tprofn) + + # Set up the pause_component_list if pause is active + pauseo = case.get_value('PAUSE_OPTION') + if pauseo != 'never' and pauseo != 'none': + pausen = case.get_value('PAUSE_N') + pcl = nmlgen.get_default('pause_component_list') + nmlgen.add_default('pause_component_list', pcl) + # Check to make sure pause_component_list is valid + pcl = nmlgen.get_value('pause_component_list') + if pcl != 'none' and pcl != 'all': + pause_comps = pcl.split(':') + comp_classes = case.get_values("COMP_CLASSES") + for comp in pause_comps: + expect(comp == 'drv' or comp.upper() in comp_classes, + "Invalid PAUSE_COMPONENT_LIST, %s is not a valid component type"%comp) + # End for + # End if + # Set esp interval + if 'nstep' in pauseo: + esp_time = mindt + else: + esp_time = get_time_in_seconds(pausen, pauseo) + + nmlgen.set_value('esp_cpl_dt', value=esp_time) + # End if pause is active + + #-------------------------------- + # (1) Specify input data list file + #-------------------------------- + data_list_path = os.path.join(case.get_case_root(), "Buildconf", "cpl.input_data_list") + if os.path.exists(data_list_path): + os.remove(data_list_path) + + #-------------------------------- + # (2) Write namelist file drv_in and initial input dataset list. + #-------------------------------- + namelist_file = os.path.join(confdir, "drv_in") + drv_namelist_groups = ["papi_inparm", "pio_default_inparm", "prof_inparm"] + nmlgen.write_output_file(namelist_file, data_list_path=data_list_path, groups=drv_namelist_groups) + + #-------------------------------- + # (3) Write nuopc.runconfig file and add to input dataset list. + #-------------------------------- + + # Determine components that are not present + comp_types = ['atm','lnd','ice','ocn','rof','glc','wav','esp'] + skip_comps = [] + for item in comp_types: + # stub comps + if case.get_value("COMP_" + item.upper()) == 's' + item: + skip_comps.append(item.upper()) + # data comps + if case.get_value("COMP_" + item.upper()) == 'd' + item: + if item != 'glc': #no glc data component + if case.get_value("D" + item.upper()) == 'NULL' or case.get_value("D" + item.upper()) == 'null': + skip_comps.append(item.upper) + # xcpl_comps + if case.get_value("COMP_" + item.upper()) == 'x' + item: + if item != 'esp': #no esp xcpl component + if case.get_value(item.upper() + "_NX") == "0" and case.get_value(item.upper() + "_NY") == "0": + skip_comps.append(item.upper) + + logger.info("Writing nuopc_runseq will skip components {}".format(skip_comps)) + + nuopc_config_file = os.path.join(confdir, "nuopc.runconfig") + nmlgen.write_nuopc_config_file(nuopc_config_file, data_list_path=data_list_path, skip_comps=skip_comps) + + #-------------------------------- + # (4) Write nuopc.runseq + #-------------------------------- + _create_runseq(case, coupling_times) + + #-------------------------------- + # (5) Write drv_flds_in + #-------------------------------- + # In thte following, all values come simply from the infiles - no default values need to be added + # FIXME - do want to add the possibility that will use a user definition file for drv_flds_in + + caseroot = case.get_value('CASEROOT') + namelist_file = os.path.join(confdir, "drv_flds_in") + nmlgen.add_default('drv_flds_in_files') + drvflds_files = nmlgen.get_default('drv_flds_in_files') + infiles = [] + for drvflds_file in drvflds_files: + infile = os.path.join(caseroot, drvflds_file) + if os.path.isfile(infile): + infiles.append(infile) + + if len(infiles) != 0: + + # First read the drv_flds_in files and make sure that + # for any key there are not two conflicting values + dicts = {} + for infile in infiles: + dict_ = {} + with open(infile) as myfile: + for line in myfile: + if "=" in line and '!' not in line: + name, var = line.partition("=")[::2] + name = name.strip() + var = var.strip() + dict_[name] = var + dicts[infile] = dict_ + + for first,second in itertools.combinations(dicts.keys(),2): + compare_drv_flds_in(dicts[first], dicts[second], first, second) + + # Now create drv_flds_in + config = {} + definition_dir = os.path.dirname(files.get_value("NAMELIST_DEFINITION_FILE", attribute={"component":"drv"})) + definition_file = [os.path.join(definition_dir, "namelist_definition_drv_flds.xml")] + nmlgen = NamelistGenerator(case, definition_file, files=files) + skip_entry_loop = True + nmlgen.init_defaults(infiles, config, skip_entry_loop=skip_entry_loop) + drv_flds_in = os.path.join(caseroot, "CaseDocs", "drv_flds_in") + nmlgen.write_output_file(drv_flds_in) + +############################################################################### +def _create_runseq(case, coupling_times): +############################################################################### + + caseroot = case.get_value("CASEROOT") + user_file = os.path.join(caseroot, "nuopc.runseq") + if os.path.exists(user_file): + + # Determine if there is a user run sequence file in CASEROOT, use it + rundir = case.get_value("RUNDIR") + shutil.copy(user_file, rundir) + shutil.copy(user_file, os.path.join(caseroot,"CaseDocs")) + logger.info("NUOPC run sequence: copying custom run sequence from case root") + + else: + + comp_atm = case.get_value("COMP_ATM") + comp_ice = case.get_value("COMP_ICE") + # not yet in use + comp_glc = case.get_value("COMP_GLC") + comp_lnd = case.get_value("COMP_LND") + comp_ocn = case.get_value("COMP_OCN") + comp_rof = case.get_value("COMP_ROF") + comp_wav = case.get_value("COMP_WAV") + + runseq_a1 = (comp_atm == 'datm' and comp_ocn == "docn" and comp_ice == 'dice' and + comp_rof == 'drof' and comp_wav == 'swav' and comp_lnd == 'slnd') # A compsets + runseq_a2 = (comp_atm == 'satm' and comp_ocn == "socn" and comp_ice == 'sice' and + comp_rof == 'srof' and comp_wav == 'swav' and comp_lnd == 'dlnd') # ADWAV + runseq_a3 = (comp_atm == 'satm' and comp_ocn == "socn" and comp_ice == 'sice' and + comp_rof == 'srof' and comp_wav == 'dwav' and comp_lnd == 'slnd') # ADLND + runseq_a4 = (comp_atm == 'datm' and comp_ocn == 'docn' and comp_ice == 'sice' and + comp_rof == 'srof' and comp_wav == 'swav' and comp_lnd == 'slnd') # A compsets + + # Create a run sequence file appropriate for target compset + + #sys.path.append(os.path.join(_CIMEROOT, "src", "drivers", "nuopc", "cime_config", "runseq")) + + #if (comp_atm == 'xatm' or comp_ocn == "xocn" or comp_ice == 'xice' or + # comp_rof == 'xrof' or comp_wav == 'xwav' or comp_glc == 'xglc'): + # from runseq_X import runseq + #elif (comp_atm == 'cam' and comp_ocn == "docn"): + # from runseq_FQ import runseq + #elif (comp_lnd == "clm" and comp_atm == 'datm'): + # from runseq_I import runseq + #elif (comp_ice == "cice" and comp_atm == 'datm' and comp_ocn == "docn"): + # from runseq_D import runseq + #elif ((comp_ocn == "mom" or comp_ocn == 'pop') and comp_atm == 'datm'): + # from runseq_CG import runseq + #elif (comp_atm == 'cam' and comp_lnd == "clm" and (comp_ocn == 'mom' or comp_ocn == "pop")): + # from runseq_B import runseq + #elif (comp_atm == 'fv3gfs' and comp_ocn == "mom" and comp_ice == 'cice'): + # from runseq_NEMS import runseq + #elif (comp_atm == 'fv3gfs' and comp_ocn == "socn" and comp_ice == 'sice'): + # from runseq_FV3GFS import runseq + #elif (comp_lnd == 'dlnd' and comp_glc == "cism"): + # from runseq_TG import runseq + #elif (runseq_a1 or runseq_a2 or runseq_a3 or runseq_a4): + # from runseq_A import runseq + #try: + # runseq(case, coupling_times) + #except Exception as e: + # expect(False, "No run sequence found for compset {}".format(case.get_value("COMPSET"))) + +############################################################################### +def compare_drv_flds_in(first, second, infile1, infile2): +############################################################################### + sharedKeys = set(first.keys()).intersection(second.keys()) + for key in sharedKeys: + if first[key] != second[key]: + print('Key: {}, \n Value 1: {}, \n Value 2: {}'.format(key, first[key], second[key])) + expect(False, "incompatible settings in drv_flds_in from \n %s \n and \n %s" + % (infile1, infile2)) + +############################################################################### +def _create_component_modelio_namelists(confdir, case, files): +############################################################################### + + # will need to create a new namelist generator + infiles = [] + definition_dir = os.path.dirname(files.get_value("NAMELIST_DEFINITION_FILE", attribute={"component":"drv"})) + definition_file = [os.path.join(definition_dir, "namelist_definition_modelio.xml")] + + confdir = os.path.join(case.get_value("CASEBUILD"), "cplconf") + lid = os.environ["LID"] if "LID" in os.environ else get_timestamp("%y%m%d-%H%M%S") + + #if we are in multi-coupler mode the number of instances of mediator will be the max + # of any NINST_* value + maxinst = 1 + if case.get_value("MULTI_DRIVER"): + maxinst = case.get_value("NINST_MAX") + multi_driver = True + + nuopc_config_file = os.path.join(confdir, "nuopc.runconfig") + for model in case.get_values("COMP_CLASSES"): + model = model.lower() + with NamelistGenerator(case, definition_file) as nmlgen: + config = {} + config['component'] = model + entries = nmlgen.init_defaults(infiles, config, skip_entry_loop=True) + if maxinst == 1 and model != 'cpl' and not multi_driver: + inst_count = case.get_value("NINST_" + model.upper()) + else: + inst_count = maxinst + + inst_string = "" + inst_index = 1 + while inst_index <= inst_count: + # determine instance string + if inst_count > 1: + inst_string = '_{:04d}'.format(inst_index) + + # Write out just the pio_inparm to the output file + for entry in entries: + nmlgen.add_default(entry) + + if model == "cpl": + modelio_file = "med_modelio.nml" + inst_string + else: + modelio_file = model + "_modelio.nml" + inst_string + nmlgen.write_nuopc_modelio_file(os.path.join(confdir, modelio_file)) + + # Output the following to nuopc.runconfig + moddiro = case.get_value('RUNDIR') + if model == 'cpl': + logfile = 'med' + inst_string + ".log." + str(lid) + else: + logfile = model + inst_string + ".log." + str(lid) + + with open(nuopc_config_file, 'a') as outfile: + if model == 'cpl': + name = "MED" + else: + name = model.upper() + if inst_string: + outfile.write("{}_modelio{}::\n".format(name,inst_string)) + else: + outfile.write("{}_modelio::\n".format(name)) + outfile.write(" {}{}{}".format("diro = ", moddiro,"\n")) + outfile.write(" {}{}{}".format("logfile = ", logfile,"\n")) + outfile.write("::\n\n") + + inst_index = inst_index + 1 + + +############################################################################### +def buildnml(case, caseroot, component): +############################################################################### + if component != "drv": + raise AttributeError + + confdir = os.path.join(case.get_value("CASEBUILD"), "cplconf") + if not os.path.isdir(confdir): + os.makedirs(confdir) + + # NOTE: User definition *replaces* existing definition. + # TODO: Append instead of replace? + user_xml_dir = os.path.join(caseroot, "SourceMods", "src.drv") + + expect (os.path.isdir(user_xml_dir), + "user_xml_dir %s does not exist " %user_xml_dir) + + files = Files(comp_interface="nuopc") + + # TODO: to get the right attributes of COMP_ROOT_DIR_CPL in evaluating definition_file - need + # to do the following first - this needs to be changed so that the following two lines are not needed! + comp_root_dir_cpl = files.get_value( "COMP_ROOT_DIR_CPL",{"component":"drv-nuopc"}, resolved=False) + files.set_value("COMP_ROOT_DIR_CPL", comp_root_dir_cpl) + + definition_file = [files.get_value("NAMELIST_DEFINITION_FILE", {"component": "drv-nuopc"})] + fd_dir = os.path.dirname(definition_file[0]) + user_definition = os.path.join(user_xml_dir, "namelist_definition_drv.xml") + if os.path.isfile(user_definition): + definition_file = [user_definition] + + # create the namelist generator object - independent of instance + nmlgen = NamelistGenerator(case, definition_file) + + # create cplconf/namelist + infile_text = "" + + # determine infile list for nmlgen + user_nl_file = os.path.join(caseroot, "user_nl_cpl") + namelist_infile = os.path.join(confdir, "namelist_infile") + create_namelist_infile(case, user_nl_file, namelist_infile, infile_text) + infile = [namelist_infile] + + # create the files nuopc.runconfig, nuopc.runseq, drv_in and drv_flds_in + _create_drv_namelists(case, infile, confdir, nmlgen, files) + + # create the files comp_modelio.nml where comp = [atm, lnd...] + _create_component_modelio_namelists(confdir, case, files) + + # set rundir + rundir = case.get_value("RUNDIR") + + # copy nuopc.runconfig to rundir + shutil.copy(os.path.join(confdir,"drv_in"), rundir) + shutil.copy(os.path.join(confdir,"nuopc.runconfig"), rundir) + + # copy drv_flds_in to rundir + drv_flds_in = os.path.join(caseroot, "CaseDocs", "drv_flds_in") + if os.path.isfile(drv_flds_in): + shutil.copy(drv_flds_in, rundir) + + # copy all *modelio* files to rundir + for filename in glob.glob(os.path.join(confdir, "*modelio*")): + shutil.copy(filename, rundir) + + # copy fd.yaml to rundir + #cimeroot = case.get_value("CIMEROOT") + #fd_dir = os.path.join(cimeroot, "src","drivers","nuopc","mediator") + #filename = os.path.join(fd_dir,"fd.yaml") + #shutil.copy(filename, rundir) + +############################################################################### +def _main_func(): + caseroot = parse_input(sys.argv) + + with Case(caseroot) as case: + buildnml(case, caseroot, "drv") + +if __name__ == "__main__": + _main_func() diff --git a/cime_config/config_archive.xml b/cime_config/config_archive.xml new file mode 100644 index 00000000..c8717412 --- /dev/null +++ b/cime_config/config_archive.xml @@ -0,0 +1,19 @@ + + + r + hi?\d*.*\.nc$ + unset + + rpointer$NINST_STRING.drv + $CASE.cpl$NINST_STRING.r.$DATENAME.nc + + + cpl_0001.log.5548574.chadmin1.180228-124723.gz + casename.cpl.r.1976-01-01-00000.nc + rpointer.drv_0001 + rpointer.drv + casenamenot.cpl.r.1976-01-01-00000.nc + + + + diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml new file mode 100644 index 00000000..79de4617 --- /dev/null +++ b/cime_config/config_component.xml @@ -0,0 +1,2536 @@ + + + + + + + + + + char + CPL,ATM,LND,ICE,OCN,ROF,GLC,WAV,ESP + env_case.xml + case_comp + List of component classes supported by this driver + + + + char + cpl + cpl + case_comp + env_case.xml + Name of coupling component + + + + + + + + + char + $CIMEROOT/config_files.xml + case_def + env_case.xml + master configuration file that specifies all relevant filenames + and directories to configure a case + + + + + + + + char + UNSET + case_def + env_case.xml + full pathname of case + + + + char + $CASEROOT/Tools + case_der + env_case.xml + Case Tools directory location (derived variable, not in namelists + + + + char + $CASEROOT/Buildconf + case_der + env_case.xml + Buildconf directory location (derived variable not in namelist) + + + + char + $CASEROOT/logs + run_desc + env_run.xml + Extra copies of the component log files will be saved here. + + + + char + $CIMEROOT/scripts + case_der + env_case.xml + Scripts root directory location (setup automatically to $CIMEROOT/scripts- DO NOT EDIT) + + + + char + UNSET + case_def + env_case.xml + full pathname of CIME source root directory + + + + char + $CIMEROOT/.. + case_def + env_case.xml + full pathname of source root directory + + + + char + $CIMEROOT/scripts/Tools + case_der + env_case.xml + Scripts root utils directory location (setup automatically to $CIMEROOT/scripts/Tools - DO NOT EDIT) + + + + + + + + char + UNSET + case_def + env_case.xml + case name + + + + char + UNSET + run_desc + env_run.xml + case description + + + + char + UNSET + case_last + env_case.xml + Component set long name (for documentation only - DO NOT EDIT) + + + + char + UNSET + build_grid + env_build.xml + Model grid - DO NOT EDIT (for experts only) + + + + char + UNSET + case_def + env_case.xml + current machine name support contact + + + + char + $ENV{USER} + case_desc + env_case.xml + case user name + + + + char + $ENV{USER} + case_desc + env_case.xml + username of user who created case + + + + + + + + char + startup,hybrid,branch + startup + run_begin_stop_restart + env_run.xml + + Determines the model run initialization type. + This setting is only important for the initial run of a production run when the + CONTINUE_RUN variable is set to FALSE. After the initial run, the CONTINUE_RUN + variable is set to TRUE, and the model restarts exactly using input + files in a case, date, and bit-for-bit continuous fashion. + Default: startup. + -- In a startup run (the default), all components are initialized + using baseline states. These baseline states are set independently by + each component and can include the use of restart files, initial + files, external observed data files, or internal initialization (i.e., + a cold start). In a startup run, the coupler sends the start date to + the components at initialization. In addition, the coupler does not + need an input data file. In a startup initialization, the ocean model + does not start until the second ocean coupling (normally the second + day). + -- In a branch run, all components are initialized using a consistent + set of restart files from a previous run (determined by the + RUN_REFCASE and RUN_REFDATE variables in env_run.xml). The case name + is generally changed for a branch run, although it does not have to + be. In a branch run, setting RUN_STARTDATE is ignored because the + model components obtain the start date from their restart datasets. + Therefore, the start date cannot be changed for a branch run. This is + the same mechanism that is used for performing a restart run (where + CONTINUE_RUN is set to TRUE in the env_run.xml) Branch runs are + typically used when sensitivity or parameter studies are required, or + when settings for history file output streams need to be modified + while still maintaining bit-for-bit reproducibility. Under this + scenario, the new case is able to produce an exact bit-for-bit restart + in the same manner as a continuation run IF no source code or + component namelist inputs are modified. All models use restart files + to perform this type of run. RUN_REFCASE and RUN_REFDATE are required + for branch runs. + To set up a branch run, locate the restart tar file or restart + directory for RUN_REFCASE and RUN_REFDATE from a previous run, then + place those files in the RUNDIR directory. + --- In a hybrid run the model is initialized as a startup, BUT uses + initialization datasets FROM A PREVIOUS case. This + is somewhat analogous to a branch run with relaxed restart + constraints. A hybrid run allows users to bring together combinations + of initial/restart files from a previous case (specified by + RUN_REFCASE) at a given model output date (specified by + RUN_REFDATE). Unlike a branch run, the starting date of a hybrid run + (specified by RUN_STARTDATE) can be modified relative to the reference + case. In a hybrid run, the model does not continue in a bit-for-bit + fashion with respect to the reference case. The resulting climate, + however, should be continuous provided that no model source code or + namelists are changed in the hybrid run. In a hybrid initialization, + the ocean model does not start until the second ocean coupling + (normally the second day), and the coupler does a cold start without + a restart file. + + + + + char + ccsm4_init + run_begin_stop_restart + env_run.xml + + Reference directory containing RUN_REFCASE data - used for hybrid or branch runs + + + + + char + case.std + run_begin_stop_restart + env_run.xml + + Reference case for hybrid or branch runs + + + + + char + 0001-01-01 + run_begin_stop_restart + env_run.xml + + Reference date for hybrid or branch runs (yyyy-mm-dd) + + + + + char + 00000 + run_begin_stop_restart + env_run.xml + + Reference time of day (seconds) for hybrid or branch runs (sssss) + + + + + logical + TRUE,FALSE + FALSE + run_begin_stop_restart + env_run.xml + + Flag for automatically prestaging the refcase restart dataset. + If TRUE, then the refcase data is prestaged into the executable directory + + + + + char + 0001-01-01 + run_begin_stop_restart + env_run.xml + + Run start date (yyyy-mm-dd). Only used for startup or hybrid runs. + + + + + integer + 0 + run_begin_stop_restart + env_run.xml + + Run start time-of-day + + + + + char + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,nmonths,nmonth,nyears,nyear,date,ifdays0,end + ndays + run_begin_stop_restart + env_run.xml + + Sets the run length along with STOP_N and STOP_DATE + + + + + integer + 5 + run_begin_stop_restart + env_run.xml + + Provides a numerical count for $STOP_OPTION. + + + + + integer + -999 + run_begin_stop_restart + env_run.xml + + Alternative date yyyymmdd date option, sets the run length with STOP_OPTION and STOP_N + negative value implies off + + + + + char + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,nmonths,nmonth,nyears,nyear,date,ifdays0,end + $STOP_OPTION + run_begin_stop_restart + env_run.xml + + sets frequency of model restart writes (same options as STOP_OPTION) + + + + + integer + $STOP_N + run_begin_stop_restart + env_run.xml + + sets model restart writes with REST_OPTION and REST_DATE + + + + + char + $STOP_DATE + run_begin_stop_restart + env_run.xml + + Alternative date in yyyymmdd format + sets model restart write date with REST_OPTION and REST_N + + + + + char + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,nmonths,nmonth,nyears,nyear + never + run_begin_stop_restart + env_run.xml + + Sets the pause frequency along with PAUSE_N + + + + + integer + 0 + run_begin_stop_restart + env_run.xml + + Provides a numerical count for $PAUSE_OPTION. + + + + + logical + TRUE,FALSE + run_begin_stop_restart + env_run.xml + + Pause the model at times specified by PAUSE_OPTION and PAUSE_N. + Components 'pause' by writing a restart file. + + + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + + + + char + 1 + run_begin_stop_restart + env_run.xml + + Sets periodic model barriers with BARRIER_OPTION and BARRIER_DATE for synchronization + + + + + char + -999 + run_begin_stop_restart + env_run.xml + + Alternative date in yyyymmdd format + sets periodic model barriers with BARRIER_OPTION and BARRIER_N for synchronization + + + + + logical + TRUE,FALSE + FALSE + run_begin_stop_restart + env_run.xml + + ESP component runs after driver 'pause cycle' If any component + 'pauses' (see PAUSE_OPTION, + PAUSE_N and PAUSE_ACTIVE_XXX XML variables), + the ESP component (if present) will be run to process the + component 'pause' (restart) files and set any required 'resume' + signals. If true, esp_cpl_dt and esp_cpl_offset settings are + ignored. default: false + + + + + logical + TRUE,FALSE + FALSE + run_begin_stop_restart + env_run.xml + + A setting of TRUE implies a continuation run + When you first begin a branch, hybrid or startup run, CONTINUE_RUN + must be set to FALSE. When you successfully run and get a restart + file, you will need to change CONTINUE_RUN to TRUE for the remainder + of your run. This variable determines if the run is a restart run. + Set to FALSE when initializing a startup, branch or hybrid case. + Set to TRUE when continuing a run. + + + + + logical + TRUE,FALSE + FALSE + run_begin_stop_restart + env_run.xml + + A setting of TRUE implies a continuation run for mediator only + + + + + integer + 0 + run_begin_stop_restart + env_run.xml + If RESUBMIT is greater than 0, then case will automatically resubmit + Enables the model to automatically resubmit a new run. To get + multiple runs, set RESUBMIT greater than 0, then RESUBMIT will be + decremented and the case will be resubmitted. The case will stop automatically + resubmitting when the RESUBMIT value reaches 0. + Long runs can easily outstrip supercomputer queue time limits. For + this reason, a case is usually run as a series of jobs, each + restarting where the previous finished. + + + + + logical + TRUE + run_begin_stop_restart + env_run.xml + This flag controls whether the RESUBMIT flag causes + CONTINUE_RUN to toggle from FALSE to TRUE. The default is + TRUE. This flag might be used in conjunction with COMP_RUN_BARRIERS for + timing tests. + + + + + logical + run_begin_stop_restart + FALSE + TRUE,FALSE + env_run.xml + Logical to determine whether CESM run has been submitted with the submit script or not + + + + char + + run_begin_stop_restart + env_run.xml + List of job ids for most recent case.submit + + + + + + + + logical + TRUE,FALSE + FALSE + run_data_archive + env_run.xml + Logical to turn on short term archiving. + If TRUE, short term archiving will be turned on. + + + + integer + 900 + run_data_archive + env_run.xml + system workload snapshot frequency (in seconds, if greater than 0; disabled otherwise) + + + + + + + + char + UNSET + config_batch + env_mach_specific.xml + The environment variables that will be loaded for this machine + + + + char + none + nersc_slurm,lc_slurm,moab,pbs,lsf,slurm,cobalt,cobalt_theta,none + config_batch + env_batch.xml + The batch system type to use for this machine. + + + + char + UNSET + config_batch + env_mach_specific.xml + The individual environment variable entry for config_machines + + + + char + UNSET + config_batch + env_mach_specific.xml + The limits tag + + + + char + UNSET + config_batch + env_mach_specific.xml + The individual limit variable + + + + + + + + char + + build_derived + env_build.xml + Perl 5 library directory + + + + char + + config_batch + env_case.xml + The mpi run command associated with the machine configured batch system + + + + char + UNSET + config_batch + env_case.xml + The module system type defined for this machine + + + + char + UNSET + config_batch + env_case.xml + The module initialization path for module system defined for this machine + + + + char + UNSET + config_batch + env_case.xml + The module command path for module system defined for this machine + + + + + + + + + char + + UNSET + build_def + env_build.xml + Output root directory for each machine. + Base directory for build and run directories. + + + + + char + + $CIME_OUTPUT_ROOT/$CASE/bld + build_def + env_build.xml + Case executable root directory. + (executable is $EXEROOT/$MODEL.exe, component libraries are in $EXEROOT/lib) + This is where the model builds its executable and by default runs the executable. + Note that EXEROOT needs to have enough disk space for the experimental configuration + requirements. As an example, a model run can produce more than a terabyte of + data during a 100-year run, so you should set EXEROOT to scratch or + tmp space and frequently back up the data to a long term archiving storage device + For a supported machine, EXEROOT is set in $CIMEROOT/machines/config_machines.xml. + For a userdefined machine, EXEROOT must explicitly be set it in env_build.xml. + + + + char + + USERDEFINED_required_macros + build_macros + env_build.xml + Operating system - DO NOT EDIT UNLESS for userdefined machine - ignored once Macros has been created. + + + + char + + + build_macros + env_build.xml + Machine compiler (must match one the supported compilers) + Set in $CIMEROOT/machines/config_machines.xml for each supported machine. + Must be explicitly set in env_build.xml for userdefined machine. + + + + char + + + build_def + env_build.xml + email address of person (or group) that supports the build and port for this machine (do not edit)> + + + + char + + USERDEFINED_required_macros + build_macros + env_build.xml + mpi library (must match one of the supported libraries) - + ignored once Macros has been created + Set in $CIMEROOT/machines/config_machines.xml for each supported machine. + Must be explicitly set in env_build.xml for userdefined machine. + + + + char + NO_LEAP,GREGORIAN + NO_LEAP + build_def + env_build.xml + calendar type + + + + char + nuopc + nuopc + build_def + env_build.xml + use NUOPC component interface + + + + logical + TRUE + TRUE + build_def + env_build.xml + TRUE implies using the ESMF library specified by ESMF_LIBDIR or ESMFMKFILE + + + + logical + TRUE,FALSE + FALSE + build_def + env_build.xml + TRUE implies turning on run and compile time debugging + Flag to turn on debugging for run time and compile time. + If TRUE, compile-time debugging flags are activated that you can use to verify + software robustness, such as bounds checking. + Important:: On IBM machines, floating point trapping is not activated for production + runs (i.e., non-DEBUG), due to performance penalties associated with turning on these flags. + + + + logical + TRUE,FALSE + FALSE + build_def + env_build.xml + TRUE implies always build model for openmp capability + If FALSE, component libraries are built with OpenMP capability only if + the NTHREADS_ setting for that component is greater than 1 in env_mach_pes.xml. + If TRUE, the component libraries are always built with OpenMP capability. + + + + logical + TRUE,FALSE + FALSE + build_def + env_build.xml + TRUE implies always build model for openmp capability + If FALSE, component libraries are built with OpenMP capability only if + the NTHREADS_ setting for that component is greater than 1 in env_mach_pes.xml. + If TRUE, the component libraries are always built with OpenMP capability. + + + + logical + TRUE,FALSE + FALSE + build_def + env_build.xml + TRUE implies that at least one of the components is built threaded (DO NOT EDIT) + + + + logical + TRUE,FALSE + FALSE + build_def + env_build.xml + TRUE implies linking to the PETSc library - set + automatically by XXX_USE_PETSC options (do not edit). Flag to turn + on linking to the PETSc library. Currently this is used by + CLM. This is currently only supported for certain machines. + + + + logical + TRUE,FALSE + FALSE + build_def + env_build.xml + TRUE implies linking to the Albany library - set + automatically by XXX_USE_ALBANY options (do not edit). Flag to + turn on linking to the Albany library. Currently this is used by + MPASLI. Note that Albany is a C++ library, so setting this + variable to TRUE will involve the inclusion of C++ code in the + MPASLI executable. This is currently only supported for certain + machines. + + + + logical + TRUE,FALSE + FALSE + build_def + env_build.xml + TRUE implies linking to the MOAB library + + + + logical + TRUE,FALSE + FALSE + build_def + env_build.xml + TRUE implies linking to the trilinos library - set automatically by XXX_USE_TRILINOS options (do not edit) + Flag to turn on linking to the trilinos library. Currently this is + used by CISM. Note that trilinos is a C++ library, so setting this + variable to TRUE will involve the inclusion of C++ code in the model + executable. This is currently only supported for certain machines. + + + + char + + gmake + build_def + env_run.xml + GNU make command + + + + integer + + 1 + build_def + env_run.xml + Number of processors for gmake + + + + logical + TRUE,FALSE + FALSE + build_status + env_build.xml + Status output: if TRUE, models have been built successfully. (DO NOT EDIT)> + + + + char + + 0 + build_status + env_build.xml + Status: smp status of previous build, coded string. (DO NOT EDIT) + + + + char + + 0 + build_status + env_build.xml + Status: smp status of current case, coded string (DO NOT EDIT) + + + + char + + 0 + build_status + env_build.xml + Status: ninst status of previous build, coded string. (DO NOT EDIT)> + + + + char + + 0 + build_status + env_build.xml + Status: ninst status of current case, coded string (DO NOT EDIT) + + + + integer + 0,1,2 + 0 + build_status + env_build.xml + Status: of prior build. (DO NOT EDIT) + + + + char + + $EXEROOT + build_derived + env_build.xml + case build directory (set automatically to $EXEROOT, - DO NOT EDIT) + + + + char + + $EXEROOT/lib + build_derived + env_build.xml + case lib directory (set automatically to $EXEROOT/lib - DO NOT EDIT) + + + + char + + $EXEROOT/lib/include + build_derived + env_build.xml + case lib include directory (set automatically to $EXEROOT/lib/include - DO NOT EDIT) + + + + char + + $EXEROOT + build_derived + env_build.xml + Shared library root, (set automatically to $EXEROOT - DO NOT EDIT) + + + + + + + + logical + TRUE,FALSE + TRUE + run_flags + env_run.xml + logical to diagnose model timing at the end of the run + + + + logical + TRUE,FALSE + FALSE + run_flags + env_run.xml + Enables the papi hardware counters in gptl + The papi library must be included in the build step for + this to work. + + + + char + ESMF_LOGKIND_SINGLE,ESMF_LOGKIND_MULTI,ESMF_LOGKIND_NONE + ESMF_LOGKIND_NONE + run_flags + env_run.xml + + Determines what ESMF log files (if any) are generated when + USE_ESMF_LIB is TRUE. + ESMF_LOGKIND_SINGLE: Use a single log file, combining messages from + all of the PETs. Not supported on some platforms. + ESMF_LOGKIND_MULTI: Use multiple log files -- one per PET. + ESMF_LOGKIND_NONE: Do not issue messages to a log file. + By default, no ESMF log files are generated. + + + + + logical + TRUE,FALSE + FALSE + run_flags + env_run.xml + Turns on component barriers for component timing. + This variable is for testing and debugging only and should never + be set for a production run. + + + + + integer + 0 + mach_pes_last + env_mach_pes.xml + pes or cores used relative to MAX_MPITASKS_PER_NODE for accounting (0 means TOTALPES is valid) + + + + + + + + char + UNSET + build_grid + env_build.xml + atmosphere grid - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of atmosphere cells in i direction - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of atmosphere cells in j direction - DO NOT EDIT (for experts only) + + + + char + UNSET + build_grid + env_build.xml + land grid - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of land cells in i direction - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of land cells in j direction - DO NOT EDIT (for experts only) + + + + char + UNSET + build_grid + env_build.xml + ocn grid - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of ocn cells in i direction - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of ocn cells in j direction - DO NOT EDIT (for experts only) + + + + char + UNSET + build_grid + env_build.xml + ice grid (must equal ocn grid) - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of ice cells in i direction - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of ice cells in j direction - DO NOT EDIT (for experts only) + + + + integer + 1 + build_grid + env_build.xml + number of ice thickness categories - DO NOT EDIT (set by CICE configure) + + + + char + UNSET + build_grid + env_build.xml + river runoff (rof) grid + + + + integer + 0 + build_grid + env_build.xml + number of rof cells in i direction - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of rof cells in j direction - DO NOT EDIT (for experts only) + + + + char + gland20,gland10,gland5,gland5UM,gland4,mpas.gis20km,mpas.ais20km,null + gland5UM + build_grid + env_build.xml + glacier (glc) grid - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of glc cells in i direction - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of glc cells in j direction - DO NOT EDIT (for experts only) + + + + + char + UNSET + build_grid + env_build.xml + wave model (wav) grid + + + + integer + 0 + build_grid + env_build.xml + number of wav cells in i direction - DO NOT EDIT (for experts only) + + + + integer + 0 + build_grid + env_build.xml + number of wav cells in j direction - DO NOT EDIT (for experts only) + + + + char + UNSET + build_grid + env_build.xml + grid mask - DO NOT EDIT (for experts only) + + + + logical + TRUE,FALSE + FALSE + run_domain + env_run.xml + Operate on only a single point of the global grid - DO NOT EDIT (for experts only) + + + + real + -999.99 + run_domain + env_run.xml + Latitude to find nearest points for points mode (only used if PTS_MODE is TRUE) + + + + real + -999.99 + run_domain + env_run.xml + Longitude to find nearest points for points mode (only used if PTS_MODE is TRUE) + + + + + + + + char + UNSET + run_domain + env_run.xml + atm domain file + + + char + $DIN_LOC_ROOT/share/domains + run_domain + env_run.xml + path of atm domain file + + + char + UNSET + run_domain + env_run.xml + atm mesh file (full pathname) + + + + char + UNSET + run_domain + env_run.xml + lnd domain file + + + char + $DIN_LOC_ROOT/share/domains + run_domain + env_run.xml + path of lnd domain file + + + char + UNSET + run_domain + env_run.xml + lnd mesh file (full pathname) + + + + char + UNSET + run_domain + env_run.xml + rof domain file + + + char + $DIN_LOC_ROOT/share/domains + run_domain + env_run.xml + path of rof domain file + + + char + UNSET + run_domain + env_run.xml + rof mesh file (full pathname) + + + + char + UNSET + run_domain + env_run.xml + wav domain file + + + char + $DIN_LOC_ROOT/share/domains + run_domain + env_run.xml + path of wav domain file + + + char + UNSET + run_domain + env_run.xml + wav mesh file (full pathname) + + + + char + UNSET + run_domain + env_run.xml + ice domain file + + + char + $DIN_LOC_ROOT/share/domains + run_domain + env_run.xml + path of ice domain file + + + char + UNSET + run_domain + env_run.xml + ice mesh file (full pahtname) + + + + char + UNSET + run_domain + env_run.xml + ocn domain file + + + char + $DIN_LOC_ROOT/share/domains + run_domain + env_run.xml + path of ocn domain file + + + char + UNSET + run_domain + env_run.xml + ocn mesh file (full pathname) + + + + char + UNSET + run_domain + env_run.xml + glc domain file + + + char + $DIN_LOC_ROOT/share/domains + run_domain + env_run.xml + path of glc domain file + + + char + UNSET + run_domain + env_run.xml + glc mesh file (full pathname) + + + + + + + char + idmap + run_domain + env_run.xml + atm2ocn flux mapping file + + + + char + idmap + run_domain + env_run.xml + atm2ocn state mapping file + + + + char + idmap + run_domain + env_run.xml + atm2ocn vector mapping file + + + + char + idmap + run_domain + env_run.xml + atm2lnd flux mapping file + + + + char + idmap + run_domain + env_run.xml + atm2lnd state mapping file + + + + char + idmap + run_domain + env_run.xml + atm2wav state mapping file + + + + char + idmap + run_domain + env_run.xml + ocn2atm flux mapping file + + + + char + idmap + run_domain + env_run.xml + ocn2atm state mapping file + + + + char + idmap + run_domain + env_run.xml + lnd2atm flux mapping file + + + + char + idmap + run_domain + env_run.xml + lnd2atm state mapping file + + + + char + idmap + run_domain + env_run.xml + lnd2glc flux mapping file + + + + char + idmap + run_domain + env_run.xml + lnd2glc state mapping file + + + + char + idmap + run_domain + env_run.xml + lnd2rof flux mapping file + + + + char + idmap + run_domain + env_run.xml + rof2lnd flux mapping file + + + + char + idmap + run_domain + env_run.xml + rof2ocn flux mapping file + + + + char + idmap + run_domain + env_run.xml + rof2ocn runoff mapping file + + + + char + idmap + run_domain + env_run.xml + rof2ocn runoff mapping file + + + + char + idmap + run_domain + env_run.xml + glc2lnd flux mapping file + + + + char + idmap + run_domain + env_run.xml + glc2lnd state mapping file + + + + char + idmap + run_domain + env_run.xml + glc2ice runoff mapping file + + + + char + idmap + run_domain + env_run.xml + glc2ocn runoff mapping file for liquid runoff + + + + char + idmap + run_domain + env_run.xml + glc2ocn runoff mapping file for ice runoff + + + + char + idmap + run_domain + env_run.xml + ocn2wav state mapping file + + + + char + idmap + run_domain + env_run.xml + ice2wav state mapping file + + + + char + idmap + run_domain + env_run.xml + wav2ocn state mapping file + + + + char + 1.0e-02 + run_domain + env_run.xml + Error tolerance for differences in fractions in domain checking + + + + real + 9.0e-07 + run_domain + env_run.xml + Error tolerance for differences in atm/land areas in domain checking + + + + real + 1.0e-13 + run_domain + env_run.xml + Error tolerance for differences in atm/land masks in domain checking + + + + real + 1.0e-12 + run_domain + env_run.xml + Error tolerance for differences in atm/land lat/lon in domain checking + + + + real + 1.0e-01 + run_domain + env_run.xml + Error tolerance for differences in ocean/ice lon/lat in domain checking + + + + real + 1.0e-06 + run_domain + env_run.xml + Error tolerance for differences in ocean/ice lon/lat in domain checking + + + + real + 1.0e-02 + run_domain + env_run.xml + Error tolerance for differences in ocean/ice lon/lat in domain checking + + + + + + + + char + UNSET + case_def + env_case.xml + Machine name + + + + char + + case_def + env_case.xml + Machines directory location + + + + char + $CIME_OUTPUT_ROOT/$CASE/run + run_desc + env_run.xml + + The directory where the executable will be run. + By default this is set to EXEROOT/../run. + RUNDIR allows you to keep the run directory separate from the build directory + + + + + char + UNSET + run_din + env_run.xml + + A regular expression to match machine node names to ACME machine. + + + + + char + run_din + env_run.xml + + A regular expression to search for an indication that a run failure was caused by a node failure + and should therefore be re-attempted. + + + + + char + UNSET + run_din + env_run.xml + + Proxy (if any) setting for http_proxy to allow web access on this machine. + + + + + logical + FALSE + run_din + env_run.xml + + Indicates to case.submit that this is a test case. + + + + + char + UNSET + run_din + env_run.xml + + The root directory of all CIME and component input data for the selected machine. + This is usually a shared disk area. + Default values for the target machine are in the + $CIMEROOT/machines/config_machines.xml + + + + + char + UNSET + run_din + env_run.xml + CLM-specific root directory for CLM type input forcing data + This directory will only be used for I (CLM/DATM) compsets and only + for datm forcing data that is NOT checked into the svn repository + (datasets other than the Qian or single-point forcing). + This is usually a shared disk area. + Default values for the target machine are in the + $CIMEROOT/machines/config_machines.xml + + + + char + UNSET + run_dout + env_run.xml + Root directory for short term archiving. This directory must be visible to compute nodes. + + + + char + UNSET + run_mpi + env_run.xml + override the mpi run command, do not include model executable + + + + + + + + logical + TRUE,FALSE + FALSE + mach_pes + env_mach_pes.xml + Allocate some spare nodes to handle node failures. The system will pick a reasonable number + + + + integer + -999 + mach_pes + env_mach_pes.xml + Force this exact number of spare nodes to be allocated + + + + integer + + $MAX_MPITASKS_PER_NODE + $MAX_MPITASKS_PER_NODE + $MAX_MPITASKS_PER_NODE + $MAX_MPITASKS_PER_NODE + $MAX_MPITASKS_PER_NODE + $MAX_MPITASKS_PER_NODE + $MAX_MPITASKS_PER_NODE + $MAX_MPITASKS_PER_NODE + $MAX_MPITASKS_PER_NODE + + mach_pes + env_mach_pes.xml + number of tasks for each component + + + + integer + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + mach_pes + env_mach_pes.xml + Number of tasks per instance for each component. DO NOT EDIT: Set automatically by case.setup based on NTASKS, NINST and MULTI_DRIVER + + + + integer + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + mach_pes + env_mach_pes.xml + number of threads for each task in each component + + + + integer + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + mach_pes + env_mach_pes.xml + ROOTPE (mpi task in MPI_COMM_WORLD) for each component + + + logical + TRUE + TRUE + mach_pes + env_mach_pes.xml + MULTI_DRIVER mode provides a separate driver/coupler component for each + ensemble member. All components must have an equal number of members. + Multidriver is always true for nuopc, variable is left for compatibility with the mct driver + + + + integer + + 1 + + mach_pes + env_mach_pes.xml + Number of instances of the model. + + + + + integer + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + mach_pes + env_mach_pes.xml + The mpi global processors stride associated with the mpi tasks for the a component + + + + integer + 0 + mach_pes_last + env_mach_pes.xml + total number of MPI tasks (setup automatically - DO NOT EDIT) + + + + integer + 0 + mach_pes_last + env_mach_pes.xml + maximum number of tasks/ threads allowed per node + + + + integer + 0 + mach_pes_last + env_mach_pes.xml + pes or cores per node for accounting purposes + + + + integer + $MAX_MPITASKS_PER_NODE + mach_pes_last + env_mach_pes.xml + pes or cores per node for accounting purposes + + + + + + + + integer + 2 + 1,2 + build_macros + env_build.xml + PIO library version + + + + char + + build_macros + env_build.xml + PIO configure options, see PIO configure utility for details + + + + logical + TRUE,FALSE + FALSE + run_pio + env_run.xml + TRUE implies perform asynchronous i/o + + + + char + p2p,coll,default + p2p + run_pio + env_run.xml + pio rearranger communication type + + + + char + 2denable,io2comp,comp2io,disable,default + 2denable + run_pio + env_run.xml + pio rearranger communication flow control direction + + + + integer + + 0 + run_pio + env_run.xml + pio rearranger communication max pending requests (comp2io) : 0 implies that CIME internally calculates the value ( = max(64, 2 * PIO_NUMTASKS) ), -1 implies no bound on max pending requests + + + + logical + TRUE,FALSE + TRUE + run_pio + env_run.xml + pio rearranger communiation options (comp2io) : TRUE implies enable handshake + + + + logical + TRUE,FALSE + FALSE + run_pio + env_run.xml + pio rearranger communiation options (comp2io) : TRUE implies enable isend + + + + integer + + 64 + run_pio + env_run.xml + pio rearranger communication max pending requests (io2comp) : -1 implies no bound on max pending requests + + + + + + logical + TRUE,FALSE + FALSE + run_pio + env_run.xml + pio rearranger communiation options (io2comp) : TRUE implies enable handshake + + + + logical + TRUE,FALSE + TRUE + run_pio + env_run.xml + pio rearranger communiation options (io2comp) : TRUE implies enable isend + + + + + integer + 0 + run_pio + env_run.xml + pio debug level + + + + integer + -1 + run_pio + env_run.xml + pio blocksize for box decompositions + + + + integer + -1 + run_pio + env_run.xml + pio buffer size limit for pnetcdf output + + + + char + netcdf,pnetcdf,netcdf4p,netcdf4c,default + run_pio + env_run.xml + pio io type + + default + default + default + default + default + default + default + default + default + + + + + char + classic,64bit_offset,64bit_data + run_pio + env_run.xml + pio netcdf format (ignored for netcdf4p and netcdf4c) + https://www.unidata.ucar.edu/software/netcdf/docs/data_type.html + + + 64bit_offset + 64bit_offset + 64bit_offset + 64bit_offset + 64bit_offset + 64bit_offset + 64bit_offset + 64bit_offset + 64bit_offset + + + + + integer + run_pio + env_run.xml + + stride in compute comm of io tasks for each component, if this value is -99 it will + be computed based on PIO_NUMTASKS and number of compute tasks + + + + + + + + + + + + + + + + integer + 1,2 + run_pio + env_run.xml + pio rearranger choice box=1, subset=2 + + $PIO_VERSION + + + + + + + + + + + + + + integer + run_pio + env_run.xml + pio root processor relative to component root + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + + + integer + run_pio + env_run.xml + + pio number of io tasks, if this value is -99 it will be computed based on PIO_STRIDE and + number of tasks + + + -99 + -99 + -99 + -99 + -99 + -99 + -99 + -99 + -99 + + + + + + + + + char + UNSET + test + env_test.xml + Test type name + + + + char + UNSET + test + env_test.xml + Test type descriptor + + + + char + UNSET + test + env_test.xml + Testcase short name + + + + char + UNSET + test + env_test.xml + Case base ID + + + + logical + TRUE,FALSE + TRUE + test + env_test.xml + Is first run of test + + + + char + UNSET + test + env_test.xml + Arguments supplied to create_test + + + + char + UNSET + test + env_test.xml + supplied or computed test id + + + + real + 0.10 + test + env_test.xml + Expected relative memory usage growth for test + + + + real + 0.25 + test + env_test.xml + Expected throughput deviation + + + + logical + TRUE,FALSE + FALSE + test + env_test.xml + Whether to generate a baseline + + + + logical + TRUE,FALSE + FALSE + test + env_test.xml + Whether to compare the baseline + + + + char + UNSET + test + env_test.xml + The tagname we are comparing baselines against + + + + char + UNSET + test + env_test.xml + The tagname we are comparing baselines against + + + + char + /UNSET + test + env_test.xml + The directory where baselines are stored + + + + char + UNSET + test + env_test.xml + The tagname we are generating baselines for + + + + char + UNSET + test + env_test.xml + The tagname we are comparing baselines against + + + + logical + TRUE,FALSE + FALSE + test + env_test.xml + Whether to clean the test after it is built/run + + + + char + UNSET + test + env_test.xml + standard full pathname of the cprnc executable + + + + + + + + logical + TRUE,FALSE + FALSE + run_coupling + env_run.xml + determine if per ice thickness category fields are passed from ice to ocean - DO NOT EDIT (set by POP build-namelist) + + + + + + + + char + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,nmonths,nmonth,nyears,nyear,date,ifdays0,end + never + run_drv_history + env_run.xml + Sets driver snapshot history file frequency (like REST_OPTION) + + + + integer + + -999 + run_drv_history + env_run.xml + Sets driver snapshot history file frequency (like REST_N) + + + + + integer + + -999 + run_drv_history + env_run.xml + yyyymmdd format, sets coupler snapshot history date (like REST_DATE) + + + + integer + 0,1,2,3,4,5,6 + 0 + run_flags + env_run.xml + Coupler decomposition option. + + + + integer + 0,1,2,3,4,5,6,7,8,9 + 1 + run_flags + env_run.xml + level of debug output, 0=minimum, 1=normal, 2=more, 3=too much + + + + logical + TRUE,FALSE + FALSE + build_component_clm + env_build.xml + TRUE implies CLM is built with support for the PETSc + library. The Variably Saturated Flow Model (VSFM) solver in CLM + uses the PETSc library. In order to use the VSFM solver, CLM + must be built with PETSc support and linking to PETSc must occur + when building the ACME executable. This occurs if this variable + is set to TRUE. Note that is only available on a limited set of + machines/compilers. + + + + + + char + + external_tools + env_run.xml + External script to be run before model completion + + + char + + external_tools + env_run.xml + External script to be run after model completion + + + + + + logical + TRUE,FALSE + external_tools + env_run.xml + Run the external tool pointed to by DATA_ASSIMILATION_SCRIPT after the model run completes + + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + + + + integer + + 1 + external_tools + env_run.xml + Number of model run - data assimilation steps to complete + + + char + + + external_tools + env_run.xml + External script to be run after model completion + + + + logical + TRUE,FALSE + FALSE + external_tools + env_run.xml + whether the case uses an external workflow driver + + + + + char + job_submission + env_workflow.xml + Store user override for queue + + + + char + job_submission + env_workflow.xml + Store user override for walltime + + + + char + + + job_submission + env_workflow.xml + The machine queue in which to submit the job. Default determined in config_machines.xml can be overwritten by testing + + + + char + + + job_submission + env_workflow.xml + The machine wallclock setting. Default determined in config_machines.xml can be overwritten by testing + + + + char + + + job_submission + env_workflow.xml + Override the batch submit command this job. Do not include executable or dependencies + + + + char + + job_submission + env_workflow.xml + project for project-sensitive build and run paths, and job scripts + + + + char + + job_submission + env_workflow.xml + project to charge in scripts if different from PROJECT + + + + char + unknown + case_der + env_case.xml + Apparent version of the model used for this case + + + + logical + TRUE,FALSE + FALSE + job_submission + env_workflow.xml + whether the PROJECT value is required on this machine + + + + ========================================= + Notes: + (1) Time period is first four characters of + compset name + ========================================= + + + diff --git a/cime_config/config_component_ufs.xml b/cime_config/config_component_ufs.xml new file mode 100644 index 00000000..1245d9b6 --- /dev/null +++ b/cime_config/config_component_ufs.xml @@ -0,0 +1,526 @@ + + + + + + + + + 1972-2004 + 2002-2003 + Historic transient + Twentieth century transient + + CMIP5 rcp 2.6 forcing + CMIP5 rcp 4.5 forcing + CMIP5 rcp 6.0 forcing + CMIP5 rcp 8.5 forcing + Biogeochemistry intercomponent + with diagnostic CO2 + with prognostic CO2 + + + + char + https://doi.org/10.5065/D67H1H0V + run_metadata + env_case.xml + run DOI + + + + logical + TRUE,FALSE + FALSE + run_flags + env_run.xml + Turns on component varying thread control in the driver. + Used to set the driver namelist variable "drv_threading". + + + + logical + TRUE,FALSE + FALSE + run_flags + env_run.xml + logical to save timing files in rundir + + + + integer + 0 + run_flags + env_run.xml + Determines number of times profiler is called over the model run period. + This sets values for tprof_option and tprof_n that determine the timing output file frequency + + + + + integer + 2 + run_flags + env_run.xml + + integer indicating maximum detail level to profile. This xml + variable is used to set the namelist variable + timing_detail_limit. This namelist variable is used by perf_mod + (in $CIMEROOT/src/share/timing/perf_mod.F90) to turn timers off + and on depending on calls to the routine t_adj_detailf. If in the + code a statement appears like t_adj_detailf(+1), then the current + timer detail level is incremented by 1 and compared to the + time_detail_limit obtained from the namelist. If the limit is + exceeded then the timer is turned off. + + + + + integer + 4 + run_flags + env_run.xml + Maximum code stack depth of enabled timers. + + + + logical + TRUE,FALSE + FALSE + run_data_archive + env_run.xml + Logical to archive all interim restart files, not just those at eor + If TRUE, perform short term archiving on all interim restart files, + not just those at the end of the run. By default, this value is TRUE. + The restart files are saved under the specific component directory + ($DOUT_S_ROOT/$CASE/$COMPONENT/rest rather than the top-level $DOUT_S_ROOT/$CASE/rest directory). + Interim restart files are created using the REST_N and REST_OPTION variables. + This is for expert users ONLY and requires expert knowledge. + We will not document this further in this guide. + + + + logical + TRUE,FALSE + FALSE + run_flags + env_run.xml + turns on coupler bit-for-bit reproducibility with varying pe counts + + + + char + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,nmonths,nmonth,nyears,nyear,date,ifdays0,end + never + + ndays + + run_begin_stop_restart + env_run.xml + + sets frequency of full model barrier (same options as STOP_OPTION) for synchronization with BARRIER_N and BARRIER_DATE + + + + + char + none,CO2A,CO2B,CO2C + none + + CO2A + none + CO2A + CO2A + CO2A + CO2C + CO2C + + run_coupling + env_run.xml + Activates additional CO2-related fields to be exchanged between components. Possible values are: + + CO2A: sets the driver namelist variable flds_co2a = .true.; this adds + prognostic CO2 and diagnostic CO2 at the lowest model level to be sent from + the atmosphere to the land and ocean. + + CO2B: sets the driver namelist variable flds_co2b = .true.; this adds + prognostic CO2 and diagnostic CO2 at the lowest model level to be sent from + the atmosphere just to the land, and the surface upward flux of CO2 to be + sent from the land back to the atmosphere + + CO2C: sets the driver namelist variable flds_co2c = .true.; this adds + prognostic CO2 and diagnostic CO2 at the lowest model level to be sent from + the atmosphere to the land and ocean, and the surface upward flux of CO2 + to be sent from the land and the open ocean back to the atmosphere. + + The namelist variables flds_co2a, flds_co2b and flds_co2c are in the + namelist group cpl_flds_inparm. + + + + + char + + + + + + run_component_cpl + env_case.xml + User mods to apply to specific compset matches. + + + + char + hour,day,year,decade + run_coupling + env_run.xml + day + + year + hour + + Base period associated with NCPL coupling frequency. + This xml variable is only used to set the driver namelist variables, + atm_cpl_dt, lnd_cpl_dt, ocn_cpl_dt, ice_cpl_dt, glc_cpl_dt, rof_cpl_dt, wav_cpl_dt, and esp_dt. + + + + integer + 48 + + 144 + 288 + 288 + 72 + 48 + + + 24 + 24 + 24 + 24 + 24 + 24 + 48 + 48 + 1 + 96 + 96 + 96 + 96 + 192 + 192 + 192 + 192 + 384 + 384 + 384 + 144 + 72 + 144 + 288 + 48 + 48 + 24 + 24 + 1 + + + + run_coupling + env_run.xml + Number of atm coupling intervals per NCPL_BASE_PERIOD. + This is used to set the driver namelist atm_cpl_dt, equal to basedt/ATM_NCPL, + where basedt is equal to NCPL_BASE_PERIOD in seconds. + + + + integer + $ATM_NCPL + + 1 + + run_coupling + env_run.xml + Number of land coupling intervals per NCPL_BASE_PERIOD. + This is used to set the driver namelist atm_cpl_dt, equal to basedt/LND_NCPL, + where basedt is equal to NCPL_BASE_PERIOD in seconds. + + + + integer + $ATM_NCPL + + 1 + + run_coupling + env_run.xml + Number of ice coupling intervals per NCPL_BASE_PERIOD. + This is used to set the driver namelist ice_cpl_dt, equal to basedt/ICE_NCPL + where basedt is equal to NCPL_BASE_PERIOD in seconds. + + + + integer + $ATM_NCPL + + 24 + 24 + 4 + 24 + 24 + + + + + 1 + + run_coupling + env_run.xml + Number of ocn coupling intervals per NCPL_BASE_PERIOD. + Thisn is used to set the driver namelist ocn_cpl_dt, equal to basedt/OCN_NCPL + where basedt is equal to NCPL_BASE_PERIOD in seconds. + + + + integer + 1 + + 1 + + run_coupling + env_run.xml + Number of glc coupling intervals per NCPL_BASE_PERIOD. + + + + char + glc_coupling_period,yearly + yearly + run_coupling + env_run.xml + Period at which coupler averages fields sent to GLC. + This supports doing the averaging to GLC less frequently than GLC is called + (i.e., separating the averaging frequency from the calling frequency). + This is useful because there are benefits to only averaging the GLC inputs + as frequently as they are really needed (yearly for CISM), but GLC needs to + still be called more frequently than that in order to support mid-year restarts. + + Setting GLC_AVG_PERIOD to 'glc_coupling_period' means that the averaging is + done exactly when the GLC is called (governed by GLC_NCPL). + + IMPORTANT: In order to restart mid-year when running with CISM, you MUST specify GLC_AVG_PERIOD = 'yearly'. + If using GLC_AVG_PERIOD = 'glc_coupling_period' with CISM, you can only restart on year boundaries. + + + + + integer + + $ATM_NCPL + + $ATM_NCPL + $ATM_NCPL + $ATM_NCPL + $ATM_NCPL + 8 + 8 + $ATM_NCPL + 1 + + run_coupling + env_run.xml + Number of rof coupling intervals per NCPL_BASE_PERIOD. + This is used to set the driver namelist rof_cpl_dt, equal to basedt/ROF_NCPL + where basedt is equal to NCPL_BASE_PERIOD in seconds. + + + + integer + $ATM_NCPL + run_coupling + env_run.xml + Number of wav coupling intervals per NCPL_BASE_PERIOD. + This is used to set the driver namelist wav_cpl_dt, equal to basedt/WAV_NCPL + where basedt is equal to NCPL_BASE_PERIOD in seconds. + + + + + + logical + TRUE,FALSE + FALSE + + TRUE + TRUE + TRUE + FALSE + + run_component_cpl + env_run.xml + + Only used for compsets with DATM and POP (currently C, G and J): + If true, compute albedos to work with daily avg SW down + If false (default), albedos are computed with the assumption that downward + solar radiation from the atm component has a diurnal cycle and zenith-angle + dependence. This is normally the case when using an active atm component + If true, albedos are computed with the assumption that downward + solar radiation from the atm component is a daily average quantity and + does not have a zenith-angle dependence. This is often the case when + using a data atm component. Only used for compsets with DATM and POP (currently C, G and J). + NOTE: This should really depend on the datm forcing and not the compset per se. + So, for example, whether it is set in a J compset should depend on + what datm forcing is used. + + + + + char + off,ocn + off + + ocn + off + + run_component_cpl + env_run.xml + + Only used for compsets with DATM and POP (currently C, G and J): + If ocn, ocn provides EP balance factor for precipitation. + Provides EP balance factor for precip for POP. A factor computed by + POP is applied to precipitation so that precipitation balances + evaporation and ocn global salinity does not drift. This is intended + for use when coupling POP to a DATM. Only used for C, G and J compsets. + Default is off + + + + + char + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,nmonths,nmonth,nyears,nyear,date,ifdays0,end + never + + nmonths + + run_drv_history + env_run.xml + Sets driver average history file frequency (like REST_OPTION) + + + + char + + -999 + + 1 + + run_drv_history + env_run.xml + Sets driver average history file frequency (like REST_N) + + + + integer + + -999 + run_drv_history + env_run.xml + yyyymmdd format, sets driver average history date (like REST_DATE) + + + + logical + TRUE,FALSE + FALSE + + TRUE + TRUE + TRUE + + run_budgets + env_run.xml + logical that turns on diagnostic budgets for driver + + + + real + + 284.7 + + 367.0 + 284.7 + + run_co2 + env_run.xml + + Mechanism for setting the CO2 value in ppmv for + CLM if CLM_CO2_TYPE is constant or for + POP if OCN_CO2_TYPE is constant. + + + + + logical + TRUE,FALSE + FALSE + + TRUE + TRUE + + run_flags + env_run.xml + Turn on the passing of water isotope fields through the coupler + + + + integer + 1,3,5,10,36 + 10 + run_glc + env_run.xml + Number of glacier elevation classes used in CLM. + Used by both CLM and the coupler (even if CISM is not running, and only SGLC is used). + + + + logical + TRUE,FALSE + FALSE + + TRUE + + TRUE + + run_glc + env_run.xml + Whether the glacier component feeds back to the rest of the system + This affects: + (1) Whether CLM updates its areas based on glacier areas sent from GLC + (2) Whether GLC sends fluxes (e.g., calving fluxes) to the coupler + Note that this is set to TRUE by default for TG compsets - even though there are + no feedbacks for TG compsets, this enables extra coupler diagnostics for these + compsets. + + + + char + minus1p8,linear_salt,mushy + mushy + run_physics + env_run.xml + Freezing point calculation for salt water. + + + + diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml new file mode 100644 index 00000000..46bf5419 --- /dev/null +++ b/cime_config/config_compsets.xml @@ -0,0 +1,106 @@ + + + + + + ========================================= + compset naming convention + ========================================= + The compset longname below has the specified order + atm, lnd, ice, ocn, river, glc wave esp cesm-options + + The notation for the compset longname below is + TIME_ATM[%phys]_LND[%phys]_ICE[%phys]_OCN[%phys]_ROF[%phys]_GLC[%phys]_WAV[%phys][_ESP][_BGC%phys] + + The following compsets are those that can be tested in CIME stand-alone configurations + without any prognostic components. + For the compsets below the following are the only allowable values of the components. + + TIME = Time period (e.g. 2000, HIST, RCP8...) + ATM = [DATM, SATM, XATM] + LND = [DLND, SLND, XLND] + ICE = [DICE, SICE, XICE] + OCN = [DOCN, SOCN, XOCN] + ROF = [DROF, SROF, XROF] + GLC = [ SGLC ] + WAV = [DWAV, SWAV ] + ESP = [DESP, SESP ] + + The OPTIONAL %phys attributes specify submodes of the given system + For example DOCN%DOM is the data ocean model for DOCN + ALL data models must have a %phys option that corresponds to the data model mode + + Each compset node is associated with the following elements + - lname + - alias + - support (optional description of the support level for this compset) + Each compset node can also have the following attributes + - grid (optional regular expression match for grid to work with the compset) + + + + AA + 2000_DATM%NYF_DLND%LCPL_DICE%SSMI_DOCN%DOM_DROF%NYF_SGLC_DWAV + + + + A + 2000_DATM%NYF_SLND_DICE%SSMI_DOCN%DOM_DROF%NYF_SGLC_SWAV + + + + ADSOM + 2000_DATM%NYF_SLND_DICE%SSMI_DOCN%SOM_DROF%NYF_SGLC_SWAV_TEST + + + + ADSOMAQP + 2000_DATM%NYF_SLND_SICE_DOCN%SOMAQP_SROF_SGLC_SWAV + + + + ADAQP3 + 2000_DATM%NYF_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV + + + + ADAQPFILE + 2000_DATM%NYF_SLND_SICE_DOCN%AQPFILE_SROF_SGLC_SWAV + + + + A1850DLND + 1850_SATM_DLND%SCPL_SICE_SOCN_SROF_SGLC_SWAV + + + + ADWAV + 2000_SATM_SLND_SICE_SOCN_SROF_SGLC_DWAV%CLIMO + + + + ADESP + 2000_DATM%NYF_SLND_SICE_DOCN%SOMAQP_SROF_SGLC_SWAV_DESP%NOOP + + + + ADESP_TEST + 2000_DATM%NYF_SLND_SICE_DOCN%SOMAQP_SROF_SGLC_SWAV_DESP%TEST + + + + AIAF + 2000_DATM%IAF_SLND_DICE%IAF_DOCN%IAF_DROF%IAF_SGLC_SWAV + + + + S + 2000_SATM_SLND_SICE_SOCN_SROF_SGLC_SWAV_SESP + + + + X + 2000_XATM_XLND_XICE_XOCN_XROF_XGLC_XWAV + + + diff --git a/cime_config/config_pes.xml b/cime_config/config_pes.xml new file mode 100644 index 00000000..ad332b3f --- /dev/null +++ b/cime_config/config_pes.xml @@ -0,0 +1,210 @@ + + + + + + + + none + + -1 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + none + + 60 + 60 + 60 + 60 + 60 + 60 + 60 + 60 + 60 + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + none + + -8 + -8 + -8 + -8 + -8 + -8 + -8 + -8 + -8 + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + none + + -1 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + + + 8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + PE layout for tests + + 64 + 64 + 64 + 64 + 64 + 64 + 64 + 64 + 64 + + + 16 + 16 + 16 + 16 + 16 + 16 + 16 + 16 + 16 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + diff --git a/cime_config/namelist_definition_drv.xml b/cime_config/namelist_definition_drv.xml new file mode 100644 index 00000000..f0c846bb --- /dev/null +++ b/cime_config/namelist_definition_drv.xml @@ -0,0 +1,3789 @@ + + + + + + + + + + + + char + nuopc + DRIVER_attributes + + $INFO_DBUG + + + + + + + char + nuopc + DRIVER_attributes + + 0 + + + + + char + nuopc + MED_attributes + + $INFO_DBUG + + + + + char + nuopc + ATM_attributes + + $INFO_DBUG + + + + + char + nuopc + OCN_attributes + + $INFO_DBUG + + + + + char + nuopc + ICE_attributes + + $INFO_DBUG + + + + + char + nuopc + ROF_attributes + + $INFO_DBUG + + + + + char + nuopc + LND_attributes + + $INFO_DBUG + + + + + char + nuopc + GLC_attributes + + $INFO_DBUG + + + + + char + nuopc + WAV_attributes + + $INFO_DBUG + + + + + + + + + char + expdef + DRIVER_attributes + cesm,ufs + cime model + + cesm + ufs + + + + + char + expdef + DRIVER_attributes + + location of timing output. + + + ./timing + + + + + char + expdef + DRIVER_attributes + + location of timing checkpoint output. + + + ./timing/checkpoints + + + + + logical + expdef + DRIVER_attributes + + turns on bfb option in coupler which produce bfb results in the + coupler on different processor counts. (default: .false.) + + + $BFBFLAG + + + + + char + orbital + DRIVER_attributes + fixed_year,variable_year,fixed_parameters + + orbital model setting. this sets how the orbital mode will be + configured. + "fixed_year" uses the orb_iyear and other orb inputs are ignored. In + this mode, the orbital parameters are constant and based on the year. + "variable_year" uses the orb_iyear and orb_iyear_align. In this mode, + the orbital parameters vary as the model year advances and the model + year orb_iyear_align has the equivalent orbital year of orb_iyear. + "fixed_parameters" uses the orb_eccen, orb_mvelp, and orb_obliq to set + the orbital parameters which then remain constant through the model + integration. [fixed_year, variable_year, fixed_parameters] (default: 'fixed_year'.) + + + fixed_year + variable_year + + + + + integer + orbital + DRIVER_attributes + + model year associated with orb_iyear when orb_mode is variable_year. (default: 1990) + + + 1990 + 1850 + 2000 + 1850 + + + + + integer + orbital + DRIVER_attributes + + year of orbit, used when orb_mode is fixed_year or variable_year. (default: 1990) + + + 1990 + 1850 + 2000 + 1850 + + + + + real + orbital + DRIVER_attributes + + eccentricity of orbit, used when orb_mode is fixed_parameters. + default: SHR_ORB_UNDEF_REAL (1.e36) (Not currently used in build-namelist) + + + 1.e36 + + + + + real + orbital + DRIVER_attributes + + location of vernal equinox in longitude degrees, used when orb_mode is fixed_parameters. + default: SHR_ORB_UNDEF_REAL (1.e36)(Not currently used in build-namelist) + + + 1.e36 + + + + + real + orbital + DRIVER_attributes + + obliquity of orbit in degrees, used when orb_mode is fixed_parameters. + default: SHR_ORB_UNDEF_REAL (1.e36) (Not currently used in build-namelist) + + + 1.e36 + + + + + char + wv_sat + DRIVER_attributes + GoffGratch,MurphyKoop,Bolton,Flatau + + Type of water vapor saturation vapor pressure scheme employed. 'GoffGratch' for + Goff and Gratch (1946); 'MurphyKoop' for Murphy and Koop (2005); 'Bolton' for + Bolton (1980); 'Flatau' for Flatau, Walko, and Cotton (1992). + Default: GoffGratch + + + GoffGratch + + + + + real + wv_sat + DRIVER_attributes + + Width of the liquid-ice transition range in mixed-phase water saturation vapor + pressure calculations. The range always ends at 0 degrees Celsius, so this + variable only affects the start of the transition. + Default: 20K + WARNING: CAM is tuned to the default value of this variable. Because it affects + so many different parameterizations, changes to this variable may require a + significant retuning of CAM's cloud physics to give reasonable results. + + + 20.0D0 + + + + + logical + wv_sat + DRIVER_attributes + + Whether or not to produce lookup tables at init time to use as a cache for + saturation vapor pressure. + Default: .false. + + + .false. + + + + + real + wv_sat + DRIVER_attributes + + Temperature resolution of saturation vapor pressure lookup tables in Kelvin. + (This is only used if wv_sat_use_tables is .true.) + Default: 1.0 + + + 1.0D0 + + + + + real + control + DRIVER_attributes + + Wall time limit for run + default: -1.0 + + + -1.0 + + + + + char + control + DRIVER_attributes + day,month,year + + Force stop at the next month, day, etc when wall_time_limit is hit + default: month + + + month + + + + + + + + + + + + + + + + + logical + performance + DRIVER_attributes + + turn on run time control of threading per pe per component by the driver + default: false + + + $DRV_THREADING + + + + + logical + performance + DRIVER_attributes + + default: .false. + + + $COMP_RUN_BARRIERS + + + + + logical + reprosum + DRIVER_attributes + + Use faster method for reprosum, but one where reproducibility is not always guaranteed. + default: .false. + + + .false. + + + + + real + reprosum + DRIVER_attributes + + Tolerance for relative error + default: -1.0e-8 + + + -1.0e-8 + + + + + logical + reprosum + DRIVER_attributes + + Recompute with non-scalable algorithm if reprosum_diffmax is exceeded. + default: .false. + + + .false. + + + + + char + expdef + DRIVER_attributes + + Ending suffix "postfix" for output log files. + + + .log + + + + + char + expdef + DRIVER_attributes + + Root for output log files. + + + ./ + + + + + real + expdef + DRIVER_attributes + + Abort if cplstep time exceeds this value + + + 0. + + + + + char + nuopc + nuopc_var + + Model components that are active + + + ATM OCN ICE LND ROF GLC WAV MED + + + + + char + nuopc + ALLCOMP_attributes + + cesm + + + + char + nuopc + ALLCOMP_attributes + + $COMP_ATM + + + + char + nuopc + ALLCOMP_attributes + + $COMP_OCN + + + + char + nuopc + ALLCOMP_attributes + + $COMP_ICE + + + + char + nuopc + ALLCOMP_attributes + + $COMP_ROF + + + + char + nuopc + ALLCOMP_attributes + + $COMP_LND + + + + char + nuopc + ALLCOMP_attributes + + $COMP_GLC + + + + char + nuopc + ALLCOMP_attributes + + $COMP_WAV + + + + + char + expdef + ALLCOMP_attributes + + Model version + + + unknown + + + + + char + expdef + ALLCOMP_attributes + startup,branch,continue + + mode to start the run up, [startup,branch,continue], + automatically derived from RUN_TYPE in env_run.xml + + + startup + startup + branch + continue + continue + continue + + + + + logical + expdef + DRIVER_attributes + + only have the mediator reads the restart file regardless of start type + + + + + char + expdef + ALLCOMP_attributes + + case name. + + + $CASE + + + + + char + expdef + ALLCOMP_attributes + + case description. + + + $CASESTR + + + + + char + expdef + seq_infodata_inparm + + model doi url + + + $MODEL_DOI_URL + + + + + char + expdef + ALLCOMP_attributes + + username documentation + + + $USER + + + + + char + expdef + ALLCOMP_attributes + + hostname information, + + + $MACH + + + + + logical + expdef + ALLCOMP_attributes + + Allow same branch casename as reference casename. If $CASE and $REFCASE are the same and the start_type is + not startup, then the value of brnch_retain_casename is set to .true. + + + .false. + + + + + logical + expdef + ALLCOMP_attributes + + Perpetual flag + + + .false. + + + + + integer + expdef + ALLCOMP_attributes + + Perpetual date + + + -999 + + + + + logical + single_column + ALLCOMP_attributes + + turns on single column mode. set by PTS_MODE in env_case.xml, default: false + + + .false. + .true. + + + + + real + single_column + ALLCOMP_attributes + + grid point latitude associated with single column mode. + if set to -999, ignore this value + + + -999. + $PTS_LAT + + + + + real + single_column + ALLCOMP_attributes + + grid point longitude associated with single column mode. + set by PTS_LON in env_run.xml. + + + -999. + $PTS_LON + + + + + logical + expdef + ALLCOMP_attributes + + true => turn on aquaplanet mode in cam + + + .false. + + + + + logical + flds + ALLCOMP_attributes + + .true. if select per ice thickness category fields are passed to the ocean. + Set by the xml variable CPL_I2O_PER_CAT in env_run.xml + + + $CPL_I2O_PER_CAT + + + + + char + control + ALLCOMP_attributes + Freezing point calculation for salt water. + + $TFREEZE_SALTWATER_OPTION + + + + + + + + + real + control + ALLCOMP_attributes + + Iterate atmocn flux calculation to this % difference + Setting this to zero will always do flux_max_iteration + + + 0.01 + 0.0 + + + + + integer + control + ALLCOMP_attributes + + Iterate atmocn flux calculation a max of this value + + + 5 + + + + + logical + control + ALLCOMP_attributes + + if true use Mahrt and Sun 1995,MWR modification to surface flux calculation + + + .true. + .false. + .false. + + + + + + + + + char + control + MED_attributes + on,off,on_if_glc_coupled_fluxes + + Whether to renormalize the surface mass balance (smb) sent from lnd to glc so that the + global integral on the glc grid agrees with the global integral on the lnd grid. + + Unlike most fluxes, smb is remapped with bilinear rather than conservative mapping weights, + so this option is needed for conservation. However, conservation is not required in many + cases, since we often run glc as a diagnostic (one-way-coupled) component. + + Allowable values are: + 'on': always do this renormalization + 'off': never do this renormalization (see WARNING below) + 'on_if_glc_coupled_fluxes': Determine at runtime whether to do this renormalization. + Does the renormalization if we're running a two-way-coupled glc that sends fluxes + to other components (which is the case where we need conservation). + Does NOT do the renormalization if we're running a one-way-coupled glc, or if + we're running a glc-only compset (T compsets). + (In these cases, conservation is not important.) + + Only used if running with a prognostic GLC component. + + WARNING: Setting this to 'off' will break conservation when running with an + evolving, two-way-coupled glc. + + + on_if_glc_coupled_fluxes + off + + + + + integer + expdef + MED_attributes + + Level of debug output, 0=minimum, 1=normal, 2=more, 3=too much (default: 1) + + + $INFO_DBUG + + + + + char + mapping + ATM_attributes + + MESH description of atm grid + + + $ATM_DOMAIN_MESH + + + + + char + mapping + LND_attributes + + MESH description of lnd grid + + + $LND_DOMAIN_MESH + + + + + char + mapping + OCN_attributes + + MESH description of ocn grid + + + $OCN_DOMAIN_MESH + + + + + char + mapping + ICE_attributes + + MESH description of ice grid + + + $ICE_DOMAIN_MESH + + + + + char + mapping + ROF_attributes + + MESH description of rof grid + + + $ROF_DOMAIN_MESH + + + + + char + mapping + GLC_attributes + + MESH description of glc grid + + + $GLC_DOMAIN_MESH + + + + + char + mapping + WAV_attributes + + MESH description of wav grid + + + $WAV_DOMAIN_MESH + + + + + real + domain_check + MED_attributes + + Error tolerance for differences in fractions in domain checking + default: 1.0e-02 + + + $EPS_FRAC + + + + + real + domain_check + MED_attributes + + Error tolerance for differences in atm/land masks in domain checking + default: 1.0e-13 + + + $EPS_AMASK + + + + + real + domain_check + MED_attributes + + Error tolerance for differences in atm/land lat/lon in domain checking + default: 1.0e-12 + + + $EPS_AGRID + + + + + real + domain_check + MED_attributes + + Error tolerance for differences in atm/land areas in domain checking + default: 1.0e-07 + + + $EPS_AAREA + + + + + real + domain_check + MED_attributes + + Error tolerance for differences in ocean/ice masks in domain checking + default: 1.0e-06 + + + $EPS_OMASK + + + + + real + domain_check + MED_attributes + + Error tolerance for differences in ocean/ice lon/lat in domain checking + default: 1.0e-2 + + + $EPS_OGRID + + + + + real + domain_check + MED_attributes + + Error tolerance for differences in ocean/ice lon/lat in domain checking + default: 1.0e-1 + + + $EPS_OAREA + + + + + logical + control + MED_attributes + + Only used for C,G compsets: if true, compute albedos to work with daily avg SW down + + + $CPL_ALBAV + + + + + char + mapping + MED_attributes + ocn,atm,exch + + Grid for atm ocn flux calc (untested) + default: ocn + + + ocn + + + + + real + control + MED_attributes + + wind gustiness factor + + + 0.0D0 + + + + + logical + budget + MED_attributes + + logical that turns on diagnostic budgets, false means budgets will never be written + + + $BUDGETS + + + + + integer + budget + MED_attributes + 0,1,2,3 + + sets the diagnotics level of the instantaneous budgets. [0,1,2,3], + written only if BUDGETS variable is true + 0=none, + 1=+net summary budgets, + 2=+detailed lnd/ocn/ice component budgets, + 3=+detailed atm budgets + default: 0 + + + 0 + + + + + integer + budget + MED_attributes + 0,1,2,3 + + sets the diagnotics level of the daily budgets. [0,1,2,3], + written only if do_budgets variable is .true., + 0=none, + 1=+net summary budgets, + 2=+detailed lnd/ocn/ice component budgets, + 3=+detailed atm budgets + default: 0 +n + + 0 + + + + char + expdef + MED_attributes + + Mediator restart pointer file. + + + rpointer.med + + + + + char + expdef + MED_attributes + + Full archive path to restart file for mediator + + + str_undefined + + + + + integer + expdef + MED_attributes + 0,1,2,3 + + sets the diagnotics level of the monthy budgets. [0,1,2,3], + written only if do_budgets variable is .true., + 0=none, + 1=+net summary budgets, + 2=+detailed lnd/ocn/ice component budgets, + 3=+detailed atm budgets + default: 1 + + + 1 + + + + + integer + budget + MED_attributes + 0,1,2,3 + + sets the diagnotics level of the annual budgets. [0,1,2,3], + written only if do_budgets variable is .true., + 0=none, + 1=+net summary budgets, + 2=+detailed lnd/ocn/ice component budgets, + 3=+detailed atm budgets + default: 1 + + + 1 + + + + + integer + budget + MED_attributes + 0,1,2,3 + + sets the diagnotics level of the longterm budgets written at the end + of the year. [0,1,2,3], + written only if do_budgets variable is .true., + 0=none, + 1=+net summary budgets, + 2=+detailed lnd/ocn/ice component budgets, + 3=+detailed atm budgets, + default: 1 + + + 1 + + + + + integer + budget + MED_attributes + 0,1,2,3 + + sets the diagnotics level of the longterm budgets written at the end + of each run. [0,1,2,3], + written only if do_budgets variable is .true., + 0=none, + 1=+net summary budgets, + 2=+detailed lnd/ocn/ice component budgets, + 3=+detailed atm budgets, + default: 0 + + + 0 + + + + + integer + expdef + MED_attributes + 0,1,2,3,4,5,6 + + cpl decomp option (0=default, 1=comp decomp, 2=rearr comp decomp, 3=new single 1d seg + default: 0 + + + $CPL_DECOMP + + + + + + + + + logical + history + MED_history_attributes + + logical to write an extra initial coupler history file + + + .false. + + + + + logical + history + MED_history_attributes + + writes atm fields in coupler average history files. + default: true + + + .true. + + + + + logical + history + MED_history_attributes + + writes lnd fields in coupler average history files. + default: true + + + .true. + + + + + logical + history + MED_history_attributes + + writes ocn fields in coupler average history files. + default: true + + + .true. + + + + + logical + history + MED_history_attributes + + writes ice fields in coupler average history files. + default: true + + + .true. + + + + + logical + history + MED_history_attributes + + writes rof fields in coupler average history files. + default: true + + + .true. + + + + + logical + history + MED_history_attributes + + writes glc fields in coupler average history files. + default: true + + + .true. + + + + + logical + history + MED_history_attributes + + writes wav fields in coupler average history files. + default: true + + + .true. + + + + + logical + history + MED_history_attributes + + writes xao fields in coupler average history files. + default: true + + + .true. + + + + + logical + history + MED_history_attributes + + turns on coupler history stream for instantaneous atm to coupler fields. + default: false + + + .false. + + + + + logical + history + MED_history_attributes + + turns on coupler history stream for 1-hour average atm to coupler fields. + default: false + + + .false. + + + + + logical + history + MED_history_attributes + + turns on coupler history stream for 1-hour instantaneous atm to coupler fields. + default: false + + + .false. + + + + + logical + history + MED_history_attributes + + turns on coupler history stream for 3-hour average atm to coupler fields. + default: false + + + .false. + + + + + logical + history + MED_history_attributes + + turns on coupler history stream for 3-hour average atm to coupler precip fields. + default: false + + + .false. + + + + + logical + history + MED_history_attributes + + turns on coupler history stream for daily average atm to coupler fields. + default: false + + + .false. + + + + + logical + history + MED_history_attributes + + turns on coupler history stream for instantaneous land to coupler fields. + default: false + + + .false. + + + + + logical + history + MED_history_attributes + + turns on coupler history stream for instantaneous runoff to coupler fields. + default: false + + + .false. + + + + + logical + history + MED_history_attributes + + turns on coupler history stream for annual sno to coupler fields. + default: false + + + .false. + + + + + char + aux_hist + MED_history_attributes + + Auxiliary coupler a2x history fields + + + Faxa_swndr:Faxa_swvdr:Faxa_swndf:Faxa_swvdf + + + + + char + aux_hist + MED_history_attributes + + Auxiliary coupler a2x precipitation history output every 3 hours + + + Faxa_rainc:Faxa_rainl:Faxa_snowc:Faxa_snowl + + + + + char + aux_hist + MED_history_attributes + + Auxiliary coupler a2x history output every 24 hours + + + Faxa_bcphiwet:Faxa_bcphodry:Faxa_bcphidry:Faxa_ocphiwet:Faxa_ocphidry:Faxa_ocphodry:Faxa_dstwet1:Faxa_dstdry1:Faxa_dstwet2:Faxa_dstdry2:Faxa_dstwet3:Faxa_dstdry3:Faxa_dstwet4:Faxa_dstdry4:Sa_co2prog:Sa_co2diag + + + + + char + aux_hist + MED_history_attributes + + Auxiliary coupler a2x instantaneous history output every hour + + + Faxa_swndr:Faxa_swvdr:Faxa_swndf:Faxa_swvdf + + + + + char + aux_hist + MED_history_attributes + + Auxiliary coupler a2x averaged history output every hour + + + Sa_u:Sa_v + + + + + char + aux_hist + MED_history_attributes + + Auxiliary coupler a2x averaged history output every 3 hours + + + Sa_z:Sa_topo:Sa_u:Sa_v:Sa_tbot:Sa_ptem:Sa_shum:Sa_dens:Sa_pbot:Sa_pslv:Faxa_lwdn:Faxa_rainc:Faxa_rainl:Faxa_snowc:Faxa_snowl:Faxa_swndr:Faxa_swvdr:Faxa_swndf:Faxa_swvdf:Sa_co2diag:Sa_co2prog + + + + + + + + + char + expdef + ALLCOMP_attributes + + name of the coupling field with scalar information + + + cpl_scalars + + + + + integer + expdef + ALLCOMP_attributes + + total number of scalars in the scalar coupling field + + + 5 + + + + + integer + expdef + ALLCOMP_attributes + + index of scalar containing global grid cell count in X dimension + + + 1 + + + + + integer + expdef + ALLCOMP_attributes + + index of scalar containing global grid cell count in Y dimension + + + 2 + + + + + integer + expdef + ALLCOMP_attributes + + index of scalar containing calendar day of nextsw computation from atm + + + 3 + + + + + integer + expdef + ALLCOMP_attributes + + index of valid glc input from mediator + + + 4 + + + + + integer + expdef + ALLCOMP_attributes + + index of scalar containing epbal precipitation factor from ocn (only for POP) + + + 0 + 5 + + + + + logical + mapping + FLDS_attributes + used for atm->ocn and atm-ice mapping of u and v; rotate u,v to 3d cartesian space, map from src->dest, then rotate back + + .false. + + + + + char + mapping + abs + FLDS_attributes + atm to ocn flux mapping file for fluxes + + $ATM2OCN_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + atm to ocn state mapping file for states + + + $ATM2OCN_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + atm to ocn state mapping file for velocity + + + $ATM2OCN_VMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + ocn to atm mapping file for fluxes + + + $OCN2ATM_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + ocn to atm mapping file for states + + + $OCN2ATM_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + atm to ice flux mapping file for fluxes + + + $ATM2OCN_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + atm to ice state mapping file for states + + + $ATM2OCN_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + atm to ice state mapping file for velocity + + + $ATM2OCN_VMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + ice to atm mapping file for fluxes + + + $OCN2ATM_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + ice to atm mapping file for states + + + $OCN2ATM_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + atm to land mapping file for fluxes + + + $ATM2LND_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + atm to land mapping file for states + + + $ATM2LND_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + atm to land mapping file for states + + + $ATM2LND_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + land to atm mapping file for fluxes + + + $LND2ATM_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + land to atm mapping file for states + + + $LND2ATM_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + lnd to runoff conservative mapping file + + + $LND2ROF_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + runoff to lnd conservative mapping file + + + $ROF2LND_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + runoff to lnd conservative mapping file + + + $ROF2LND_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + runoff to ocn area overlap conservative mapping file + + + $ROF2OCN_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + glc2ocn runoff mapping file for liquid runoff + + + $GLC2OCN_LIQ_RMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + glc to ice runoff conservative mapping file + + + $GLC2ICE_RMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + glc2ocn runoff mapping file for ice runoff + + + $GLC2OCN_ICE_RMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + runoff to ocn nearest neighbor plus smoothing conservative mapping file + + + $ROF2OCN_LIQ_RMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + runoff to ocn nearest neighbor plus smoothing conservative mapping file + + + $ROF2OCN_ICE_RMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + land to glc mapping file for fluxes + + + $LND2GLC_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + land to glc mapping file for states + + + $LND2GLC_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + glc to land mapping file for fluxes + + + $GLC2LND_FMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + glc to land mapping file for states + + + $GLC2LND_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + atm to wav state mapping file for states + + + $ATM2WAV_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + atm to wav state mapping file for states + + + $ATM2WAV_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + ocn to wav state mapping file for states + + + $OCN2WAV_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + ice to wav state mapping file for states + + + $ICE2WAV_SMAPNAME + + + + + char + mapping + abs + FLDS_attributes + + wav to ocn state mapping file for states + + + $WAV2OCN_SMAPNAME + + + + + logical + flds + ALLCOMP_attributes + + Previously, new fields that were needed to be passed between components + for certain compsets were specified by cpp-variables. This has been + modified to now be use cases. This use cases are specified in the + namelist cpl_flds_inparm and are currently triggered by the xml variable CCSM_BGC. + If CCSM_BGC is set to 'CO2A', then flds_co2a will be set to .true. + + + .false. + .true. + + + + + logical + flds + ALLCOMP_attributes + + Previously, new fields that were needed to be passed between components + for certain compsets were specified by cpp-variables. This has been + modified to now be use cases. This use cases are specified in the + namelist cpl_flds_inparm and are currently triggered by the xml variable CCSM_BGC. + If CCSM_BGC is set to 'CO2B', then flds_co2b will be set to .true. + + + .false. + .true. + + + + + logical + flds + ALLCOMP_attributes + + Previously, new fields that were needed to be passed between components + for certain compsets were specified by cpp-variables. This has been + modified to now be use cases. This use cases are specified in the + namelist cpl_flds_inparm and are currently triggered by the xml variable CCSM_BGC. + If CCSM_BGC is set to 'CO2C', then flds_co2c will be set to .true. + + + .false. + .true. + + + + + logical + seq_flds + ALLCOMP_attributes + + If set to .true. BGC fields will be passed back and forth between the ocean and seaice + via the coupler. + + + .false. + .true. + + + + + + logical + flds + ALLCOMP_attributes + + Pass water isotopes between components + + + $FLDS_WISO + + + + + integer + flds + ALLCOMP_attributes + + Number of cism elevation classes. Set by the xml variable GLC_NEC in env_run.xml + + + $GLC_NEC + + + + + integer + flds + ALLCOMP_attributes + + Number of sea ice thickness categories. Set by the xml variable ICE_NCAT in env_build.xml + + + $ICE_NCAT + + + + + + + + + integer + time + CLOCK_attributes + + atm coupling interval in seconds + set via ATM_NCPL in env_run.xml. + ATM_NCPL is the number of times the atm is coupled per NCPL_BASE_PERIOD + NCPL_BASE_PERIOD is also set in env_run.xml and is the base period + associated with NCPL coupling frequency, and has valid values: hour,day,year,decade + + + + + integer + time + CLOCK_attributes + + lnd coupling interval in seconds + set via LND_NCPL in env_run.xml. + LND_NCPL is the number of times the lnd is coupled per NCPL_BASE_PERIOD + NCPL_BASE_PERIOD is also set in env_run.xml and is the base period + associated with NCPL coupling frequency, nad has valid values: hour,day,year,decade + + + + + integer + time + CLOCK_attributes + + river runoff coupling interval in seconds + currently set by default to 10800 seconds. + default: 10800 + + + + + integer + time + CLOCK_attributes + + ice coupling interval in seconds + set via ICE_NCPL in env_run.xml. + ICE_NCPL is the number of times the ice is coupled per NCPL_BASE_PERIOD + NCPL_BASE_PERIOD is also set in env_run.xml and is the base period + associated with NCPL coupling frequency, nad has valid values: hour,day,year,decade + + + + + integer + time + CLOCK_attributes + + ocn coupling interval in seconds + set via OCN_NCPL in env_run.xml. + OCN_NCPL is the number of times the ocn is coupled per NCPL_BASE_PERIOD + NCPL_BASE_PERIOD is also set in env_run.xml and is the base period + associated with NCPL coupling frequency, nad has valid values: hour,day,year,decade + + + + + integer + time + CLOCK_attributes + + glc coupling interval in seconds + set via GLC_NCPL in env_run.xml. + GLC_NCPL is the number of times the glc is coupled per NCPL_BASE_PERIOD + NCPL_BASE_PERIOD is also set in env_run.xml and is the base period + associated with NCPL coupling frequency, nad has valid values: hour,day,year,decade + + + + + char + time + CLOCK_attributes + glc_coupling_period,yearly + + $GLC_AVG_PERIOD + + + Period at which coupler averages fields sent to GLC. + This supports doing the averaging to GLC less frequently than GLC is called + (i.e., separating the averaging frequency from the calling frequency). + This is useful because there are benefits to only averaging the GLC inputs + as frequently as they are really needed (yearly for CISM), but GLC needs to + still be called more frequently than that in order to support mid-year restarts. + + Setting glc_avg_period to 'glc_coupling_period' means that the averaging is + done exactly when the GLC is called (governed by GLC_NCPL). + + + + + integer + time + CLOCK_attributes + + wav coupling interval in seconds + set via WAV_NCPL in env_run.xml. + WAV_NCPL is the number of times the wav is coupled per NCPL_BASE_PERIOD + NCPL_BASE_PERIOD is also set in env_run.xml and is the base period + associated with NCPL coupling frequency, nad has valid values: hour,day,year,decade + + + + + integer + time + CLOCK_attributes + + esp run interval in seconds + esp_cpl_dt is the number of times the esp is run per NCPL_BASE_PERIOD + NCPL_BASE_PERIOD is set in env_run.xml and is the base period + associated with NCPL coupling frequency, nad has valid values: hour,day,year,decade + default value set by buildnml to be the pause interval if pause is active + otherwise, it is set to the shortest component coupling time + + + -999 + + + + + logical + time + CLOCK_attributes + + true => ESP component runs after driver 'pause cycle' If any + component 'pauses' (see PAUSE_OPTION, + PAUSE_N and DATA_ASSIMILATION_XXX XML + variables), the ESP component (if present) will be run to + process the component 'pause' (restart) files and set any + required 'resume' signals. If true, esp_cpl_dt and + esp_cpl_offset settings are ignored. default: true + + + .true. + + + + + char + time + CLOCK_attributes + NO_LEAP,GREGORIAN + + calendar in use. [NO_LEAP, GREOGORIAN]. + set by CALENDAR in env_build.xml + + + $CALENDAR + + + + + integer + time + CLOCK_attributes + + Run start date in yyyymmdd format, only used for startup and hybrid runs. + default: 00010101 + + + 00010101 + + + + + integer + time + CLOCK_attributes + + Start time-of-day in universal time (seconds), should be between zero and 86400 + default: 0 + + + $START_TOD + + + + + char + time + CLOCK_attributes + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,monthly,nmonths,nmonth,nyears,nyear,date,ifdays0,end + + sets the run length with stop_n and stop_ymd + stop_option alarms are: + [none/never], turns option off + [nstep/s] , stops every stop_n nsteps , relative to current run start time + [nsecond/s] , stops every stop_n nseconds, relative to current run start time + [nminute/s] , stops every stop_n nminutes, relative to current run start time + [nhour/s] , stops every stop_n nhours , relative to current run start time + [nday/s] , stops every stop_n ndays , relative to current run start time + [nmonth/s] , stops every stop_n nmonths , relative to current run start time + [monthly/s] , stops every month , relative to current run start time + [nyear/s] , stops every stop_n nyears , relative to current run start time + [date] , stops at stop_ymd value + [ifdays0] , stops at stop_n calendar day value and seconds equal 0 + [end] , stops at end + + + $STOP_OPTION + + + + + integer + time + CLOCK_attributes + + Sets the run length with stop_option and stop_ymd + + + $STOP_N + + + + + integer + time + CLOCK_attributes + + date in yyyymmdd format, sets the run length with stop_option and stop_n, + can be in addition to stop_option and stop_n, negative value implies off + + + $STOP_DATE + + + + + integer + time + CLOCK_attributes + + Stop time-of-day in universal time (seconds), should be between zero and 86400 + default: 0 + + + 0 + + + + + char + time + CLOCK_attributes + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,nmonths,monthly,nmonth,nyears,nyear,date,ifdays0,end + + sets the restart frequency with restart_n and restart_ymd + restart_option alarms are: + [none/never], turns option off + [nstep/s] , restarts every restart_n nsteps , relative to current run start time + [nsecond/s] , restarts every restart_n nseconds, relative to current run start time + [nminute/s] , restarts every restart_n nminutes, relative to current run start time + [nhour/s] , restarts every restart_n nhours , relative to current run start time + [nday/s] , restarts every restart_n ndays , relative to current run start time + [monthly/s] , restarts every month , relative to current run start time + [nmonth/s] , restarts every restart_n nmonths , relative to current run start time + [nyear/s] , restarts every restart_n nyears , relative to current run start time + [date] , restarts at restart_ymd value + [ifdays0] , restarts at restart_n calendar day value and seconds equal 0 + [end] , restarts at end + + + $REST_OPTION + + + + + integer + time + CLOCK_attributes + + Sets model restart writes with restart_option and restart_ymd (same options as stop_n) + + + $REST_N + + + + + integer + time + CLOCK_attributes + + Date in yyyymmdd format, sets model restart write date with rest_option and restart_n + default: STOP_N + + + $REST_DATE + + + + + integer + time + CLOCK_attributes + + Reference date in yyyymmdd format + default: 0 + + + 0 + + + + + integer + time + CLOCK_attributes + + Reference time of day in seconds + default: 0 + + + 0 + + + + + logical + time + CLOCK_attributes + + true => write restarts at end of run + forces a restart write at the end of the run in addition to any + setting associated with rest_option. default=true. this setting + will be set to false if restart_option is none or never. + default: false + + + .false. + + + + + char + time + CLOCK_attributes + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,monthly,nmonths,nmonth,nyears,nyear,date,ifdays0,end + + coupler history snapshot option (used with history_n and history_ymd) + set by HIST_OPTION in env_run.xml. + history_option alarms are: + [none/never], turns option off + [nstep/s] , history snapshot every history_n nsteps , relative to current run start time + [nsecond/s] , history snapshot every history_n nseconds, relative to current run start time + [nminute/s] , history snapshot every history_n nminutes, relative to current run start time + [nhour/s] , history snapshot every history_n nhours , relative to current run start time + [nday/s] , history snapshot every history_n ndays , relative to current run start time + [monthly/s] , history snapshot every month , relative to current run start time + [nmonth/s] , history snapshot every history_n nmonths , relative to current run start time + [nyear/s] , history snapshot every history_n nyears , relative to current run start time + [date] , history snapshot at history_ymd value + [ifdays0] , history snapshot at history_n calendar day value and seconds equal 0 + [end] , history snapshot at end + + + $HIST_OPTION + + + + + integer + time + CLOCK_attributes + + sets coupler snapshot history file frequency (like restart_n) + set by HIST_N in env_run.xml. + + + $HIST_N + + + + + integer + time + CLOCK_attributes + + date associated with history_option date. yyyymmdd format. + set by HIST_DATE in env_run.xml. + + + $HIST_DATE + + + + + char + time + CLOCK_attributes + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,monthly,nmonths,nmonth,nyears,nyear,date,ifdays0,end + + coupler time average history option (used with histavg_n and histavg_ymd) + set by AVGHIST_OPTION in env_run.xml. + histavg_option alarms are: + [none/never], turns option off + [nstep/s] , history snapshot every histavg_n nsteps , relative to current run start time + [nsecond/s] , history snapshot every histavg_n nseconds, relative to current run start time + [nminute/s] , history snapshot every histavg_n nminutes, relative to current run start time + [nhour/s] , history snapshot every histavg_n nhours , relative to current run start time + [nday/s] , history snapshot every histavg_n ndays , relative to current run start time + [monthly/s] , history snapshot every month , relative to current run start time + [nmonth/s] , history snapshot every histavg_n nmonths , relative to current run start time + [nyear/s] , history snapshot every histavg_n nyears , relative to current run start time + [date] , history snapshot at histavg_ymd value + [ifdays0] , history snapshot at histavg_n calendar day value and seconds equal 0 + [end] , history snapshot at end + + + $AVGHIST_OPTION + + + + + integer + time + CLOCK_attributes + + Sets coupler time-average history file frequency (like restart_option) + set by AVGHIST_N in env_run.xml. + + + $AVGHIST_N + + + + + integer + time + CLOCK_attributes + + date associated with histavg_option date. yyyymmdd format. + set by AVGHIST_DATE in env_run.xml. + + + $AVGHIST_DATE + + + + + char + time + CLOCK_attributes + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,nmonths,monthly,nmonth,nyears,nyear,date,ifdays0,end + + sets the driver barrier frequency to sync models across all tasks with barrier_n and barrier_ymd + barrier_option alarms are like restart_option + default: never + + + $BARRIER_OPTION + + + + + integer + time + CLOCK_attributes + + Sets model barriers with barrier_option and barrier_ymd (same options as stop_n) + default: 1 + + + $BARRIER_N + + + + + integer + time + CLOCK_attributes + + Date in yyyymmdd format, sets model barriers date with barrier_option and barrier_n + + + $BARRIER_DATE + + + + + char + time + CLOCK_attributes + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,monthly,nmonths,nmonth,nyears,nyear,date,ifdays0,end + + Sets timing output file frequency (like rest_option but relative to run start date) + tprof_option alarms are: + [none/never], turns option off + [nstep/s] , every tprof_n nsteps , relative to current run start time + [nsecond/s] , every tprof_n nseconds, relative to current run start time + [nminute/s] , every tprof_n nminutes, relative to current run start time + [nhour/s] , every tprof_n nhours , relative to current run start time + [nday/s] , every tprof_n ndays , relative to current run start time + [monthly/s] , every month , relative to current run start time + [nmonth/s] , every tprof_n nmonths , relative to current run start time + [nyear/s] , every tprof_n nyears , relative to current run start time + [date] , at tprof_ymd value + [ifdays0] , at tprof_n calendar day value and seconds equal 0 + [end] , at end + + + never + + + + + integer + time + CLOCK_attributes + + Sets timing output file frequency (like restart_n) + + + -999 + + + + + integer + time + CLOCK_attributes + + yyyymmdd format, sets timing output file date (like restart_date) + + + -999 + + + + + char + time + CLOCK_attributes + none,never,nsteps,nstep,nseconds,nsecond,nminutes,nminute,nhours,nhour,ndays,nday,monthly,nmonths,nmonth,nyears,nyear + + sets the pause frequency with pause_n + pause_option alarms are: + [none/never], turns option off + [nstep/s] , pauses every pause_n nsteps , relative to start or last pause time + [nsecond/s] , pauses every pause_n nseconds, relative to start or last pause time + [nminute/s] , pauses every pause_n nminutes, relative to start or last pause time + [nhour/s] , pauses every pause_n nhours , relative to start or last pause time + [nday/s] , pauses every pause_n ndays , relative to start or last pause time + [nmonth/s] , pauses every pause_n nmonths , relative to start or last pause time + [monthly/s] , pauses every month , relative to start or last pause time + [nyear/s] , pauses every pause_n nyears , relative to start or last pause time + + + $PAUSE_OPTION + + + + + integer + time + CLOCK_attributes + + Sets the pause frequency with pause_option + + + $PAUSE_N + + + + + logical + time + CLOCK_attributes + + Whether Pause signals are active for component atm + + + $PAUSE_ACTIVE_ATM + + + + + logical + time + CLOCK_attributes + + Whether Pause signals are active for component CPL + + + $PAUSE_ACTIVE_CPL + + + + + logical + time + CLOCK_attributes + + Whether Pause signals are active for component ocn + + + $PAUSE_ACTIVE_OCN + + + + + logical + time + CLOCK_attributes + + Whether Pause signals are active for component wav + + + $PAUSE_ACTIVE_WAV + + + + + logical + time + CLOCK_attributes + + Whether Pause signals are active for component glc + + + $PAUSE_ACTIVE_GLC + + + + + logical + time + CLOCK_attributes + + Whether Pause signals are active for component rof + + + $PAUSE_ACTIVE_ROF + + + + + logical + time + CLOCK_attributes + + Whether Pause signals are active for component ice + + + $PAUSE_ACTIVE_ICE + + + + + logical + time + CLOCK_attributes + + Whether Pause signals are active for component lnd + + + $PAUSE_ACTIVE_LND + + + + + + + + + integer + cime_pes + PELAYOUT_attributes + + The number of model instances in the executable + + + $NINST + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of mpi tasks assigned to the atm components. + set by NTASKS_ATM in env_configure.xml. + + + $NTASKS_ATM + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of threads per mpi task for the atm component. + set by NTHRDS_ATM in env_configure.xml. + + + $NTHRDS_ATM + + + + + integer + cime_pes + PELAYOUT_attributes + + the global mpi task rank of the root processor assigned to the atm component. + set by ROOTPE_ATM in env_configure.xml. + + + $ROOTPE_ATM + + + + + integer + cime_pes + PELAYOUT_attributes + + the mpi global processors stride associated with the mpi tasks for the atm component. + set by PSTRID_ATM in env_configure.xml. + + + $PSTRID_ATM + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of mpi tasks assigned to the lnd components. + set by NTASKS_LND in env_configure.xml. + + + $NTASKS_LND + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of threads per mpi task for the lnd component. + set by NTHRDS_LND in env_configure.xml. + + + $NTHRDS_LND + + + + + integer + cime_pes + PELAYOUT_attributes + + the global mpi task rank of the root processor assigned to the lnd component. + set by ROOTPE_LND in env_configure.xml. + + + $ROOTPE_LND + + + + + integer + cime_pes + PELAYOUT_attributes + + the mpi global processors stride associated with the mpi tasks for the lnd component. + set by PSTRID_LND in env_configure.xml. + + + $PSTRID_LND + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of mpi tasks assigned to the ice components. + set by NTASKS_ICE in env_configure.xml. + + + $NTASKS_ICE + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of threads per mpi task for the ice component. + set by NTHRDS_ICE in env_configure.xml. + + + $NTHRDS_ICE + + + + + integer + cime_pes + PELAYOUT_attributes + + the global mpi task rank of the root processor assigned to the ice component. + set by ROOTPE_ICE in env_configure.xml. + + + $ROOTPE_ICE + + + + + integer + cime_pes + PELAYOUT_attributes + + the mpi global processors stride associated with the mpi tasks for the ice component. + set by PSTRID_ICE in env_configure.xml. + + + $PSTRID_ICE + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of mpi tasks assigned to the ocn components. + set by NTASKS_OCN in env_configure.xml. + + + $NTASKS_OCN + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of threads per mpi task for the ocn component. + set by NTHRDS_OCN in env_configure.xml. + + + $NTHRDS_OCN + + + + + integer + cime_pes + PELAYOUT_attributes + + the global mpi task rank of the root processor assigned to the ocn component. + set by ROOTPE_OCN in env_configure.xml. + + + $ROOTPE_OCN + + + + + integer + cime_pes + PELAYOUT_attributes + + the mpi global processors stride associated with the mpi tasks for the ocn component. + set by PSTRID_OCN in env_configure.xml. default: 1 + + + $PSTRID_OCN + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of mpi tasks assigned to the glc components. + set by NTASKS_GLC in env_configure.xml. + + + $NTASKS_GLC + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of threads per mpi task for the glc component. + set by NTHRDS_GLC in env_configure.xml. + + + $NTHRDS_GLC + + + + + integer + cime_pes + PELAYOUT_attributes + + the global mpi task rank of the root processor assigned to the glc component. + set by ROOTPE_GLC in env_configure.xml. + + + $ROOTPE_GLC + + + + + integer + cime_pes + PELAYOUT_attributes + + the mpi global processors stride associated with the mpi tasks for the glc component. + set by PSTRID_GLC in env_configure.xml. + + + $PSTRID_GLC + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of mpi tasks assigned to the wav components. + set by NTASKS_WAV in env_configure.xml. + + + $NTASKS_WAV + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of threads per mpi task for the wav component. + set by NTHRDS_WAV in env_configure.xml. + + + $NTHRDS_WAV + + + + + integer + cime_pes + PELAYOUT_attributes + + the global mpi task rank of the root processor assigned to the wav component. + set by ROOTPE_WAV in env_configure.xml. + + + $ROOTPE_WAV + + + + + integer + cime_pes + PELAYOUT_attributes + + the mpi global processors stride associated with the mpi tasks for the wav component. + set by PSTRID_WAV in env_configure.xml. + + + $PSTRID_WAV + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of mpi tasks assigned to the lnd components. + set by NTASKS_LND in env_configure.xml. + + + $NTASKS_ROF + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of threads per mpi task for the lnd component. + set by NTHRDS_ROF in env_configure.xml. + + + $NTHRDS_ROF + + + + + integer + cime_pes + PELAYOUT_attributes + + the global mpi task rank of the root processor assigned to the lnd component. + set by ROOTPE_LND in env_configure.xml. + + + $ROOTPE_ROF + + + + + integer + cime_pes + PELAYOUT_attributes + + the mpi global processors stride associated with the mpi tasks for the lnd component. + set by PSTRID_LND in env_configure.xml. + + + $PSTRID_ROF + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of mpi tasks assigned to the esp components. + set by NTASKS_ESP in env_configure.xml. + + + $NTASKS_ESP + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of threads per mpi task for the esp component. + set by NTHRDS_ESP in env_configure.xml. + + + $NTHRDS_ESP + + + + + integer + cime_pes + PELAYOUT_attributes + + the global mpi task rank of the root processor assigned to the esp component. + set by ROOTPE_ESP in env_configure.xml. + + + $ROOTPE_ESP + + + + + integer + cime_pes + PELAYOUT_attributes + + the mpi global processors stride associated with the mpi tasks for the esp component. + set by PSTRID_ESP in env_configure.xml. + + + $PSTRID_ESP + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of mpi tasks assigned to the cpl components. + set by NTASKS_CPL in env_configure.xml. + + + $NTASKS_CPL + + + + + integer + cime_pes + PELAYOUT_attributes + + the number of threads per mpi task for the cpl component. + set by NTHRDS_CPL in env_configure.xml. + + + $NTHRDS_CPL + + + + + integer + cime_pes + PELAYOUT_attributes + + the global mpi task rank of the root processor assigned to the cpl component. + set by ROOTPE_CPL in env_configure.xml. + + + $ROOTPE_CPL + + + + + integer + cime_pes + PELAYOUT_attributes + + the mpi global processors stride associated with the mpi tasks for the cpl component. + set by PSTRID_CPL in env_configure.xml. + + + $PSTRID_CPL + + + + + char + cime_pes + PELAYOUT_attributes + + Determines what ESMF log files (if any) are generated when + USE_ESMF_LIB is TRUE. + ESMF_LOGKIND_SINGLE: Use a single log file, combining messages from + all of the PETs. Not supported on some platforms. + ESMF_LOGKIND_MULTI: Use multiple log files — one per PET. + ESMF_LOGKIND_NONE: Do not issue messages to a log file. + By default, no ESMF log files are generated. + + + $ESMF_LOGFILE_KIND + + + + + + + + + + logical + performance + prof_inparm + + + + .true. + + + + + logical + performance + prof_inparm + + + + .false. + + + + + logical + performance + prof_inparm + + + + .false. + .true. + + + + + logical + performance + prof_inparm + + + + .false. + + + + + integer + performance + prof_inparm + + + + $TIMER_LEVEL + + + + + integer + performance + prof_inparm + + + + 0 + + + + + integer + performance + prof_inparm + + + + $TIMER_DETAIL + + + + + integer + performance + prof_inparm + + + + 4 + 2 + 1 + 3 + + + + + logical + performance + prof_inparm + + default: .false. + + + .false. + + + + + logical + performance + prof_inparm + + default: .false. + + + .false. + + + + + integer + performance + prof_inparm + + default: 1 + + + 1 + + + + + logical + performance + prof_inparm + + default: .false. + + + $PROFILE_PAPI_ENABLE + + + + + + + + + + char + performance + papi_inparm + + See gptl_papi.c for the list of valid values + + + PAPI_FP_OPS + + + + + char + performance + papi_inparm + + See gptl_papi.c for the list of valid values + + + PAPI_NO_CTR + + + + + char + performance + papi_inparm + + See gptl_papi.c for the list of valid values + + + PAPI_NO_CTR + + + + + char + performance + papi_inparm + + See gptl_papi.c for the list of valid values + + + PAPI_NO_CTR + + + + + + + + + logical + pio + pio_default_inparm + + future asynchronous IO capability (not currently supported). + If pio_async_interface is .true. or {component}_PIO_* variable is not set or set to -99 + the component variable will be set using the pio_* value. + default: .false. + + + $PIO_ASYNC_INTERFACE + + + + + integer + pio + pio_default_inparm + 0,1,2,3,4,5,6 + + pio debug level + valid values: 0,1,2,3,4,5,6 + + + $PIO_DEBUG_LEVEL + + + + + integer + pio + pio_default_inparm + + blocksize for pio box rearranger + + + $PIO_BLOCKSIZE + + + + + integer + pio + pio_default_inparm + + pio buffer size limit + + + $PIO_BUFFER_SIZE_LIMIT + + + + + char + pio + pio_default_inparm + p2p,coll,default + + pio rearranger communication type. + valid values: p2p, coll, default + + + $PIO_REARR_COMM_TYPE + + + + + char + pio + pio_default_inparm + 2denable,io2comp,comp2io,disable,default + + pio rearranger communication flow control direction. + + + $PIO_REARR_COMM_FCD + + + + + integer + pio + pio_default_inparm + + pio rearranger communication max pending req (comp2io) + + + $PIO_REARR_COMM_MAX_PEND_REQ_COMP2IO + + + + + logical + pio + pio_default_inparm + + pio rearranger communication option: Enable handshake (comp2io) + + + $PIO_REARR_COMM_ENABLE_HS_COMP2IO + + + + + logical + pio + pio_default_inparm + + pio rearranger communication option: Enable isends (comp2io) + + + $PIO_REARR_COMM_ENABLE_ISEND_COMP2IO + + + + + integer + pio + pio_default_inparm + + pio rearranger communication max pending req (io2comp) + + + $PIO_REARR_COMM_MAX_PEND_REQ_IO2COMP + + + + + logical + pio + pio_default_inparm + + pio rearranger communication option: Enable handshake (io2comp) + + + $PIO_REARR_COMM_ENABLE_HS_IO2COMP + + + + + logical + pio + pio_default_inparm + + pio rearranger communication option: Enable isends (io2comp) + default: .false. + + + $PIO_REARR_COMM_ENABLE_ISEND_IO2COMP + + + + + char(10) + drv_physics + default_settings + + List of files to merge together that contains drv_flds_in namelists + The paths are relative to the case directory. drv_flds_in include the namelists that + the driver reads and gives information on additional fields to be passed to different + components that need to look at the same data. + + + Buildconf/camconf/drv_flds_in,Buildconf/clmconf/drv_flds_in + + + + + logical + data_assimilation + CLOCK_attributes + + Whether Data Assimilation is on for component atm + + + $DATA_ASSIMILATION_ATM + + + + + logical + data_assimilation + CLOCK_attributes + + Whether Data Assimilation is on for component CPL + + + $DATA_ASSIMILATION_CPL + + + + + logical + data_assimilation + CLOCK_attributes + + Whether Data Assimilation is on for component ocn + + + $DATA_ASSIMILATION_OCN + + + + + logical + data_assimilation + CLOCK_attributes + + Whether Data Assimilation is on for component wav + + + $DATA_ASSIMILATION_WAV + + + + + logical + data_assimilation + CLOCK_attributes + + Whether Data Assimilation is on for component glc + + + $DATA_ASSIMILATION_GLC + + + + + logical + data_assimilation + CLOCK_attributes + + Whether Data Assimilation is on for component rof + + + $DATA_ASSIMILATION_ROF + + + + + logical + data_assimilation + CLOCK_attributes + + Whether Data Assimilation is on for component ice + + + $DATA_ASSIMILATION_ICE + + + + + logical + data_assimilation + CLOCK_attributes + + Whether Data Assimilation is on for component lnd + + + $DATA_ASSIMILATION_LND + + + + diff --git a/cime_config/namelist_definition_drv_flds.xml b/cime_config/namelist_definition_drv_flds.xml new file mode 100644 index 00000000..08847103 --- /dev/null +++ b/cime_config/namelist_definition_drv_flds.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + char + abs + drv_flds_in + megan_emis_nl + + File containing MEGAN emissions factors. Includes the list of MEGAN compounds that can be + used in the Comp_Name variable on the file. + + + + + char(100) + drv_flds_in + megan_emis_nl + + MEGAN specifier. This is in the form of: Chem-compound = megan_compound(s) + where megan_compound(s) can be the sum of megan compounds with a "+" between them. + In each equation, the item to the left of the equal sign is a CAM chemistry compound, the + items to the right are compounds known to the MEGAN model (single or combinations). + For example: megan_specifier = 'ISOP = isoprene', 'C10H16 = pinene_a + carene_3 + thujene_a' + + + + + logical + drv_flds_in + megan_emis_nl + + MEGAN mapped isoprene emissions factors switch + If TRUE then use mapped MEGAN emissions factors for isoprene. + + + + + char(150) + drv_flds_in + drv_physics + + List of possible MEGAN compounds to use + (the list used by the simulation is on the megan_factors_file as the Comp_Name) + + + + + + + + + char + dry-deposition + drydep_inparm + xactive_lnd,xactive_atm,table + + Where dry deposition is calculated (from land, atmosphere, or from a table) + This specifies the method used to calculate dry + deposition velocities of gas-phase chemical species. The available methods are: + 'table' - prescribed method in CAM + 'xactive_atm' - interactive method in CAM + 'xactive_lnd' - interactive method in CLM + + + + + char(300) + dry-deposition + drydep_inparm + + List of species that undergo dry deposition. + + + + + + + + + char(2) + nitrogen deposition + ndep_inparm + + List of nitrogen deposition fluxes to be sent from CAM to surfae models. + + + + + + + + + char + abs + Fire_emissions + fire_emis_nl + + File containing fire emissions factors. + + + + + char(100) + Fire_emissions + fire_emis_nl + + Fire emissions specifier. + + + + + logical + Fire_emissions + fire_emis_nl + + If ture fire emissions are input into atmosphere as elevated forcings. + Otherwise they are treated as surface emissions. + + + + + + + + + char + carma + carma_inparm + + List of fluxes needed by the CARMA model, from CLM to CAM. + + + + diff --git a/cime_config/namelist_definition_modelio.xml b/cime_config/namelist_definition_modelio.xml new file mode 100644 index 00000000..ea5d47f0 --- /dev/null +++ b/cime_config/namelist_definition_modelio.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + integer + pio + pio_inparm + + stride of tasks in pio used generically, component based value takes precedent. + + + $CPL_PIO_STRIDE + $ATM_PIO_STRIDE + $LND_PIO_STRIDE + $OCN_PIO_STRIDE + $ICE_PIO_STRIDE + $ROF_PIO_STRIDE + $GLC_PIO_STRIDE + $WAV_PIO_STRIDE + -99 + + + + + integer + pio + pio_inparm + + io task root in pio used generically, component based value takes precedent. + + + $CPL_PIO_ROOT + $ATM_PIO_ROOT + $LND_PIO_ROOT + $OCN_PIO_ROOT + $ICE_PIO_ROOT + $ROF_PIO_ROOT + $GLC_PIO_ROOT + $WAV_PIO_ROOT + -99 + + + + + integer + pio + pio_inparm + -99,1,2 + + Rearranger method for pio 1=box, 2=subset. + + + $CPL_PIO_REARRANGER + $ATM_PIO_REARRANGER + $LND_PIO_REARRANGER + $OCN_PIO_REARRANGER + $ICE_PIO_REARRANGER + $ROF_PIO_REARRANGER + $GLC_PIO_REARRANGER + $WAV_PIO_REARRANGER + -99 + + + + + integer + pio + pio_inparm + + number of io tasks in pio used generically, component based value takes precedent. + + + $CPL_PIO_NUMTASKS + $ATM_PIO_NUMTASKS + $LND_PIO_NUMTASKS + $OCN_PIO_NUMTASKS + $ICE_PIO_NUMTASKS + $ROF_PIO_NUMTASKS + $GLC_PIO_NUMTASKS + $WAV_PIO_NUMTASKS + -99 + + + + + char*64 + pio + pio_inparm + netcdf,pnetcdf,netcdf4p,netcdf4c,default + + io type in pio used generically, component based value takes precedent. + valid values: netcdf, pnetcdf, netcdf4p, netcdf4c, default + + + $CPL_PIO_TYPENAME + $ATM_PIO_TYPENAME + $LND_PIO_TYPENAME + $OCN_PIO_TYPENAME + $ICE_PIO_TYPENAME + $ROF_PIO_TYPENAME + $GLC_PIO_TYPENAME + $WAV_PIO_TYPENAME + nothing + + + + + char*64 + pio + pio_inparm + classic,64bit_offset,64bit_data + + format of netcdf files created by pio, ignored if + PIO_TYPENAME is netcdf4p or netcdf4c. 64bit_data only + supported in netcdf 4.4.0 or newer + + + $CPL_PIO_NETCDF_FORMAT + $ATM_PIO_NETCDF_FORMAT + $LND_PIO_NETCDF_FORMAT + $OCN_PIO_NETCDF_FORMAT + $ICE_PIO_NETCDF_FORMAT + $ROF_PIO_NETCDF_FORMAT + $GLC_PIO_NETCDF_FORMAT + $WAV_PIO_NETCDF_FORMAT + + + + + + + + + char*256 + modelio + modelio + input directory (no longer needed) + + UNSET + + + + + char*256 + modelio + modelio + directory for output log files + + UNSET + + + + + char*256 + modelio + modelio + name of component output log file + + UNSET + + + + diff --git a/cime_config/testdefs/testlist_drv.xml b/cime_config/testdefs/testlist_drv.xml new file mode 100644 index 00000000..360222c4 --- /dev/null +++ b/cime_config/testdefs/testlist_drv.xml @@ -0,0 +1,472 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cime_config/user_nl_cpl b/cime_config/user_nl_cpl new file mode 100644 index 00000000..a2095360 --- /dev/null +++ b/cime_config/user_nl_cpl @@ -0,0 +1,19 @@ +!------------------------------------------------------------------------ +! Users should ONLY USE user_nl_cpl to change namelists variables +! for namelist variables in drv_in (except for the ones below) and +! any keyword/values in seq_maps.rc +! Users should add ALL user specific namelist and seq_maps.rc changes below +! using the following syntax +! namelist_var = new_namelist_value +! or +! mapname = new_map_name +! For example to change the default value of ocn2atm_fmapname to 'foo' use +! ocn2atm_fmapname = 'foo' +! +! Note that some namelist variables MAY NOT be changed in user_nl_cpl - +! they are defined in a $CASEROOT xml file and must be changed with +! xmlchange. +! +! For example, rather than set username to 'foo' in user_nl_cpl, call +! ./xmlchange USER=foo +!------------------------------------------------------------------------