def initialize_main(envDict, caseroot, debugMsg, standalone): """initialize_main - initialize settings on rank 0 Arguments: envDict (dictionary) - environment dictionary caseroot (string) - case root debugMsg (object) - vprinter object for printing debugging messages standalong (boolean) - indicate stand-alone post processing caseroot Return: envDict (dictionary) - environment dictionary """ # setup envDict['id'] = 'value' parsed from the CASEROOT/[env_file_list] files env_file_list = ['./env_postprocess.xml', './env_diags_ocn.xml'] envDict = cesmEnvLib.readXML(caseroot, env_file_list) # debug print out the envDict debugMsg('envDict after readXML = {0}'.format(envDict), header=True, verbosity=2) # refer to the caseroot that was specified on the command line instead of what # is read in the environment as the caseroot may have changed from what is listed # in the env xml envDict['CASEROOT'] = caseroot # add the os.environ['PATH'] to the envDict['PATH'] envDict['OCNDIAG_PATH'] += os.pathsep + os.environ['PATH'] # strip the OCNDIAG_ prefix from the envDict entries before setting the # enviroment to allow for compatibility with all the diag routine calls envDict = diagUtilsLib.strip_prefix(envDict, 'OCNDIAG_') # special variable mapped from the CESM env to the OCN diags env envDict['RESOLUTION'] = envDict['OCN_GRID'] # setup the TOBSFILE and SOBSFILE variables based on the vertical levels # 60 (default) or 42 if envDict['VERTICAL'] == '42': envDict['TOBSFILE'] = envDict['TOBSFILE_V42'] envDict['SOBSFILE'] = envDict['SOBSFILE_V42'] debugMsg('TOBSFILE = {0}, SOBSFILE= {1}'.format(envDict['TOBSFILE'], envDict['SOBSFILE']), header=True, verbosity=2) # TODO - create the list of necessary climatology files for model filelist = list() # check average files debugMsg('calling checkAvgFiles', header=True, verbosity=2) rc = diagUtilsLib.checkAvgFiles(filelist) if not rc: print('---------------------------------------------------------------------------') print('ERROR: ocean climatology files do not exist in:') print(' {0}'.format(envDict['TAVGDIR'])) print('Please run the {0}.ocn_avg_generator script first.'.format(envDict['CASE'])) print('---------------------------------------------------------------------------') sys.exit(1) return envDict
def initialize_main(envDict, caseroot, debugMsg, standalone): """initialize_main - initialize settings on rank 0 Arguments: envDict (dictionary) - environment dictionary caseroot (string) - case root debugMsg (object) - vprinter object for printing debugging messages Return: envDict (dictionary) - environment dictionary """ # setup envDict['id'] = 'value' parsed from the CASEROOT/[env_file_list] files ## env_file_list = ['../env_case.xml', '../env_run.xml', '../env_build.xml', '../env_mach_pes.xml', './env_postprocess.xml', './env_diags_atm.xml'] ## if standalone: env_file_list = ['./env_postprocess.xml', './env_diags_atm.xml'] envDict = cesmEnvLib.readXML(caseroot, env_file_list) # debug print out the envDict debugMsg('envDict after readXML = {0}'.format(envDict), header=True, verbosity=2) # refer to the caseroot that was specified on the command line instead of what # is read in the environment as the caseroot may have changed from what is listed # in the env xml envDict['CASEROOT'] = caseroot # add the os.environ['PATH'] to the envDict['PATH'] envDict['ATMDIAG_PATH'] = os.pathsep + os.environ['PATH'] # strip the ATMDIAG_ prefix from the envDict entries before setting the # enviroment to allow for compatibility with all the diag routine calls envDict = diagUtilsLib.strip_prefix(envDict, 'ATMDIAG_') # TODO - create the list of necessary climatology files for model filelist = list() # check average files debugMsg('calling checkAvgFiles', header=True) rc = diagUtilsLib.checkAvgFiles(filelist) if not rc: print( '---------------------------------------------------------------------------' ) print('ERROR: atmosphere climatology files do not exist in:') print(' {0}'.format(envDict['TAVGDIR'])) print('Please run the {0}.atm_avg_generator script first.'.format( envDict['CASE'])) print( '---------------------------------------------------------------------------' ) sys.exit(1) # TODO - create the list of necessary climatology files for control return envDict
def initialize_main(envDict, caseroot, debugMsg, standalone): """initialize_main - initialize settings on rank 0 Arguments: envDict (dictionary) - environment dictionary caseroot (string) - case root debugMsg (object) - vprinter object for printing debugging messages Return: envDict (dictionary) - environment dictionary """ # setup envDict['id'] = 'value' parsed from the CASEROOT/[env_file_list] files env_file_list = ['./env_postprocess.xml', './env_diags_atm.xml'] envDict = cesmEnvLib.readXML(caseroot, env_file_list) # debug print out the envDict debugMsg('envDict after readXML = {0}'.format(envDict), header=True, verbosity=2) # refer to the caseroot that was specified on the command line instead of what # is read in the environment as the caseroot may have changed from what is listed # in the env xml envDict['CASEROOT'] = caseroot # add the os.environ['PATH'] to the envDict['PATH'] envDict['ATMDIAG_PATH'] = os.pathsep + os.environ['PATH'] # strip the ATMDIAG_ prefix from the envDict entries before setting the # enviroment to allow for compatibility with all the diag routine calls envDict = diagUtilsLib.strip_prefix(envDict, 'ATMDIAG_') # TODO - create the list of necessary climatology files for model filelist = list() # check average files debugMsg('calling checkAvgFiles', header=True) rc = diagUtilsLib.checkAvgFiles(filelist) if not rc: print('---------------------------------------------------------------------------') print('ERROR: atmosphere climatology files do not exist in:') print(' {0}'.format(envDict['TAVGDIR'])) print('Please run the {0}.atm_avg_generator script first.'.format(envDict['CASE'])) print('---------------------------------------------------------------------------') sys.exit(1) # TODO - create the list of necessary climatology files for control return envDict
def initialize_main(envDict, caseroot, debugMsg, standalone): """initialize_main - initialize settings on rank 0 Arguments: envDict (dictionary) - environment dictionary caseroot (string) - case root debugMsg (object) - vprinter object for printing debugging messages Return: envDict (dictionary) - environment dictionary """ # setup envDict['id'] = 'value' parsed from the CASEROOT/[env_file_list] files ## env_file_list = ['../env_case.xml', '../env_run.xml', '../env_build.xml', '../env_mach_pes.xml', './env_postprocess.xml', './env_diags_ice.xml'] ## envDict['STANDALONE'] = False ## if standalone: env_file_list = ['./env_postprocess.xml', './env_diags_ice.xml'] ## envDict['STANDALONE'] = True envDict = cesmEnvLib.readXML(caseroot, env_file_list) # debug print out the envDict debugMsg('envDict after readXML = {0}'.format(envDict), header=True, verbosity=2) # add the os.environ['PATH'] to the envDict['PATH'] envDict['ICEDIAG_PATH'] = str(os.pathsep + os.environ['PATH']) # strip the ICEDIAG_ prefix from the envDict entries before setting the # enviroment to allow for compatibility with all the diag routine calls envDict = diagUtilsLib.strip_prefix(envDict, 'ICEDIAG_') # TODO - create the list of necessary climatology files for model filelist = list() # check average files debugMsg('calling checkAvgFiles', header=True) rc = diagUtilsLib.checkAvgFiles(filelist) if not rc: print('---------------------------------------------------------------------------') print('ERROR: ice climatology files do not exist in:') print(' {0}'.format(envDict['TAVGDIR'])) print('Please run the {0}.ice_avg_generator script first.'.format(envDict['CASE'])) print('---------------------------------------------------------------------------') sys.exit(1) # TODO - create the list of necessary climatology files for control return envDict
def initialize_main(envDict, caseroot, debugMsg, standalone): """initialize_main - initialize settings on rank 0 Arguments: envDict (dictionary) - environment dictionary caseroot (string) - case root debugMsg (object) - vprinter object for printing debugging messages Return: envDict (dictionary) - environment dictionary """ # setup envDict['id'] = 'value' parsed from the CASEROOT/[env_file_list] files ## env_file_list = ['../env_case.xml', '../env_run.xml', '../env_build.xml', '../env_mach_pes.xml', './env_postprocess.xml', './env_diags_lnd.xml'] ## envDict['STANDALONE'] = False ## if standalone: env_file_list = ['./env_postprocess.xml', './env_diags_lnd.xml'] ## envDict['STANDALONE'] = True envDict = cesmEnvLib.readXML(caseroot, env_file_list) # debug print out the envDict debugMsg('envDict after readXML = {0}'.format(envDict), header=True, verbosity=2) # refer to the caseroot that was specified on the command line instead of what # is read in the environment as the caseroot may have changed from what is listed # in the env xml envDict['CASEROOT'] = caseroot # add the os.environ['PATH'] to the envDict['PATH'] envDict['LNDDIAG_PATH'] = os.pathsep + os.environ['PATH'] # strip the LNDDIAG_ prefix from the envDict entries before setting the # enviroment to allow for compatibility with all the diag routine calls envDict = diagUtilsLib.strip_prefix(envDict, 'LNDDIAG_') # TODO - create the list of necessary climatology files for model filelist = list() # check average files debugMsg('calling checkAvgFiles', header=True, verbosity=1) rc = diagUtilsLib.checkAvgFiles(filelist) if not rc: print('---------------------------------------------------------------------------') print('ERROR: land climatology files do not exist') print('Please run the {0}.lnd_avg_generator script first.'.format(envDict['CASE'])) print('---------------------------------------------------------------------------') sys.exit(1) # TODO - create the list of necessary climatology files for control # setup the working directories sys.path.append(envDict['PATH']) # the WKDIR variable is very confusing... it gets reset in setup_workdir if (envDict['MODEL_VS_MODEL'] == 'True'): envDict['WKDIR'] = envDict['PTMPDIR_1']+'/diag/'+envDict['caseid_1']+'-'+envDict['caseid_2']+'/' else: envDict['WKDIR'] = envDict['PTMPDIR_1']+'/diag/'+envDict['caseid_1']+'-obs/' if envDict['CASA'] == '1': envDict['VAR_MASTER'] = envDict['var_master_casa'] else: envDict['VAR_MASTER'] = envDict['var_master_cn'] return envDict
def initialize_main(envDict, caseroot, debugMsg, standalone): """initialize_main - initialize settings on rank 0 Arguments: envDict (dictionary) - environment dictionary caseroot (string) - case root debugMsg (object) - vprinter object for printing debugging messages Return: envDict (dictionary) - environment dictionary """ # setup envDict['id'] = 'value' parsed from the CASEROOT/[env_file_list] files ## env_file_list = ['../env_case.xml', '../env_run.xml', '../env_build.xml', '../env_mach_pes.xml', './env_postprocess.xml', './env_diags_lnd.xml'] ## envDict['STANDALONE'] = False ## if standalone: env_file_list = ['./env_postprocess.xml', './env_diags_lnd.xml'] ## envDict['STANDALONE'] = True envDict = cesmEnvLib.readXML(caseroot, env_file_list) # debug print out the envDict debugMsg('envDict after readXML = {0}'.format(envDict), header=True, verbosity=2) # refer to the caseroot that was specified on the command line instead of what # is read in the environment as the caseroot may have changed from what is listed # in the env xml envDict['CASEROOT'] = caseroot # add the os.environ['PATH'] to the envDict['PATH'] envDict['LNDDIAG_PATH'] = os.pathsep + os.environ['PATH'] # strip the LNDDIAG_ prefix from the envDict entries before setting the # enviroment to allow for compatibility with all the diag routine calls envDict = diagUtilsLib.strip_prefix(envDict, 'LNDDIAG_') # TODO - create the list of necessary climatology files for model filelist = list() # check average files debugMsg('calling checkAvgFiles', header=True, verbosity=1) rc = diagUtilsLib.checkAvgFiles(filelist) if not rc: print( '---------------------------------------------------------------------------' ) print('ERROR: land climatology files do not exist') print('Please run the {0}.lnd_avg_generator script first.'.format( envDict['CASE'])) print( '---------------------------------------------------------------------------' ) sys.exit(1) # TODO - create the list of necessary climatology files for control # setup the working directories sys.path.append(envDict['PATH']) # the WKDIR variable is very confusing... it gets reset in setup_workdir if (envDict['MODEL_VS_MODEL'] == 'True'): envDict['WKDIR'] = envDict['PTMPDIR_1'] + '/diag/' + envDict[ 'caseid_1'] + '-' + envDict['caseid_2'] + '/' else: envDict['WKDIR'] = envDict['PTMPDIR_1'] + '/diag/' + envDict[ 'caseid_1'] + '-obs/' if envDict['CASA'] == '1': envDict['VAR_MASTER'] = envDict['var_master_casa'] else: envDict['VAR_MASTER'] = envDict['var_master_cn'] return envDict