3
#include <libdpd/dpd.h>
4
#include <libpsio/psio.h>
8
void denom1(dpdfile2 *X1, double omega);
9
void denom2(dpdbuf4 *X2, double omega);
10
void local_filter_T1(dpdfile2 *T1, double omega);
11
void local_filter_T2(dpdbuf4 *T2, double omega);
13
void init_X(char *pert, char *cart, int irrep, double omega)
16
dpdfile2 mu1, X1, FAE, FMI;
19
sprintf(lbl, "%sBAR_%1s_IA", pert, cart);
20
dpd_file2_init(&mu1, CC_OEI, irrep, 0, 1, lbl);
21
sprintf(lbl, "X_%s_%1s_IA (%5.3f)", pert, cart, omega);
22
if(!params.restart || !psio_tocscan(CC_OEI, lbl)) {
23
dpd_file2_copy(&mu1, CC_OEI, lbl);
24
dpd_file2_init(&X1, CC_OEI, irrep, 0, 1, lbl);
25
if(params.local && local.filter_singles) local_filter_T1(&X1, omega);
26
else denom1(&X1, omega);
29
else fprintf(outfile, "\tUsing existing %s amplitudes.\n", lbl);
30
dpd_file2_close(&mu1);
32
sprintf(lbl, "%sBAR_%1s_IjAb", pert, cart);
33
dpd_buf4_init(&mu2, CC_LR, irrep, 0, 5, 0, 5, 0, lbl);
34
sprintf(lbl, "X_%s_%1s_IjAb (%5.3f)", pert, cart, omega);
35
if(!params.restart || !psio_tocscan(CC_LR, lbl)) {
36
dpd_buf4_copy(&mu2, CC_LR, lbl);
37
dpd_buf4_init(&X2, CC_LR, irrep, 0, 5, 0, 5, 0, lbl);
38
if(params.local) local_filter_T2(&X2, omega);
39
else denom2(&X2, omega);
42
else fprintf(outfile, "\tUsing existing %s amplitudes.\n", lbl);