00001
00002
#ifdef __GNUC__
00003
#pragma interface
00004
#endif
00005
00006
#ifndef _chemistry_qc_psi_exenv_h
00007
#define _chemistry_qc_psi_exenv_h
00008
00009
using namespace std;
00010
00011
#include <string>
00012
#include <chemistry/qc/psi/psiinput.h>
00013
#include <chemistry/qc/psi/psifile11.h>
00014
00015
namespace sc {
00016
00018
00019 class PsiExEnv:
public DescribedClass {
00020
00021
00022
static string inputname_;
00023
static string file11name_;
00024
static int ckptfile_;
00025
00026
00027
static string defaultpsiprefix_;
00028
static string defaultcwd_;
00029
static string defaultfileprefix_;
00030
static string defaultstdout_;
00031
static string defaultstderr_;
00032
00033
00034 string psiprefix_;
00035 string cwd_;
00036 string fileprefix_;
00037 string stdout_;
00038 string stderr_;
00039
int nscratch_;
00040 string *scratch_;
00041
Ref<PsiInput> psiinput_;
00042
Ref<PsiFile11> psifile11_;
00043
00044
00045
void add_to_path(
const string &);
00046
00047
public:
00048
PsiExEnv(
const Ref<KeyVal>&);
00049
PsiExEnv(
char *cwd,
char *fileprefix,
int nscratch,
char **scratch);
00050 ~
PsiExEnv();
00051
00053 Ref<PsiInput> get_psi_input()
const {
return psiinput_;};
00055 Ref<PsiFile11> get_psi_file11()
const {
return psifile11_;};
00056
00058
int run_psi();
00060
int run_psi_module(
char *);
00061
00063 string
get_cwd()
const {
return cwd_;};
00065 string
get_fileprefix()
const {
return fileprefix_; };
00067 int get_nscratch()
const {
return nscratch_; };
00069 string
get_scratch(
int i)
const {
return scratch_[i]; };
00070
00071
void print(std::ostream&o=ExEnv::out0())
const;
00072 };
00073
00074 }
00075
00076
#endif