9
#include <libpsio/psio.hpp>
11
#include <libchkpt/chkpt.h>
13
#include <libchkpt/chkpt.hpp>
14
#include <libciomr/libciomr.h>
18
double ***Chkpt::rd_fragment_coeff(void)
20
int nfragment, *natom_per_fragment, *nref_per_fragment, i, j;
22
double ***fragment_coeff;
24
keyword = build_keyword("Fragment coeff");
26
nfragment = rd_nfragment();
27
natom_per_fragment = rd_natom_per_fragment();
28
nref_per_fragment = rd_nref_per_fragment();
30
fragment_coeff = array<double **>(nfragment);
31
for (i=0; i<nfragment; ++i)
32
fragment_coeff[i] = matrix<double>(nref_per_fragment[i],natom_per_fragment[i]);
35
for (i=0; i<nfragment; ++i)
36
for (j=0; j<nref_per_fragment[i]; ++j)
37
psio->read(PSIF_CHKPT, keyword, (char *) fragment_coeff[i][j],
38
(int) natom_per_fragment[i]*sizeof(double), ptr, &ptr);
40
free(natom_per_fragment);
41
free(nref_per_fragment);
43
return fragment_coeff;
46
void Chkpt::wt_fragment_coeff(double ***fragment_coeff)
48
int nfragment, *natom_per_fragment, *nref_per_fragment, i, j;
51
keyword = build_keyword("Fragment coeff");
53
nfragment = rd_nfragment();
54
natom_per_fragment = rd_natom_per_fragment();
55
nref_per_fragment = rd_nref_per_fragment();
58
for (i=0; i<nfragment; ++i)
59
for (j=0; j<nref_per_fragment[i]; ++j)
60
psio->write(PSIF_CHKPT, keyword, (char *) fragment_coeff[i][j],
61
(int) natom_per_fragment[i]*sizeof(double), ptr, &ptr);
63
free(natom_per_fragment);
64
free(nref_per_fragment);
71
** chkpt_rd_fragment_coeff(): Reads in the coefficients specifying reference points
72
** for molecular fragments
74
** takes no arguments.
77
** double ***fragment_coeff[fragment][reference point][atom in fragment]
80
double ***chkpt_rd_fragment_coeff(void)
82
double ***fragment_coeff;
83
fragment_coeff = _default_chkpt_lib_->rd_fragment_coeff();
84
return fragment_coeff;
89
** chkpt_wt_fragment_coeff(): Writes out the coefficients specifying the reference
90
** points for molecular fragments
92
** \param double ***fragment_coeff[fragment][reference point][atom in fragment]
96
void chkpt_wt_fragment_coeff(double ***fragment_coeff)
98
_default_chkpt_lib_->wt_fragment_coeff(fragment_coeff);