
psi: (

  % Default iteration counts
  ndisp = 1
  nopt = 40
  ncasiter = 20
  nbrueckner = 20

  % The basic programs
  input      = "input"
  uinput     = "input --chkptgeom"
  init       = $input
  done       = ("psiclean")
  ints       = "cints"
  scf        = "cscf"
  localize   = "localize"
  deriv      = "cints --deriv1"
  deriv2     = "cints --deriv2"
  propint    = "cints --oeprop"
  mkpt2ints  = "cints --mkpt2"
  transqt    = "transqt2"  
  %transqt    = "transqt2"  
  cctrans    = "transqt2"  %testing with CC modules; eventually will replace transqt
  backtransqt = "transqt --backtr"
  cphf        = "cphf"
  cphf_X      = "cphf --X_only"
  response    = "response"
  normco      = "normco"
  oeprop      = "oeprop"
  optking     = "optking"
  stable      = "stable"
  cis         = "cis"
  ugeom       = "ugeom"
  rgeom       = ()
  

  %freqs by finite differences of gradients
  findif_disp_freq_grad_cart      = "optking --disp_freq_grad_cart"
  findif_disp_freq_energy_cart    = "optking --disp_freq_energy_cart"
  findif_next      = "optking --disp_load"
  findif_input     = "input --keepchkpt --chkptgeom --noreorient"
  findif_grad_save        = "optking --grad_save"
  findif_energy_save      = "optking --energy_save"
  findif_freq_grad_cart   = "optking --freq_grad_cart"
  findif_freq_energy_cart = "optking --freq_energy_cart"

  findif_disp_symm   = "optking --disp_irrep --irrep 1"
  findif_disp_nosymm   = "optking --disp_nosymm"
  findif_freq_grad_symm   = "optking --freq_grad_irrep --irrep 1"
  findif_freq_grad_nosymm   = "optking --freq_grad_nosymm"
  findif_grad_energy = "optking --grad_energy"
  findif_delete_binaries = "optking --delete_binaries"
  geomupdate  = ("optking --opt_step")
  dboc        = "dboc"

  % CASSCF specific programs
  casscf     = "detcas"

  % CC specific programs
  ccsort     = "ccsort"
  ccreset    = "ccsort --reset"
  ccenergy   = "ccenergy"
  cctriples  = "cctriples"
  cchbar     = "cchbar"
  cclambda   = "cclambda"
  cceom      = "cceom"
  ccresponse = "ccresponse"
  ooccman    = "ccman"
%  cclambda_excited = "cclambda --excited"
  cclambda_excited = "cclambda"
  cclambda_zeta = "cclambda --zeta"

  ccdensity  = "ccdensity"
  ccdensity_calc_xi = "ccdensity --calc_xi"
  ccdensity_use_zeta = "ccdensity --use_zeta" % --excited
  ccdensity_excited = "ccdensity --excited"
  ccdensity_onepdm  = "ccdensity --onepdm"
  ccdensity_excited_onepdm = "ccdensity --onepdm" % --excited

  % Determinant CI specific programs
  detci    = "detci"
  clag     = "clag"

  % Determinant CI based Orbital Optimization
  detcasman = "detcasman"
  detcas   = "detcas"

  % MP2-specific programs
  mp2 = "mp2"
  mp2_direct = "cints --mp2"
  mp2r12 = "mp2r12"
  mp2r12_moints = "cints --mp2r12"

  % MCSCF
  mcscf             = "mcscf"

  % PSIMRCC
  transqt_psimrcc   = "transqt --psimrcc"
  psimrcc           = "psimrcc"

  % NONBONDED
  nonbonded = "nonbonded"

  % -------------------------------- SCF Procedures
  % *** SCF energy ***
  SCFEnergy = ($ints $scf)
  SCFRHFEnergy = ($SCFEnergy $done)
  SCFROHFEnergy = ($SCFEnergy $done)
  SCFUHFEnergy = ($SCFEnergy $done)
  SCFTwoConEnergy = ($SCFEnergy $done)

  % *** SCF gradients ***
  SCFFirst = ($ints $scf $deriv)
  SCFRHFFirst = ($SCFFirst $done)
  SCFROHFFirst = ($SCFFirst $done)
  SCFUHFFirst = ($SCFFirst $done)
  SCFTwoConFirst = ($SCFFirst $done)

  % *** SCF second derivatives ***
  SCFSecond = ($ints $scf $transqt $deriv2 $propint $cphf)
  SCFRHFSecond = ($SCFSecond $done)
  SCFROHFSecond = ERROR
  SCFUHFSecond = ERROR
  SCFTwoConSecond = ERROR

  % Optimizing geometries with SCF gradients
  SCFFirstOpt = (repeat $nopt $SCFFirst $geomupdate end $done)
  SCFRHFFirstOpt  = $SCFFirstOpt
  SCFROHFFirstOpt  = $SCFFirstOpt
  SCFUHFFirstOpt  = $SCFFirstOpt
  SCFTwoConFirstOpt  = $SCFFirstOpt

  % Optimizing geometries with SCF energies
  SCFEnergyOpt = (repeat $nopt $SCFEnergy $findif_disp_symm 
    repeat NUM_DISP $findif_next $findif_input $SCFEnergy
    $findif_energy_save end $findif_grad_energy $geomupdate end $done)
  SCFRHFEnergyOpt = $SCFEnergyOpt
  SCFROHFEnergyOpt = $SCFEnergyOpt
  SCFUHFEnergyOpt = $SCFEnergyOpt
  SCFTwoConEnergyOpt = $SCFEnergyOpt

  % *** SCF Frequencies by Second Derivatives ***
  SCFSecondFreq = ($ints $scf $transqt $deriv2 $propint $cphf)
  SCFRHFSecondFreq = ($SCFSecondFreq $done)
  SCFROHFSecondFreq = ERROR
  SCFUHFSecondFreq = ERROR
  SCFTwoConSecondFreq = ERROR

  % *** SCF Frequencies by finite differences of analytic gradients ***
  SCFFirstFreq  = 
    ($SCFEnergy $findif_disp_freq_grad_cart repeat NUM_DISP 
     $findif_next $findif_input $SCFFirst $findif_grad_save end 
     $findif_freq_grad_cart $done)
  SCFRHFFirstFreq  = $SCFFirstFreq
  SCFROHFFirstFreq  = $SCFFirstFreq
  SCFUHFFirstFreq  = $SCFFirstFreq
  SCFTwoConFirstFreq  = $SCFFirstFreq

  % *** SCF Frequencies by finite differences of energies ***
  SCFEnergyFreq  = 
    ($SCFEnergy $findif_disp_freq_energy_cart repeat NUM_DISP 
     $findif_next $findif_input $SCFEnergy $findif_energy_save end 
     $findif_freq_energy_cart $done)
  SCFRHFEnergyFreq  = $SCFEnergyFreq
  SCFROHFEnergyFreq  = $SCFEnergyFreq
  SCFUHFEnergyFreq  = $SCFEnergyFreq
  SCFTwoConEnergyFreq  = $SCFEnergyFreq

  % Procedures for symm force constants via differences of analytic gradients
  SCFFirstSymm_FC  = 
    ($SCFEnergy $findif_disp_symm repeat NUM_DISP 
     $findif_next $findif_input $SCFFirst $findif_grad_save end 
     $findif_freq_grad_symm $done)
  SCFRHFFirstSymm_FC  = $SCFFirstSymm_FC
  SCFROHFFirstSymm_FC  = $SCFFirstSymm_FC
  SCFUHFFirstSymm_FC  = $SCFFirstSymm_FC
  SCFTwoConFirstSymm_FC  = $SCFFirstSymm_FC

  % Procedures for force constants via differences of analytic gradients
  SCFFirstFC = 
    ($SCFEnergy $findif_disp_nosymm repeat NUM_DISP 
     $findif_next $findif_input $SCFFirst $findif_grad_save end 
     $findif_freq_grad_nosymm $done)
  SCFRHFFirstFC  = $SCFFirstFC
  SCFROHFFirstFC  = $SCFFirstFC
  SCFUHFFirstFC  = $SCFFirstFC
  SCFTwoConFirstFC  = $SCFFirstFC

  % Testing procedure for optimizing geometries with SCF finite displacements
  SCFROHFEnergyDisp =
    (repeat $ndisp $ugeom $uinput $SCFEnergy $rgeom end $done)

  % Procedure for an SCF linear response calculation
  SCFResponse = ($SCFEnergy $transqt $ccsort $propint $response $done)
  SCFRHFResponse = $SCFResponse
  SCFUHFResponse = ERROR
  SCFROHFResponse = ERROR
  SCFTwoConResponse = ERROR

  % Procedure for an SCF property computation
  SCFEnergyOEPROP = ($SCFEnergy $oeprop $done)
  SCFRHFEnergyOEPROP = ($SCFEnergy $oeprop $done)
  SCFUHFEnergyOEPROP = ERROR
  SCFROHFEnergyOEPROP = ($SCFROHFEnergy $oeprop $done)
  SCFTwoConEnergyOEPROP = ERROR

  % -------------------------------- SCF+D Procedures
  % wfn=scf but it's changed to SCF+D in psi3 driver 
  % *** SCF+D energy ***
  SCF+DEnergy = ($ints $scf $nonbonded)
  SCF+DRHFEnergy = $SCF+DEnergy
  SCF+DROHFEnergy = $SCF+DEnergy
  SCF+DUHFEnergy = $SCF+DEnergy
  SCF+DTwoConEnergy = $SCF+DEnergy

  % *** SCF+D gradients ***
  SCF+DFirst = ($ints $scf $nonbonded $deriv)
  SCF+DRHFFirst = ($SCF+DFirst $done)
  SCF+DROHFFirst = ($SCF+DFirst $done)
  SCF+DUHFFirst = ($SCF+DFirst $done)
  SCF+DTwoConFirst = ($SCF+DFirst $done)

  % *** SCF+D second derivatives ***
  SCF+DSecond = ($ints $scf $transqt $deriv2 $nonbonded $propint $cphf)
  SCF+DRHFSecond = ($SCF+DSecond $done)
  SCF+DROHFSecond = ($SCF+DSecond $done)
  SCF+DUHFSecond = ($SCF+DSecond $done)
  SCF+DTwoConSecond = ($SCF+DSecond $done)

  % Optimizing geometries with SCF+D gradients
  SCF+DFirstOpt = (repeat $nopt $SCF+DFirst $geomupdate end $done)
  SCF+DRHFFirstOpt  = $SCF+DFirstOpt
  SCF+DROHFFirstOpt  = $SCF+DFirstOpt
  SCF+DUHFFirstOpt  = $SCF+DFirstOpt
  SCF+DTwoConFirstOpt  = $SCF+DFirstOpt

  % Optimizing geometries with SCF+D energies
  SCF+DEnergyOpt = (repeat $nopt $SCF+DEnergy $findif_disp_symm 
    repeat NUM_DISP $findif_next $findif_input $SCF+DEnergy
    $findif_energy_save end $findif_grad_energy $geomupdate end $done)
  SCF+DRHFEnergyOpt = $SCF+DEnergyOpt
  SCF+DROHFEnergyOpt = $SCF+DEnergyOpt
  SCF+DUHFEnergyOpt = $SCF+DEnergyOpt
  SCF+DTwoConEnergyOpt = $SCF+DEnergyOpt

  % *** SCF+D Frequencies by Second Derivatives ***
  SCF+DSecondFreq = ($ints $scf $transqt $deriv2 $nonbonded $propint $cphf)
  SCF+DRHFSecondFreq = ($SCF+DSecondFreq $done)
  SCF+DROHFSecondFreq = ERROR
  SCF+DUHFSecondFreq = ERROR
  SCF+DTwoConSecondFreq = ERROR

  % *** SCF+D Frequencies by finite differences of analytic gradients ***
  SCF+DFirstFreq  = 
    ($SCF+DEnergy $findif_disp_freq_grad_cart repeat NUM_DISP 
     $findif_next $findif_input $SCF+DFirst $findif_grad_save end 
     $findif_freq_grad_cart $done)
  SCF+DRHFFirstFreq  = $SCF+DFirstFreq
  SCF+DROHFFirstFreq  = $SCF+DFirstFreq
  SCF+DUHFFirstFreq  = $SCF+DFirstFreq
  SCF+DTwoConFirstFreq  = $SCF+DFirstFreq

  % *** SCF+D Frequencies by finite differences of energies ***
  SCF+DEnergyFreq  = 
    ($SCF+DEnergy $findif_disp_freq_energy_cart repeat NUM_DISP 
     $findif_next $findif_input $SCF+DEnergy $findif_energy_save end 
     $findif_freq_energy_cart $done)
  SCF+DRHFEnergyFreq  = $SCF+DEnergyFreq
  SCF+DROHFEnergyFreq  = $SCF+DEnergyFreq
  SCF+DUHFEnergyFreq  = $SCF+DEnergyFreq
  SCF+DTwoConEnergyFreq  = $SCF+DEnergyFreq

  % Procedures for symm force constants via differences of analytic gradients
  SCF+DFirstSymm_FC  = 
    ($SCF+DEnergy $findif_disp_symm repeat NUM_DISP 
     $findif_next $findif_input $SCF+DFirst $findif_grad_save end 
     $findif_freq_grad_symm $done)
  SCF+DRHFFirstSymm_FC  = $SCF+DFirstSymm_FC
  SCF+DROHFFirstSymm_FC  = $SCF+DFirstSymm_FC
  SCF+DUHFFirstSymm_FC  = $SCF+DFirstSymm_FC
  SCF+DTwoConFirstSymm_FC  = $SCF+DFirstSymm_FC

  % Procedures for force constants via differences of analytic gradients
  SCF+DFirstFC = 
    ($SCF+DEnergy $findif_disp_nosymm repeat NUM_DISP 
     $findif_next $findif_input $SCF+DFirst $findif_grad_save end 
     $findif_freq_grad_nosymm $done)
  SCF+DRHFFirstFC  = $SCF+DFirstFC
  SCF+DROHFFirstFC  = $SCF+DFirstFC
  SCF+DUHFFirstFC  = $SCF+DFirstFC
  SCF+DTwoConFirstFC  = $SCF+DFirstFC


  % -------------------------------- SCF_MVD Procedures
  % *** SCF_MVD energy ***
  SCF_MVDEnergy = $SCFEnergyOEPROP
  SCF_MVDRHFEnergy = $SCF_MVDEnergy
  SCF_MVDROHFEnergy = $SCF_MVDEnergy
  SCF_MVDUHFEnergy = ERROR
  SCF_MVDTwoConEnergy = ERROR

  % *** SCF_MVD energies for geometry optimization ***
  SCF_MVDEnergyOpt = (repeat $nopt $SCFEnergy $oeprop $findif_disp_symm 
    repeat NUM_DISP $findif_next $findif_input $SCFEnergy $oeprop
    $findif_energy_save end $findif_grad_energy $geomupdate end $done)
  SCF_MVDRHFEnergyOpt = $SCF_MVDEnergyOpt
  SCF_MVDROHFEnergyOpt = $SCF_MVDEnergyOpt
  SCF_MVDUHFEnergyOpt = ERROR
  SCF_MVDTwoConEnergyOpt = ERROR

  % *** SCF_MVD energies for vibrational frequencies ***
  SCF_MVDEnergyFreq  =
    ($SCF_MVDEnergy $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $SCF_MVDEnergy $findif_energy_save end
     $findif_freq_energy_cart $done)
  SCF_MVDRHFEnergyFreq  = $SCF_MVDEnergyFreq
  SCF_MVDROHFEnergyFreq  = $SCF_MVDEnergyFreq
  SCF_MVDUHFEnergyFreq  = ERROR
  SCF_MVDTwoConEnergyFreq  = ERROR

  % *** SCF_MVD gradients ***
  SCF_MVDFirst = ($ints $scf $transqt $deriv2 $cphf_X $deriv)
  SCF_MVDRHFFirst = ($SCF_MVDFirst $done) 
  SCF_MVDROHFFirst = ERROR
  SCF_MVDUHFFirst = ERROR 
  SCF_MVDTwoConFirst = ERROR

  % *** SCF_MVD gradients for geometry optimization ***
  SCF_MVDFirstOpt = (repeat $nopt $SCF_MVDFirst $geomupdate end $done)
  SCF_MVDRHFFirstOpt  = $SCF_MVDFirstOpt
  SCF_MVDROHFFirstOpt  = $SCF_MVDFirstOpt
  SCF_MVDUHFFirstOpt  = $SCF_MVDFirstOpt
  SCF_MVDTwoConFirstOpt  = $SCF_MVDFirstOpt

  % *** SCF_MVD gradients to get all vibrational frequencies ***
  SCF_MVDFirstFreq  =
    ($SCF_MVDEnergy $findif_disp_freq_grad_cart repeat NUM_DISP
     $findif_next $findif_input $SCF_MVDFirst $findif_grad_save end
     $findif_freq_grad_cart $done)
  SCF_MVDRHFFirstFreq  = $SCF_MVDFirstFreq
  SCF_MVDROHFFirstFreq  = $SCF_MVDFirstFreq
  SCF_MVDUHFFirstFreq  = $SCF_MVDFirstFreq
  SCF_MVDTwoConFirstFreq  = $SCF_MVDFirstFreq

  % *** SCF_MVD gradients for symmetric force constants ***
  SCF_MVDFirstSymm_FC  =
    ($SCF_MVDEnergy $findif_disp_symm repeat NUM_DISP
     $findif_next $findif_input $SCF_MVDFirst $findif_grad_save end
     $findif_freq_grad_symm $done)
  SCF_MVDRHFFirstSymm_FC  = $SCF_MVDFirstSymm_FC
  SCF_MVDROHFFirstSymm_FC  = $SCF_MVDFirstSymm_FC
  SCF_MVDUHFFirstSymm_FC  = $SCF_MVDFirstSymm_FC
  SCF_MVDTwoConFirstSymm_FC  = $SCF_MVDFirstSymm_FC

  % *** SCF_MVD gradients for all force constants ***
  SCF_MVDFirstFC =
    ($SCF_MVDEnergy $findif_disp_nosymm repeat NUM_DISP
     $findif_next $findif_input $SCF_MVDFirst $findif_grad_save end
     $findif_freq_grad_nosymm $done)
  SCF_MVDRHFFirstFC  = $SCF_MVDFirstFC
  SCF_MVDROHFFirstFC  = $SCF_MVDFirstFC
  SCF_MVDUHFFirstFC  = $SCF_MVDFirstFC
  SCF_MVDTwoConFirstFC  = $SCF_MVDFirstFC

  % Procedure for an SCF DBOC computation
  SCFDBOC = ($input $dboc)
  SCFRHFDBOC = ($input $dboc)
  SCFROHFDBOC = ($input $dboc)
  SCFUHFDBOC = ($input $dboc)
  SCFTwoConDBOC = ERROR

  % -------------------------------- Direct SCF Procedures
  % Procedures for the Direct SCF energy
  DirectSCFEnergy = ($scf)
  DirectSCFRHFEnergy = ($DirectSCFEnergy $done)
  DirectSCFROHFEnergy = ($DirectSCFEnergy $done)
  DirectSCFUHFEnergy = ($DirectSCFEnergy $done)
  DirectSCFTwoConEnergy = ($DirectSCFEnergy $done)

  % Procedures for the Direct SCF gradients
  DirectSCFFirst = ($scf $deriv)
  DirectSCFRHFFirst = ($DirectSCFFirst $done)
  DirectSCFROHFFirst = ($DirectSCFFirst $done)
  DirectSCFUHFFirst = ($DirectSCFFirst $done)
  DirectSCFTwoConFirst = ($DirectSCFFirst $done)

  % Procedures for the Direct SCF Second Derivatives
  DirectSCFSecond = ($scf $transqt $deriv2 $propint $cphf $done)
  DirectSCFRHFSecond = $DirectSCFSecond
  DirectSCFROHFSecond = ERROR
  DirectSCFUHFSecond = ERROR
  DirectSCFTwoConSecond = ERROR

  % Procedures for the optimizing geometries with Direct SCF gradients
  DirectSCFFirstOpt = (repeat $nopt $DirectSCFFirst $geomupdate end $done)
  DirectSCFRHFFirstOpt  = $DirectSCFFirstOpt
  DirectSCFROHFFirstOpt  = $DirectSCFFirstOpt
  DirectSCFUHFFirstOpt  = $DirectSCFFirstOpt
  DirectSCFTwoConFirstOpt  = $DirectSCFFirstOpt

  % Procedures for optimizing geometries with SCF energies
  DirectSCFEnergyOpt = (repeat $nopt $DirectSCFEnergy $findif_disp_symm 
    repeat NUM_DISP $findif_next $findif_input $DirectSCFEnergy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  DirectSCFRHFEnergyOpt = $DirectSCFEnergyOpt
  DirectSCFROHFEnergyOpt = $DirectSCFEnergyOpt
  DirectSCFUHFEnergyOpt = $DirectSCFEnergyOpt
  DirectSCFTwoConEnergyOpt = $DirectSCFEnergyOpt

  % Procedures for the finite displacements of SCF gradients
  DirectSCFFirstDisp  = 
    ($findif_disp repeat $ndisp 
     $findif_next $uinput $DirectSCFFirst $findif_grad_save end $findif_calc $done)
  DirectSCFRHFFirstDisp  = $DirectSCFFirstDisp
  DirectSCFROHFFirstDisp  = $DirectSCFFirstDisp
  DirectSCFUHFFirstDisp  = $DirectSCFFirstDisp
  DirectSCFTwoConFirstDisp  = $DirectSCFFirstDisp

  % Procedures for the SCF Second Derivatives
  DirectSCFSecondFreq = ($scf $transqt $deriv2 $propint $cphf $done)
  DirectSCFRHFSecondFreq = $DirectSCFSecondFreq
  DirectSCFROHFSecondFreq = ERROR
  DirectSCFUHFSecondFreq = ERROR
  DirectSCFTwoConSecondFreq = ERROR

  % Procedures for symm freqs via differences of analytic gradients
  DirectSCFFirstSymm_FC  = 
    ($scf $findif_disp_symm repeat NUM_DISP 
     $findif_next $findif_input $DirectSCFFirst $findif_grad_save end 
     $findif_freq_grad_symm $done)
  DirectSCFRHFFirstSymm_FC  = $DirectSCFFirstSymm_FC
  DirectSCFROHFFirstSymm_FC  = $DirectSCFFirstSymm_FC
  DirectSCFUHFFirstSymm_FC  = $DirectSCFFirstSymm_FC
  DirectSCFTwoConFirstSymm_FC  = $DirectSCFFirstSymm_FC

  % Procedures for freqs via differences of analytic gradients
  DirectSCFFirstFreq  = 
    ($DirectSCFEnergy $findif_disp_freq_grad_cart repeat NUM_DISP 
     $findif_next $findif_input $DirectSCFFirst $findif_grad_save end 
     $findif_freq_grad_cart $done)
  DirectSCFRHFFirstFreq  = $DirectSCFFirstFreq
  DirectSCFROHFFirstFreq  = $DirectSCFFirstFreq
  DirectSCFUHFFirstFreq  = $DirectSCFFirstFreq
  DirectSCFTwoConFirstFreq  = $DirectSCFFirstFreq

  % Testing procedure for optimizing geometries with SCF finite displacements
  DirectSCFROHFEnergyDisp =
    (repeat $ndisp $ugeom $uinput $DirectSCFEnergy $rgeom end $done)

  % Procedure for an SCF linear response calculation
  DirectSCFResponse = 
    ($DirectSCFEnergy $transqt $ccsort $propint $response $done)
  DirectSCFRHFResponse = $DirectSCFResponse
  DirectSCFUHFResponse = ERROR
  DirectSCFROHFResponse = ERROR
  DirectSCFTwoConResponse = ERROR

  % Procedure for an SCF property computation
  DirectSCFEnergyOEPROP = ($DirectSCFEnergy $oeprop $done)
  DirectSCFRHFEnergyOEPROP = ($DirectSCFRHFEnergy $oeprop $done)
  DirectSCFUHFEnergyOEPROP = ERROR
  DirectSCFROHFEnergyOEPROP = ($DirectSCFROHFEnergy $oeprop $done)
  DirectSCFTwoConEnergyOEPROP = ERROR

  % -------------------------------- CCSD Procedures
  % Procedures for the CCSD energy
  CCSDEnergy = ($ints $scf $cctrans $ccsort $ccenergy)
  CCSDRHFEnergy = ($CCSDEnergy $done)
  CCSDROHFEnergy = ($CCSDEnergy $done)
  CCSDUHFEnergy = ($CCSDEnergy $done)
  CCSDTwoConEnergy = ERROR

  % Procedures for the CCSD gradient
  CCSDFirst = ($CCSDEnergy $cchbar $cclambda $ccdensity
    $oeprop $backtransqt $deriv)
  CCSDRHFFirst = $CCSDFirst
  CCSDROHFFirst = $CCSDFirst
  CCSDUHFFirst = $CCSDFirst
  CCSDTwoConFirst = ERROR

  %Procedures for the CCSD gradient with no restart
  CCSDFirstReset = ($ints $scf $cctrans $ccreset $ccenergy $cchbar
      $cclambda $ccdensity $oeprop $backtransqt $deriv)
  CCSDRHFFirstReset = $CCSDFirstReset
  CCSDROHFFirstReset = $CCSDFirstReset
  CCSDUHFFirstReset = $CCSDFirstReset

  % Procedures for optimization via energy points
  CCSDEnergyOpt = (repeat $nopt $CCSDEnergy $findif_disp_symm 
    repeat NUM_DISP $findif_next $findif_input $CCSDEnergy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  CCSDRHFEnergyOpt = $CCSDEnergyOpt
  CCSDROHFEnergyOpt = $CCSDEnergyOpt
  CCSDUHFEnergyOpt = $CCSDEnergyOpt
  CCSDTwoConEnergyOpt = ERROR

  % Procedures for optimization via energy points with CCSD_MVD
  CCSD_MVDEnergyOpt = (repeat $nopt
    $CCSDEnergy $cchbar $cclambda $ccdensity $oeprop
    $findif_disp_symm repeat NUM_DISP $findif_next $findif_input
    $CCSDEnergy $cchbar $cclambda $ccdensity $oeprop
    $findif_energy_save end $findif_grad_energy $geomupdate end $done)
  CCSD_MVDRHFEnergyOpt = $CCSD_MVDEnergyOpt
  CCSD_MVDROHFEnergyOpt = $CCSD_MVDEnergyOpt
  CCSD_MVDUHFEnergyOpt = $CCSD_MVDEnergyOpt
  CCSD_MVDTwoConEnergyOpt = ERROR

  % Procedures for the optimizing geomtries with CCSD gradients
  CCSDRHFFirstOpt = (repeat $nopt $CCSDRHFFirst $geomupdate end $done)
  CCSDROHFFirstOpt = (repeat $nopt $CCSDROHFFirst $geomupdate end $done)
  CCSDUHFFirstOpt  = (repeat $nopt $CCSDUHFFirst $geomupdate end $done)
  CCSDTwoConFirstOpt  = ERROR

  % Procedures for the finite displacements of CCSD gradients
  CCSDRHFFirstDisp =
    (repeat $ndisp $ugeom $uinput $CCSDRHFFirst $rgeom end $done)
  CCSDROHFFirstDisp = 
    (repeat $ndisp $ugeom $uinput $CCSDROHFFirst $rgeom end $done)
  CCSDUHFFirstDisp  = 
    (repeat $ndisp $ugeom $uinput $CCSDROHFFirst $rgeom end $done)
  CCSDTwoConFirstDisp  = ERROR

  % CCSD Freqs via differences of analytic gradients
  CCSDFirstFreq  = 
    ($CCSDEnergy $findif_disp_freq_grad_cart repeat NUM_DISP 
     $findif_next $findif_input $CCSDFirstReset $findif_grad_save end 
     $findif_freq_grad_cart $done)
  CCSDRHFFirstFreq  = $CCSDFirstFreq
  CCSDROHFFirstFreq  = $CCSDFirstFreq
  CCSDUHFFirstFreq  = $CCSDFirstFreq
  CCSDTwoConFirstFreq  = $CCSDFirstFreq

  % CCSD Freqs via differences of energies
  CCSDEnergyFreq  =
    ($CCSDEnergy $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $CCSDEnergy $findif_energy_save end
     $findif_freq_energy_cart $done)
  CCSDRHFEnergyFreq  = $CCSDEnergyFreq
  CCSDROHFEnergyFreq  = $CCSDEnergyFreq
  CCSDUHFEnergyFreq  = $CCSDEnergyFreq
  CCSDTwoConEnergyFreq  = $CCSDEnergyFreq

  % Procedures for force constants via differences of analytic gradients
  CCSDFirstFC =
    ($CCSDEnergy $findif_disp_nosymm repeat NUM_DISP
     $findif_next $findif_input $CCSDFirst $findif_grad_save end
     $findif_freq_grad_nosymm $done)
  CCSDRHFFirstFC  = $CCSDFirstFC
  CCSDROHFFirstFC  = $CCSDFirstFC
  CCSDUHFFirstFC  = $CCSDFirstFC
  CCSDTwoConFirstFC  = $CCSDFirstFC

  % Procedures for symmetric force constants via differences of analytic gradients
  CCSDFirstSymm_FC =
    ($CCSDEnergy $findif_disp_symm repeat NUM_DISP
     $findif_next $findif_input $CCSDFirst $findif_grad_save end
     $findif_freq_grad_symm $done)
  CCSDRHFFirstSymm_FC  = $CCSDFirstSymm_FC
  CCSDROHFFirstSymm_FC  = $CCSDFirstSymm_FC
  CCSDUHFFirstSymm_FC  = $CCSDFirstSymm_FC
  CCSDTwoConFirstSymm_FC  = $CCSDFirstSymm_FC

  % Procedure for an CCSD linear response calculation
  CCSDResponse = ($CCSDEnergy $cchbar $cclambda $propint $ccresponse $done)
  CCSDRHFResponse = $CCSDResponse
  CCSDUHFResponse = ERROR
  CCSDROHFResponse = ERROR
  CCSDTwoConResponse = ERROR

  % Procedure for an orbital relaxed CCSD one-electron property computation
  CCSDFirstOEPROP = ($CCSDEnergy $cchbar $cclambda $ccdensity $oeprop $done)
  CCSDRHFFirstOEPROP = $CCSDFirstOEPROP
  CCSDUHFFirstOEPROP = $CCSDFirstOEPROP
  CCSDROHFFirstOEPROP = $CCSDFirstOEPROP
  CCSDTwoConFirstOEPROP = ERROR

  % Procedures for the CCSD_MVD energy
  CCSD_MVDEnergy = $CCSDFirstOEPROP
  CCSD_MVDRHFEnergy = $CCSD_MVDEnergy
  CCSD_MVDROHFEnergy = $CCSD_MVDEnergy
  CCSD_MVDUHFEnergy = $CCSD_MVDEnergy
  CCSDTwoConEnergy = ERROR

  % CCSD_MVD Freqs via differences of energies
  CCSD_MVDEnergyFreq  =
    ($CCSD_MVDEnergy $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $CCSD_MVDEnergy $findif_energy_save end
     $findif_freq_energy_cart $done)
  CCSD_MVDRHFEnergyFreq  = $CCSD_MVDEnergyFreq
  CCSD_MVDROHFEnergyFreq  = $CCSD_MVDEnergyFreq
  CCSD_MVDUHFEnergyFreq  = $CCSD_MVDEnergyFreq
  CCSD_MVDTwoConEnergyFreq  = $CCSD_MVDEnergyFreq

  % Procedure for a non-(orbital-relaxed) CCSD one-electron property computation
  CCSDEnergyOEPROP = ($CCSDEnergy $cchbar $cclambda $ccdensity_onepdm $oeprop $done)
  CCSDRHFEnergyOEPROP = $CCSDEnergyOEPROP
  CCSDUHFEnergyOEPROP = $CCSDEnergyOEPROP
  CCSDROHFEnergyOEPROP = $CCSDEnergyOEPROP
  CCSDTwoConEnergyOEPROP = ERROR

  % -------------------------------- CCSD(T) Procedures
  % Procedures for the CCSD(T) energy
  CCSD_TEnergy = ($ints $scf $cctrans $ccsort $ccenergy $cctriples)
  CCSD_TRHFEnergy = ($CCSD_TEnergy $done)
  CCSD_TROHFEnergy = ($CCSD_TEnergy $done) 
  CCSD_TUHFEnergy = ($CCSD_TEnergy $done)
  CCSD_TTwoConEnergy = ERROR

  % Procedures for the CCSD(T) gradient
  CCSD_TFirst = ($CCSD_TEnergy $cchbar $cclambda $ccdensity $backtransqt $deriv)
  CCSD_TRHFFirst = ERROR
  CCSD_TROHFFirst = ERROR
  CCSD_TUHFFirst = $CCSD_TFirst
  CCSD_TTwoConFirst = ERROR

  % Procedures for optimization via energy points
  CCSD_TEnergyOpt = (repeat $nopt $CCSD_TEnergy $findif_disp_symm 
    repeat NUM_DISP $findif_next $findif_input $CCSD_TEnergy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  CCSD_TRHFEnergyOpt = $CCSD_TEnergyOpt
  CCSD_TROHFEnergyOpt = $CCSD_TEnergyOpt
  CCSD_TUHFEnergyOpt = $CCSD_TEnergyOpt
  CCSD_TTwoConEnergyOpt = ERROR

  % Procedures for the optimizing geomtries with CCSD(T) gradients
  CCSD_TRHFFirstOpt = ERROR
  CCSD_TROHFFirstOpt = ERROR
  CCSD_TUHFFirstOpt  = (repeat $nopt $CCSD_TUHFFirst $geomupdate end $done)
  CCSD_TTwoConFirstOpt  = ERROR

  % Procedures for the finite displacements of CCSD(T) gradients
  CCSD_TRHFFirstDisp = ERROR
  CCSD_TROHFFirstDisp = ERROR
  CCSD_TUHFFirstDisp  = (repeat $nopt $CCSD_TUHFFirst $geomupdate end $done)
  CCSD_TTwoConFirstDisp  = ERROR

  % -------------------------------- CC2 Procedures
  % Procedures for the CC2 energy
  CC2Energy = ($ints $scf $cctrans $ccsort $ccenergy)
  CC2RHFEnergy = ($CC2Energy $done)
  CC2UHFEnergy = ($CC2Energy $done)
  CC2ROHFEnergy = ($CC2Energy $done)
  
  % Procedure for a non-(orbital-relaxed) CC2 one-electron property computation
  CC2EnergyOEPROP = ($CC2Energy $cchbar $cclambda $ccdensity_onepdm $oeprop $done)
  CC2RHFEnergyOEPROP = $CC2EnergyOEPROP
  CC2UHFEnergyOEPROP = $CC2EnergyOEPROP
  CC2ROHFEnergyOEPROP = $CC2EnergyOEPROP
  CC2TwoConEnergyOEPROP = ERROR

  % Procedure for an CC2 linear response calculation
  CC2Response = ($CC2Energy $cchbar $cclambda $propint $ccresponse $done)
  CC2RHFResponse = $CC2Response
  CC2UHFResponse = ERROR
  CC2ROHFResponse = ERROR
  CC2TwoConResponse = ERROR

  % -------------------------------- CC3 Procedures
  % Procedures for the CC3 energy
  CC3Energy = ($ints $scf $cctrans $ccsort $ccenergy)
  CC3RHFEnergy = ($CC3Energy $done) 
  CC3ROHFEnergy = ($CC3Energy $done) 
  CC3UHFEnergy = ($CC3Energy $done)
  CCTwoConEnergy = ERROR

  % Procedures for optimization via energy points
  CC3EnergyOpt = (repeat $nopt $CC3Energy $findif_delete_binaries $findif_disp_symm
    repeat NUM_DISP $findif_next $findif_input $CC3Energy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  CC3RHFEnergyOpt = $CC3EnergyOpt
  CC3ROHFEnergyOpt = $CC3EnergyOpt 
  CC3UHFEnergyOpt = $CC3EnergyOpt
  CC3TwoConEnergyOpt = ERROR

  % CC3 Freqs via differences of energies
  CC3EnergyFreq  =
    ($CC3Energy $findif_delete_binaries $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $CC3Energy $findif_energy_save end
     $findif_freq_energy_cart $done)
  CC3RHFEnergyFreq  = $CC3EnergyFreq 
  CC3ROHFEnergyFreq  = $CC3EnergyFreq 
  CC3UHFEnergyFreq  = $CC3EnergyFreq
  CC3TwoConEnergyFreq  = ERROR

  % -------------------------------- EOM CC2 Procedures
  % Procedure for the EOM_CC2 energy
  EOM_CC2Energy = ($ints $scf $cctrans $ccsort $ccenergy $cchbar $cceom)
  EOM_CC2RHFEnergy = ($EOM_CC2Energy $done)
  EOM_CC2ROHFEnergy = ERROR 
  EOM_CC2UHFEnergy = ERROR 
  EOM_CC2TwoConEnergy = ERROR

  % Procedure for the LEOM_CC2 energy
  LEOM_CC2Energy =($ints $scf $localize $transqt $ccsort $ccenergy
                    $cchbar $cceom )
  LEOM_CC2RHFEnergy = ($LEOM_CC2Energy $done)
  LEOM_CC2ROHFEnergy = ERROR 
  LEOM_CC2UHFEnergy = ERROR
  LEOM_CC2TwoConEnergy = ERROR

  % Procedures for optimization via energy points
  EOM_CC2EnergyOpt = (repeat $nopt $EOM_CC2Energy $findif_disp_symm
    repeat NUM_DISP $findif_next $findif_input $EOM_CC2Energy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  EOM_CC2RHFEnergyOpt = ($EOM_CC2EnergyOpt $done)
  EOM_CC2ROHFEnergyOpt = ERROR
  EOM_CC2UHFEnergyOpt = ERROR 
  EOM_CC2TwoConEnergyOpt = ERROR

  % Procedure for the EOM CC2 gradient
  EOM_CC2First = ($EOM_CC2Energy $cclambda_excited $ccdensity_calc_xi
    $cclambda_zeta $ccdensity_use_zeta $oeprop $backtransqt $deriv)
  EOM_CC2RHFFirst = ERROR
  EOM_CC2ROHFFirst = ERROR
  EOM_CC2UHFFirst = ERROR
  EOM_CC2TwoConFirst = ERROR

  % Procedure for optimizing geometries with gradients
  EOM_CC2RHFFirstOpt = ERROR
  EOM_CC2ROHFFirstOpt = ERROR 
  EOM_CC2UHFFirstOpt  = ERROR
  EOM_CC2TwoConFirstOpt  = ERROR

  % EOM CC2 Freqs via differences of energies
  EOM_CC2EnergyFreq  =
    ($EOM_CC2Energy $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $EOM_CC2Energy $findif_energy_save end
     $findif_freq_energy_cart $done)
  EOM_CC2RHFEnergyFreq  = $EOM_CC2EnergyFreq
  EOM_CC2ROHFEnergyFreq  = ERROR
  EOM_CC2UHFEnergyFreq  = ERROR 
  EOM_CC2TwoConEnergyFreq  = ERROR

  % Procedures for freqs via differences of analytic gradients
  EOM_CC2FirstFreq  = 
    ($EOM_CC2Energy $findif_disp_freq_grad_cart repeat NUM_DISP 
     $findif_next $findif_input $EOM_CC2First $findif_grad_save end 
     $findif_freq_grad_cart)
  EOM_CC2RHFFirstFreq  = ERROR 
  EOM_CC2ROHFFirstFreq  = ERROR
  EOM_CC2UHFFirstFreq  = ERROR
  EOM_CC2TwoConFirstFreq  = ERROR

  % Procedure for an EOM CC2 one-electron property computation
  EOM_CC2FirstOEPROP = ($EOM_CC2Energy $cclambda_excited $ccdensity_calc_xi
    $cclambda_zeta $ccdensity_use_zeta $oeprop $done)
  EOM_CC2RHFFirstOEPROP = ERROR
  EOM_CC2UHFFirstOEPROP = ERROR 
  EOM_CC2ROHFFirstOEPROP = ERROR
  EOM_CC2TwoConFirstOEPROP = ERROR

  % Procedure for an EOM CC2 one-electron property computation -
  % no T amplitude or orbital relaxation
  EOM_CC2EnergyOEPROP = ($EOM_CC2Energy $cclambda_excited $propint 
                         $ccdensity_excited_onepdm $oeprop $done)
  EOM_CC2RHFEnergyOEPROP = $EOM_CC2EnergyOEPROP
  EOM_CC2UHFEnergyOEPROP = ERROR
  EOM_CC2ROHFEnergyOEPROP = ERROR 
  EOM_CC2TwoConEnergyOEPROP = ERROR

  % -------------------------------- EOM CCSD Procedures
  % Procedure for the EOM_CCSD energy
  EOM_CCSDEnergy = ($ints $scf $cctrans $ccsort $ccenergy $cchbar $cceom)
  EOM_CCSDRHFEnergy = ($EOM_CCSDEnergy $done)
  EOM_CCSDROHFEnergy = ($EOM_CCSDEnergy $done) 
  EOM_CCSDUHFEnergy = ($EOM_CCSDEnergy $done) 
  EOM_CCSDTwoConEnergy = ERROR

  % Procedure for the LEOM_CCSD energy
  LEOM_CCSDEnergy =($ints $scf $localize $transqt $ccsort $ccenergy
                    $cchbar $cceom )
  LEOM_CCSDRHFEnergy = ($LEOM_CCSDEnergy $done)
  LEOM_CCSDROHFEnergy = ($LEOM_CCSDEnergy $done) 
  LEOM_CCSDUHFEnergy = ERROR
  LEOM_CCSDTwoConEnergy = ERROR

  % Procedures for optimization via energy points
  EOM_CCSDEnergyOpt = (repeat $nopt $EOM_CCSDEnergy $findif_disp_symm
    repeat NUM_DISP $findif_next $findif_input $EOM_CCSDEnergy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  EOM_CCSDRHFEnergyOpt = ($EOM_CCSDEnergyOpt $done)
  EOM_CCSDROHFEnergyOpt = ($EOM_CCSDEnergyOpt $done)
  EOM_CCSDUHFEnergyOpt = ($EOM_CCSDEnergyOpt $done)
  EOM_CCSDTwoConEnergyOpt = ERROR

  % Procedure for the EOM CCSD gradient
  EOM_CCSDFirst = ($EOM_CCSDEnergy $cclambda_excited $ccdensity_calc_xi
    $cclambda_zeta $ccdensity_use_zeta $oeprop $backtransqt $deriv)
  EOM_CCSDRHFFirst = ($EOM_CCSDFirst $done)
  EOM_CCSDROHFFirst = ($EOM_CCSDFirst $done)
  EOM_CCSDUHFFirst = ($EOM_CCSDFirst $done)
  EOM_CCSDTwoConFirst = ERROR

  % Procedure for optimizing geometries with gradients
  EOM_CCSDRHFFirstOpt = (repeat $nopt $EOM_CCSDFirst $geomupdate end $done)
  EOM_CCSDROHFFirstOpt = (repeat $nopt $EOM_CCSDFirst $geomupdate end $done)
  EOM_CCSDUHFFirstOpt  = (repeat $nopt $EOM_CCSDFirst $geomupdate end $done)
  EOM_CCSDTwoConFirstOpt  = ERROR

  % Procedure for optimizing geometries with energy points
  EOM_CCSDEnergyOpt = (repeat $nopt $EOM_CCSDEnergy $findif_disp_symm 
    repeat NUM_DISP $findif_next $findif_input $EOM_CCSDEnergy $findif_energy_save end
    $findif_grad_energy $geomupdate end)
  EOM_CCSDRHFEnergyOpt = ($EOM_CCSDEnergyOpt $done)
  EOM_CCSDROHFEnergyOpt = ($EOM_CCSDEnergyOpt $done)
  EOM_CCSDUHFEnergyOpt = ($EOM_CCSDEnergyOpt $done)
  EOM_CCSDTwoConEnergyOpt = ERROR

  % CCSD Freqs via differences of energies
  EOM_CCSDEnergyFreq  =
    ($EOM_CCSDEnergy $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $EOM_CCSDEnergy $findif_energy_save end
     $findif_freq_energy_cart $done)
  EOM_CCSDRHFEnergyFreq  = $EOM_CCSDEnergyFreq
  EOM_CCSDROHFEnergyFreq  = $EOM_CCSDEnergyFreq
  EOM_CCSDUHFEnergyFreq  = $EOM_CCSDEnergyFreq
  EOM_CCSDTwoConEnergyFreq  = $EOM_CCSDEnergyFreq

  % Procedures for freqs via differences of analytic gradients
  EOM_CCSDFirstFreq  = 
    ($EOM_CCSDEnergy $findif_disp_freq_grad_cart repeat NUM_DISP 
     $findif_next $findif_input $EOM_CCSDFirst $findif_grad_save end 
     $findif_freq_grad_cart)
  EOM_CCSDRHFFirstFreq  = ($EOM_CCSDFirstFreq $done)
  EOM_CCSDROHFFirstFreq  = ($EOM_CCSDFirstFreq $done)
  EOM_CCSDUHFFirstFreq  = ($EOM_CCSDFirstFreq $done)
  EOM_CCSDTwoConFirstFreq  = ERROR

  % Procedures for symmetric force constants via differences of analytic gradients
  EOM_CCSDFirstSymm_FC =
    ($EOM_CCSDEnergy $findif_disp_symm repeat NUM_DISP
     $findif_next $findif_input $EOM_CCSDFirst $findif_grad_save end
     $findif_freq_grad_symm $done)
  EOM_CCSDRHFFirstSymm_FC  = $EOM_CCSDFirstSymm_FC
  EOM_CCSDROHFFirstSymm_FC  = $EOM_CCSDFirstSymm_FC
  EOM_CCSDUHFFirstSymm_FC  = $EOM_CCSDFirstSymm_FC
  EOM_CCSDTwoConFirstSymm_FC  = $EOM_CCSDFirstSymm_FC

  % Procedure for an CCSD one-electron property computation
  EOM_CCSDFirstOEPROP = ($EOM_CCSDEnergy $cclambda_excited $ccdensity_calc_xi
    $cclambda_zeta $ccdensity_use_zeta $oeprop $done)
  EOM_CCSDRHFFirstOEPROP = $EOM_CCSDFirstOEPROP
  EOM_CCSDUHFFirstOEPROP = $EOM_CCSDFirstOEPROP
  EOM_CCSDROHFFirstOEPROP = $EOM_CCSDFirstOEPROP
  EOM_CCSDTwoConFirstOEPROP = ERROR

  % Procedure for an CCSD one-electron property computation -
  % no T amplitude or orbital relaxation
  EOM_CCSDEnergyOEPROP = ($EOM_CCSDEnergy $cclambda_excited $propint 
                          $ccdensity_excited_onepdm $oeprop $done)
  EOM_CCSDRHFEnergyOEPROP = $EOM_CCSDEnergyOEPROP
  EOM_CCSDUHFEnergyOEPROP = $EOM_CCSDEnergyOEPROP
  EOM_CCSDROHFEnergyOEPROP = $EOM_CCSDEnergyOEPROP
  EOM_CCSDTwoConEnergyOEPROP = ERROR

  % -------------------------------- EOM CC3 Procedures
  % Procedure for the EOM_CC3 energy
  EOM_CC3Energy = ($ints $scf $cctrans $ccsort $ccenergy $cchbar $cceom)
  EOM_CC3RHFEnergy = ($EOM_CC3Energy $done)
  EOM_CC3ROHFEnergy = ($EOM_CC3Energy $done)
  EOM_CC3UHFEnergy = ($EOM_CC3Energy $done) 
  EOM_CC3TwoConEnergy = ERROR

  EOM_CC3EnergyOpt = (repeat $nopt $EOM_CC3Energy $findif_delete_binaries $findif_disp_symm
    repeat NUM_DISP $findif_next $findif_input $EOM_CC3Energy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  EOM_CC3RHFEnergyOpt = ERROR
  EOM_CC3ROHFEnergyOpt = ($EOM_CC3EnergyOpt $done)
  EOM_CC3UHFEnergyOpt = ($EOM_CC3EnergyOpt $done)
  EOM_CC3TwoConEnergyOpt = ERROR

  % EOM_CC3 Freqs via differences of energies
  EOM_CC3EnergyFreq  =
    ($EOM_CC3Energy $findif_delete_binaries $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $EOM_CC3Energy $findif_energy_save end
     $findif_freq_energy_cart $done)
  EOM_CC3RHFEnergyFreq  = ERROR
  EOM_CC3ROHFEnergyFreq  = $EOM_CC3EnergyFreq
  EOM_CC3UHFEnergyFreq  = $EOM_CC3EnergyFreq
  EOM_CC3TwoConEnergyFreq  = $EOM_CC3EnergyFreq

  % -------------------------------- OOCCD Procedures
  % Procedures for the OOCCD energy
  OOCCDRHFEnergy = ($ints $scf $transqt $ooccman $done)
  OOCCDROHFEnergy = ERROR
  OOCCDUHFEnergy = ERROR
  OOCCDTwoConEnergy = ERROR

  % Procedures for the OOCCD gradient
  OOCCDFirst =
    ($ints $scf $transqt $ooccman $backtransqt $oeprop $deriv)
  OOCCDRHFFirst = ($OOCCDFirst $done)
  OOCCDROHFFirst = ERROR
  OOCCDUHFFirst = ERROR
  OOCCDTwoConFirst = ERROR

  % Procedures for the optimizing geomtries with OOCCD gradients
  OOCCDFirstOpt =
    (repeat $nopt $OOCCDFirst $geomupdate end $done)
  OOCCDRHFFirstOpt = $OOCCDFirstOpt
  OOCCDROHFFirstOpt = ERROR
  OOCCDUHFFirstOpt  = ERROR
  OOCCDTwoConFirstOpt  = ERROR

  % Procedures for the finite displacements of OOCCD gradients
  OOCCDFirstDisp  = (repeat $ndisp $ugeom $OOCCDFirst $rgeom end $done)
  OOCCDRHFFirstDisp  = $OOCCDFirstDisp
  OOCCDUHFFirstDisp  = ERROR
  OOCCDROHFFirstDisp  = ERROR
  OOCCDTwoConFirstDisp  = ERROR

  % -------------------------------- BCCD Procedures
  % Procedures for the BCCD energy
  BCCDEnergy = ($ints $scf repeat $nbrueckner $cctrans $ccsort $ccenergy end)
  BCCDRHFEnergy = ($BCCDEnergy $done)
  BCCDROHFEnergy = ERROR
  BCCDUHFEnergy = ($BCCDEnergy $done)
  BCCDTwoConEnergy = ERROR

  % -------------------------------- BCCD(T) Procedures
  % Procedures for the BCCD(T) energy
  BCCD_TEnergy = ($ints $scf repeat $nbrueckner $cctrans $ccsort $ccenergy end $cctriples)
  BCCD_TRHFEnergy = ($BCCD_TEnergy $done)
  BCCD_TROHFEnergy = ERROR
  BCCD_TUHFEnergy = ($BCCD_TEnergy $done)
  BCCD_TTwoConEnergy = ERROR

  % -------------------------------- DETCI Procedures
  % Procedures for the DETCI energy
  DETCIEnergy = ($ints $scf $transqt $detci)
  DETCIRHFEnergy = ($DETCIEnergy $done)
  DETCIROHFEnergy = ($DETCIEnergy $done)
  DETCIUHFEnergy = ERROR 
  DETCITwoConEnergy = ERROR

  % Procedures for the DETCI gradient: not yet impl, need orb response
  DETCIFirst = ERROR
  DETCIRHFFirst = ERROR
  DETCIROHFFirst = ERROR
  DETCIUHFFirst = ERROR
  DETCITwoConFirst = ERROR

  % Procedures for the optimizing geomtries with DETCI gradients
  DETCIFirstOpt =
    (repeat $nopt $DETCIFirst $geomupdate end $done)
  DETCIRHFFirstOpt = $DETCIFirstOpt
  DETCIROHFFirstOpt = ERROR
  DETCIUHFFirstOpt  = ERROR
  DETCITwoConFirstOpt  = ERROR

  % Procedures for the finite displacements of DETCI gradients
  DETCIFirstDisp  = (repeat $ndisp $ugeom $DETCIFirst $rgeom end $done)
  DETCIRHFFirstDisp  = $DETCIFirstDisp
  DETCIUHFFirstDisp  = ERROR
  DETCIROHFFirstDisp  = ERROR
  DETCITwoConFirstDisp  = ERROR

  % Procedures for displacements of energies
  DETCIEnergyDisp = (repeat $ndisp $ugeom $DETCIEnergy $rgeom end $done)
  DETCIRHFEnergyDisp = $DETCIEnergyDisp
  DETCIROHFEnergyDisp = $DETCIEnergyDisp
  DETCIUHFEnergyDisp = ERROR
  DETCITwoConEnergyDisp = ERROR

  % Procedures for optimization via energy points
  DETCIEnergyOpt = (repeat $nopt $DETCIEnergy $findif_disp_symm 
    repeat NUM_DISP $findif_next $findif_input $DETCIEnergy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  DETCIRHFEnergyOpt = $DETCIEnergyOpt 
  DETCIROHFEnergyOpt = $DETCIEnergyOpt 
  DETCIUHFEnergyOpt = ERROR
  DETCITwoConEnergyOpt = $DETCIEnergyOpt

% whenever gradients are available; DETCI freqs via differences of analytic gradients
%  DETCIFirstFreq  =
%    ($DETCIEnergy $findif_disp_freq_grad_cart repeat NUM_DISP
%     $findif_next $findif_input $DETCIFirst $findif_grad_save end
%     $findif_freq_grad_cart $done)
%  DETCIRHFFirstFreq  = $DETCIFirstFreq
%  DETCIROHFFirstFreq  = $DETCIFirstFreq
%  DETCIUHFFirstFreq  = $DETCIFirstFreq
%  DETCITwoConFirstFreq  = $DETCIFirstFreq

  % DETCI Freqs via differences of energies
  DETCIEnergyFreq  =
    ($DETCIEnergy $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $DETCIEnergy $findif_energy_save end
     $findif_freq_energy_cart $done)
  DETCIRHFEnergyFreq  = $DETCIEnergyFreq
  DETCIROHFEnergyFreq  = $DETCIEnergyFreq
  DETCIUHFEnergyFreq  = $DETCIEnergyFreq
  DETCITwoConEnergyFreq  = $DETCIEnergyFreq

  % Procedures for CI DBOC computation
  DETCIDBOC = ($input $dboc)
  DETCIRHFDBOC = ($DETCIDBOC $done)
  DETCIROHFDBOC = ($DETCIDBOC $done)
  DETCIUHFDBOC = ($DETCIDBOC $done)
  DETCITwoConDBOC = ($DETCIDBOC $done)

  % Procedure for ZAPTn Energy (SEW)
  ZAPTNROHFEnergy = ($DETCIEnergy $done)


  % -------------------------------- DETCAS Procedures
  % Procedures for the DETCAS energy
  DETCASEnergy = ($ints $scf $detcasman)
  DETCASRHFEnergy = ($DETCASEnergy $done)
  DETCASROHFEnergy = ($DETCASEnergy $done)
  DETCASUHFEnergy = ERROR
  DETCASTwoConEnergy = ERROR

  % Procedures for the DETCAS gradient
  DETCASFirst = 
  ($ints $scf $detcasman $backtransqt $oeprop $deriv)
  DETCASRHFFirst = ($DETCASFirst $done)
  DETCASROHFFirst = ($DETCASFirst $done)
  DETCASUHFFirst = ERROR
  DETCASTwoConFirst = ERROR

  % Procedures for the optimizing geomtries with DETCAS gradients
  DETCASFirstOpt =
    (repeat $nopt $DETCASFirst $geomupdate end $done)
  DETCASRHFFirstOpt = $DETCASFirstOpt
  DETCASROHFFirstOpt = $DETCASFirstOpt
  DETCASUHFFirstOpt  = ERROR
  DETCASTwoConFirstOpt  = ERROR

  % Procedures for the finite displacements of DETCAS gradients
  DETCASFirstDisp  = (repeat $ndisp $ugeom $DETCASFirst $rgeom end $done)
  DETCASRHFFirstDisp  = $DETCASFirstDisp
  DETCASROHFFirstDisp  = $DETCASFirstDisp
  DETCASUHFFirstDisp  = ERROR
  DETCASTwoConFirstDisp  = ERROR

  % Procedures for optimization via DETCAS energy points
  DETCASEnergyOpt = (repeat $nopt $DETCASEnergy $findif_disp_symm 
    repeat NUM_DISP $findif_next $findif_input $DETCASEnergy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  DETCASRHFEnergyOpt = $DETCASEnergyOpt
  DETCASROHFEnergyOpt = $DETCASEnergyOpt
  DETCASUHFEnergyOpt = ERROR
  DETCASTwoConEnergyOpt = $DETCASEnergyOpt

  % Procedures for symmetric frequencies via finite differences of gradients
  DETCASFirstSymm_FC  = 
    ($input $DETCASEnergy $findif_disp_symm repeat NUM_DISP 
     $findif_next $findif_input $DETCASFirst $findif_grad_save end 
     $findif_freq_grad_symm $done)
  DETCASRHFFirstSymm_FC  = $DETCASFirstSymm_FC
  DETCASROHFFirstSymm_FC  = $DETCASFirstSymm_FC
  DETCASUHFFirstSymm_FC  = $DETCASFirstSymm_FC
  DETCASTwoConFirstSymm_FC  = $DETCASFirstSymm_FC

  % Procedures for frequencies via finite differences of gradients
  DETCASFirstFreq  = 
    ($input $DETCASEnergy $findif_disp_freq_grad_cart repeat NUM_DISP 
     $findif_next $findif_input $DETCASFirst $findif_grad_save end 
     $findif_freq_grad_cart $done)
  DETCASRHFFirstFreq  = $DETCASFirstFreq
  DETCASROHFFirstFreq  = $DETCASFirstFreq
  DETCASUHFFirstFreq  = $DETCASFirstFreq
  DETCASTwoConFirstFreq  = $DETCASFirstFreq

  % Procedures for DETCAS DBOC computation
  DETCASDBOC = ($input $dboc)
  DETCASRHFDBOC = ($DETCASDBOC $done)
  DETCASROHFDBOC = ($DETCASDBOC $done)
  DETCASUHFDBOC = ($DETCASDBOC $done)
  DETCASTwoConDBOC = ($DETCASDBOC $done)

  % Procedures for the conventional MP2 energy
  MP2Energy = ($ints $scf $transqt $ccsort $mp2)
  MP2RHFEnergy = ($MP2Energy $done)
  MP2ROHFEnergy = ($MP2Energy $done) 
  MP2UHFEnergy =  ($MP2Energy $done)
  MP2TwoConEnergy = ERROR

  % Procedures for optimization via MP2 energy points
  MP2EnergyOpt = (repeat $nopt $MP2Energy $findif_disp_symm 
    repeat NUM_DISP $findif_next $findif_input $MP2Energy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  MP2RHFEnergyOpt = $MP2EnergyOpt
  MP2ROHFEnergyOpt = $MP2EnergyOpt 
  MP2UHFEnergyOpt = $MP2EnergyOpt
  MP2TwoConEnergyOpt = ERROR

  % Procedures for orbital-unrelaxed MP2 one-electron properties
  MP2EnergyOEPROP = ($MP2Energy $oeprop)
  MP2RHFEnergyOEPROP = ($MP2EnergyOEPROP $done)
  MP2ROHFEnergyOEPROP = ($MP2EnergyOEPROP $done) 
  MP2UHFEnergyOEPROP =  ($MP2EnergyOEPROP $done)
  MP2TwoConEnergyOEPROP = ERROR

  % Procedure for orbital-relaxed MP2 one-electron properties
  MP2FirstOEPROP = ($MP2Energy $oeprop)
  MP2RHFFirstOEPROP = ($MP2FirstOEPROP $done)
  MP2UHFFirstOEPROP = ERROR
  MP2ROHFFirstOEPROP = ERROR 
  MP2TwoConFirstOEPROP = ERROR

  % Procedures for the MP2 gradient
  MP2First = ($MP2Energy $oeprop $backtransqt $deriv)
  MP2RHFFirst = $MP2First
  MP2ROHFFirst = ERROR
  MP2UHFFirst = ERROR
  MP2TwoConFirst = ERROR

  % Procedures for geometry optimization with MP2 gradients
  MP2RHFFirstOpt = (repeat $nopt $MP2RHFFirst $geomupdate end $done)
  MP2ROHFFirstOpt = ERROR 
  MP2UHFFirstOpt  = ERROR
  MP2TwoConFirstOpt  = ERROR

  % Procedures for the MP2 gradient with no restart
  MP2FirstReset = ($ints $scf $transqt $ccreset $mp2 
      $oeprop $backtransqt $deriv)
  MP2RHFFirstReset = $MP2FirstReset
  MP2ROHFFirstReset = $MP2FirstReset
  MP2UHFFirstReset = $MP2FirstReset

  % Procedures for the finite displacements of MP2 gradients
  MP2RHFFirstDisp =
    (repeat $ndisp $ugeom $uinput $MP2RHFFirst $rgeom end $done)
  MP2ROHFFirstDisp = 
    (repeat $ndisp $ugeom $uinput $MP2ROHFFirst $rgeom end $done)
  MP2UHFFirstDisp  = 
    (repeat $ndisp $ugeom $uinput $MP2UHFFirst $rgeom end $done)
  MP2TwoConFirstDisp  = ERROR

  % MP2 Freqs via differences of analytic gradients
  MP2FirstFreq  = 
    ($MP2Energy $findif_disp_freq_grad_cart repeat NUM_DISP 
     $findif_next $findif_input $MP2FirstReset $findif_grad_save end 
     $findif_freq_grad_cart $done)
  MP2RHFFirstFreq  = $MP2FirstFreq
  MP2ROHFFirstFreq  = ERROR
  MP2UHFFirstFreq  = ERROR 
  MP2TwoConFirstFreq  = ERROR

  % MP2 Freqs via differences of energies
  MP2EnergyFreq  =
    ($MP2Energy $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $MP2Energy $findif_energy_save end
     $findif_freq_energy_cart $done)
  MP2RHFEnergyFreq  = $MP2EnergyFreq
  MP2ROHFEnergyFreq  = $MP2EnergyFreq
  MP2UHFEnergyFreq  = $MP2EnergyFreq
  MP2TwoConEnergyFreq  = ERROR

  % Procedures for force constants via differences of analytic gradients
  MP2FirstFC =
    ($MP2Energy $findif_disp_nosymm repeat NUM_DISP
     $findif_next $findif_input $MP2First $findif_grad_save end
     $findif_freq_grad_nosymm $done)
  MP2RHFFirstFC  = $MP2FirstFC
  MP2ROHFFirstFC  = ERROR 
  MP2UHFFirstFC  = ERROR 
  MP2TwoConFirstFC  = ERROR

  % Procedures for symmetric force constants via differences of analytic gradients
  MP2FirstSymm_FC =
    ($MP2Energy $findif_disp_symm repeat NUM_DISP
     $findif_next $findif_input $MP2First $findif_grad_save end
     $findif_freq_grad_symm $done)
  MP2RHFFirstSymm_FC  = $MP2FirstSymm_FC
  MP2ROHFFirstSymm_FC  = ERROR
  MP2UHFFirstSymm_FC  = ERROR 
  MP2TwoConFirstSymm_FC  = ERROR

  % Procedures for the direct MP2 energy
  DirectMP2Energy = ($DirectSCFEnergy $mp2_direct)
  DirectMP2RHFEnergy = ($DirectMP2Energy $done)
  DirectMP2ROHFEnergy = ERROR
  DirectMP2UHFEnergy = ERROR
  DirectMP2TwoConEnergy = ERROR

  % Procedures for optimization via DirectMP2 energy points
  DirectMP2EnergyOpt = (repeat $nopt $DirectMP2Energy $findif_disp_symm 
    repeat $ndisp $findif_next $findif_input $DirectMP2Energy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  DirectMP2RHFEnergyOpt = $DirectMP2EnergyOpt
  DirectMP2ROHFEnergyOpt = ERROR
  DirectMP2UHFEnergyOpt = ERROR
  DirectMP2TwoConEnergyOpt = ERROR

  % Procedures for the MP2-R12 energy (MP2-R12 transformation is always direct)
  MP2R12Energy = ($SCFEnergy $mp2r12_moints $mp2r12)
  MP2R12RHFEnergy = ($MP2R12Energy $done)
  MP2R12ROHFEnergy = ERROR
  MP2R12UHFEnergy = ERROR
  MP2R12TwoConEnergy = ERROR

  % Procedures for the direct MP2-R12 energy
  DirectMP2R12Energy = ($DirectSCFEnergy $mp2r12_moints $mp2r12)
  DirectMP2R12RHFEnergy = ($DirectMP2R12Energy $done)
  DirectMP2R12ROHFEnergy = ERROR
  DirectMP2R12UHFEnergy = ERROR
  DirectMP2R12TwoConEnergy = ERROR

  % Procedures for optimization via MP2-R12 energy points
  MP2R12EnergyOpt = (repeat $nopt $MP2R12Energy $findif_disp_symm 
    repeat $ndisp $findif_next $findif_input $MP2R12Energy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  MP2R12RHFEnergyOpt = $MP2R12EnergyOpt
  MP2R12ROHFEnergyOpt = ERROR
  MP2R12UHFEnergyOpt = ERROR
  MP2R12TwoConEnergyOpt = ERROR

  % Procedures for optimization via DirectMP2R12 energy points
  DirectMP2R12EnergyOpt = (repeat $nopt $DirectMP2R12Energy $findif_disp_symm 
    repeat $ndisp $findif_next $findif_input $DirectMP2R12Energy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)
  DirectMP2R12RHFEnergyOpt = $DirectMP2R12EnergyOpt
  DirectMP2R12ROHFEnergyOpt = ERROR
  DirectMP2R12UHFEnergyOpt = ERROR
  DirectMP2R12TwoConEnergyOpt = ERROR

  % Procedure for the CIS energy
  CISEnergy = ($ints $scf $cctrans $ccsort $cis)
  CISRHFEnergy = ($CISEnergy $done)
  CISROHFEnergy = ERROR
  CISUHFEnergy = ($CISEnergy $done)
  CISTwoConEnergy = ERROR

  % -------------------------------- MCSCF Procedures
  % *** MCSCF energy ***
  MCSCFEnergy          = ($ints $mcscf)
  MCSCFRHFEnergy       = ($MCSCFEnergy $done)
  MCSCFROHFEnergy      = ($MCSCFEnergy $done)
  MCSCFTWOCONEnergy    = ($MCSCFEnergy $done)
  MCSCFUHFEnergy       = ERROR

  % Procedures for the PSIMRCC energy 
  PSIMRCCSCFEnergy     = ($SCFEnergy $transqt_psimrcc $psimrcc)
  PSIMRCC_MCSCF_Energy = ($MCSCFEnergy $transqt_psimrcc $psimrcc)
  PSIMRCCRHFEnergy     = ($PSIMRCC_MCSCF_Energy $done)
  PSIMRCCROHFEnergy    = ($PSIMRCC_MCSCF_Energy $done)
  PSIMRCCTWOCONEnergy  = ($PSIMRCC_MCSCF_Energy $done)
  PSIMRCCUHFEnergy     = ERROR

  % Procedures for the PSIMRCC optimization 

  PSIMRCCSCFEnergyOpt = (repeat $nopt $PSIMRCCSCFEnergy $findif_disp_symm
    repeat NUM_DISP $findif_next $findif_input $PSIMRCCSCFEnergy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)

  PSIMRCC_MCSCF_EnergyOpt = (repeat $nopt $PSIMRCC_MCSCF_Energy $findif_disp_symm
    repeat NUM_DISP $findif_next $findif_input $PSIMRCC_MCSCF_Energy $findif_energy_save end
    $findif_grad_energy $geomupdate end $done)

  PSIMRCCRHFEnergyOpt    = $PSIMRCC_MCSCF_EnergyOpt
  PSIMRCCROHFEnergyOpt   = $PSIMRCC_MCSCF_EnergyOpt
  PSIMRCCTWOCONEnergyOpt = $PSIMRCC_MCSCF_EnergyOpt
  PSIMRCCUHFEnergyOpt    = ERROR

  PSIMRCCEnergyFreq  =
    ($SCFEnergy $transqt_psimrcc $psimrcc $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $ints $scf $transqt_psimrcc $psimrcc $findif_energy_save end
     $findif_freq_energy_cart $done)

  PSIMRCC_MCSCF_EnergyFreq  =
    ($MCSCFEnergy $transqt_psimrcc $psimrcc $findif_disp_freq_energy_cart repeat NUM_DISP
     $findif_next $findif_input $ints $mcscf $transqt_psimrcc $psimrcc $findif_energy_save end
     $findif_freq_energy_cart $done)

  PSIMRCCRHFEnergyFreq    = ($PSIMRCC_MCSCF_EnergyFreq)
  PSIMRCCROHFEnergyFreq   = ($PSIMRCC_MCSCF_EnergyFreq)
  PSIMRCCTWOCONEnergyFreq = ($PSIMRCC_MCSCF_EnergyFreq)
  PSIMRCCTWOCONEnergyFreq = ERROR

  % Procedures for IDMKPT2 energy
  IDMKPT2_MCSCF_Energy = ($MCSCFEnergy $mkpt2ints $psimrcc)
  IDMKPT2RHFEnergy     = ($IDMKPT2_MCSCF_Energy $done)
  IDMKPT2ROHFEnergy    = ($IDMKPT2_MCSCF_Energy $done)
  IDMKPT2TWOCONEnergy  = ($IDMKPT2_MCSCF_Energy $done)
  IDMKPT2UHFEnergy     = ERROR
) 
