def make_experiment_xml(prefix,xml_doc,params,restarts,ic_start,ic_end,start_umid,batch): # Set start umid anc = ANC() anc.Start(start_umid) # next set ######## Make expts ########## end_umid=CreatePertExpts(xml_doc,params,restarts,ic_start,ic_end,anc) # Add the batch info batch['first_start_year']=params['model_start_year'] batch['last_start_year']=params['model_start_year'] batch['umid_start']=start_umid batch['umid_end']=end_umid AddBatchDict(xml_doc,batch) ######## Write out the file ######## xml_filename=prefix + str(params['model_start_year']) + "_" +\ start_umid + '_' + end_umid + '.xml' #define the xml filename fh = open(xml_filename, 'w') print 'Writing to:',xml_filename,'...' remove_whitespace_nodes(xml_doc) xml_doc.writexml(fh,newl='\n',addindent='\t') #xml_doc.writexml(fh) fh.close() count = xml_doc.getElementsByTagName("experiment").length print "Number of workunits: ",count
# Add in batch tags: batch = {} batch['name'] = "HadSM4 test experiment" batch['desc'] = "Test simulation for HadSM4 for CMIP6 forcings" batch[ 'owner'] = "Matthias Aengenheyster <*****@*****.**>,Sarah Sparrow <*****@*****.**>" batch['tech_info'] = str( npert ) + " initial conditions perturbations of 1 restarts. Simulations forced with CMIP6 data." batch['proj'] = 'DPHIL' batch['first_start_year'] = first_year batch['last_start_year'] = last_year batch['umid_start'] = start_umid batch['umid_end'] = end_umid AddBatchDict(xml_doc, batch) ######## Write out the file ######## xml_out = 'wu_hadsm4_test_' + start_umid + '_' + end_umid + '.xml' if not os.path.exists('xmls'): os.makedirs('xmls') fh = open("xmls/" + xml_out, 'w') print('Writing to:', xml_out, '...') remove_whitespace_nodes(xml_doc) xml_doc.writexml(fh, newl='\n', addindent='\t') fh.close() count = xml_doc.getElementsByTagName("experiment").length print("Number of workunits: ", count)