Code:Energy supply 1
Jump to navigation
Jump to search
The highlighting does not work yet. It needs an extension: https://www.mediawiki.org/wiki/Extension:SyntaxHighlight . It is already there, but not yet correct installed and configured . See the Installation paragraph. You can get an idea how it works by pasting the code below in this page http://pygments.org/<syntaxhighlight lang="python3" line="1"> import sys, os, traceback from datetime import datetime
import run_utils as ut import parse_arguments import make_config_files
- run_model handles all the processing of the coupled framework
import run_model
def make_time_dat(params):
Make time.dat used in run_image_coupled for IMAGE and the interface try: fp = open(os.path.join(params.outputdir,"time.dat"),"w") fp.write("# Basic time data\n") fp.write("# Start of simulation\n") fp.write("timestart = " + str(params.startyear) + "\n") fp.write("\n") fp.write("# Start of scenario\n") fp.write("timescen = " + str(params.timescen) + "\n") fp.write("\n") fp.write("# End of simulation\n") fp.write("timestop = "+ str(params.endyear) + "\n") fp.write("\n") fp.write("\n") fp.write("# Output frequency\n") fp.write("outfreq = " + str(params.outfreq) + "\n") fp.write("# Output frequency Gridded output\n") fp.write("outfreqGrid = " + str(params.outfreqgrid) + "\n") fp.close() except Exception as e: raise ("Error in creating time.dat! \n" + "(def make_time_dat) " + str(e))
if __name__ == "__main__":
try: # Store current working directory workdir = os.getcwd() log = None logfile="" # store date and time start_time = datetime.now() # read the run parameters input_args = parse_arguments.Input(sys.argv, start_time) params = input_args.get_params() # prepare log name = "start_lpj_image" runlogdir = os.path.join(params.outputdir,"runlog") loglevel = "DEBUG" if params.ldebug else "INFO" log_inst = ut.Model_log(sys.argv, params, runlogdir, "run_env", name, loglevel) log = log_inst.getLog() if input_args.outputdirMoved: log.warning ("The output directory existed and has been moved!\n" + \ "From " + params.outputdir + " to " + params.outputdir + \ start_time.strftime("%y-%m-%d-%H-%M") )
# Make time.dat used for IMAGE and the interface make_time_dat(params) log.info ("Created time.dat") # Create configuration file for LPJ and GridCells.txt for the interface make_config_files.make_config_files(params) log.info ("Created lpj config files.") # run op grid if not params.llocal: log.info ("start run on grid") log.info ("submit run_interface_image job,the lpj jobs and postprocessing jobs") process = run_model.Run_grid(params) process.run() process.post_process() process.check_master() else: log.info ("start local run") log.info ("start subprocesses run_interface_image, lpj parallel and postprocessing ") process = run_model.Run_local(params) process.run() # if master =STOP raise an error process.check_master() process.post_process() except SystemExit as e: if e.code != 0: print("Something wrong!\n "+ \ "System exit!\n Use: python " + sys.argv[0] + " --help to see the help\n") traceback.print_exc()
except Exception as e: if log is not None: print ("See logfiles in " + runlogdir ) log.error(name + " failed.\n " +str(e) + "\n", exc_info=True) else: print ("***** ERROR *****") print ("start_lpj_image.py failed.") print (str(e)) traceback.print_exc() finally: os.chdir(workdir) if log is not None: log.info("End of start_lpj_image.py") log_inst.shutdown()
</syntaxhighlight>