Exemple #1
0
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)