def call_character_mod2(filename):
    """
    !!Not done until you have a complete DocString!! 
    """
    print(os.getpid())
    #time.sleep(1)
    #Define Global Variables
    global PATH_2_Pending
    global PATH_2_Processing
    global PATH_2_Completed
    global PATH_2_Working
    global PATH_2_IDLpros
    global aia_top_dir
###########################################################################
    print('Here 0')
    
    if (os.path.exists(os.path.join(PATH_2_Pending,filename))):
    	test=fcm.check_mv(filename, PATH_2_Pending, PATH_2_Processing)
 
    	working_dir,fits_dir, frames_dir, movie_dir=fcm.make_working_paths(PATH_2_Working,filename)  
    	print('Here 1')
    #Save a copy of the fits file in the working directory, working_dir
    #Read in the event structure as a NumPy recarray
    	save_file=os.path.join(PATH_2_Processing,filename)
    	shutil.copy(save_file, working_dir)
    	ev=fcm.readsav(save_file)
    
   
    	print('Here 2')
    #print(ev.event.EVENT_STARTTIME[0])
    	file_list=fcm.get_aia_fits_path(ev)
    	#print(file_list)
    #Print the file list to a text file that IDL can read.
    
    	list_file=open(os.path.join(working_dir,'fits_list.txt'), 'w')
    	for files in file_list :
        	list_file.write(files+'\n')
        	
        list_file.close()
    
    	print("Here 3")
    #Write an sswidl file to call
    	idl_file=open(os.path.join(working_dir, 'fft_fcm_prep_fits.pro'), 'w')
    	idl_file.write("file_name= '"+working_dir+"/fits_list.txt' \n")
    	idl_file.write("file_list=rd_tfile(file_name,1) \n")
    	idl_file.write("fits_dir= '"+fits_dir+"' \n")
    	idl_file.write("ind=indgen(n_elements(file_list)) \n")
    	idl_file.write("aia_prep, file_list[ind], ind,outdir=fits_dir,/DO_WRITE_FITS \n")
    	idl_file.write("EXIT \n")
    	idl_file.write("END \n")
    	idl_file.close()
    	print("Here 4")
   
    	print(working_dir)
    	print(os.path.join(working_dir, 'fft_fcm_prep_fits.pro'))
    	fcm.subprocess.call("ssw_batch "+os.path.join(working_dir, 
    		'fft_fcm_prep_fits.pro')+" "+os.path.join(working_dir,
    	 	'fft_fcm_prep_fits.log'), shell=True )
    dayb4=event_date-one_day
    dayafter=event_date+one_day
    #Construct a path to the data files:before, during and after
    path2data_dayb4=fcm.get_aia_data_path(dayb4)
    path2data_dayof=fcm.get_aia_data_path(event_date)
    path2data_dayafter=fcm.get_aia_data_path(dayafter)
    print(path2data_dayb4)
    print(path2data_dayof)
    print(path2data_dayafter)
    
    if (os.path.exists(path2data_dayb4) ) and (os.path.exists(path2data_dayof) ) \
        and (os.path.exists(path2data_dayafter) ):
        
        #Move the file to the Processing Stack
       
        test=fcm.check_mv(filename, PATH_2_Pending, PATH_2_Processing)
        if test :
        #Now add to list of files to process
            processing_files.append(filename)

###########################################################################
#close the Lockfile
lf.close()
#Delete the lockfile
print("Removing Lockfile: "+os.path.join(PATH_2_Pending,current_lockfile))
os.remove(os.path.join(PATH_2_Pending,current_lockfile))
###########################################################################
if not processing_files :
     sys.exit('No files to process. Exiting.')
#This section sends farms out files in the processing list to subprocesses
po=mp.Pool(5)