#!/usr/bin/env python

# A python version of mlphare.exam, using the CCP4Dispatchers

import os, sys
from CCP4Dispatchers import mlphare
from string import Template

d=mlphare.Dispatcher()

cmd = Template("HKLIN $CEXAM/toxd/toxd.mtz " + \
      "HKLOUT $CCP4_SCR/toxd_phase_mir.mtz " + \
      "NEWPARM $CCP4_SCR/new.sh")
cmd = cmd.substitute(os.environ)

d.set_cmd_args(cmd)
d.set_keywords("""TITLE 9 refining cycles + 1 phasing cycle
RESO 15.0 2.7
SCALE SIGFP 1.0
CYCLE 10
THRES 2.5 0.5
SCRIPT
ANGLE 10
PRINT AVE AVF
LABIN FP=FTOXD3 SIGFP=SIGFTOXD3 -
      FPH1=FAU20 SIGFPH1=SIGFAU20
LABOUT ALLIN PHIB=PHI_mir FOM=W_mir
HLOUT
 DERIV AU20
 DCYCLE PHASE ALL REFCYC ALL KBOV ALL
 RESO 10.0 2.7
 ISOE     1575.10 1685.89 1100.50  959.22 1019.41 1069.37  938.56  708.38
 ANOE       95.00  338.73  348.88  326.07  288.25  273.30  296.62  242.99
 ATOM   AU    0.177  0.104 -0.114  9.917  4.870 BFAC   25.000
 ATREF X ALL Y ALL Z ALL OCC ALL AOCC ALL
 ATOM   AU    0.218  0.138 -0.105  4.877  3.884 BFAC   25.000
 ATREF X ALL Y ALL Z ALL OCC ALL AOCC ALL
end
""")
d.call()
for line in d.stdout_data: print line

print "\n\nNow run again, using wait=False"
d.call(wait=False)
while d.isRunning:
    d.monitor()
    # d.abort() could be used here to terminate the job
for line in d.stdout_data: print line

sys.exit(d.call_val)

