3
\brief Enter brief description of file here
13
int dpd_close(int dpd_num)
16
int nirreps,num_subspaces,num_pairs;
19
/* dpd_file2_cache_print(stdout); */
20
dpd_file2_cache_close();
21
/* dpd_file4_cache_print(stdout);*/
22
dpd_file4_cache_close();
24
this_dpd = &(dpd_list[dpd_num]);
26
num_subspaces = this_dpd->num_subspaces;
27
nirreps = this_dpd->nirreps;
28
num_pairs = this_dpd->num_pairs;
30
for(i=0; i < num_pairs; i++)
31
for(j=0; j < num_pairs; j++)
32
free_int_matrix(this_dpd->params4[i][j].start13);
34
for(i=0; i < num_subspaces; i++) free(this_dpd->orboff[i]);
35
free(this_dpd->orboff);
37
for(i=0; i < num_subspaces; i++) {
38
for(j=0; j < 5; j++) {
39
free_int_matrix(this_dpd->pairidx[5*i+j]);
40
for(k=0; k < this_dpd->nirreps; k++)
41
if(this_dpd->pairtot[5*i+j][k])
42
free_int_matrix(this_dpd->pairorb[5*i+j][k]);
43
free(this_dpd->pairorb[5*i+j]);
46
for(i=0,cnt=5*num_subspaces; i < num_subspaces; i++) {
47
for(j=i+1; j < num_subspaces; j++,cnt+=2) {
48
free_int_matrix(this_dpd->pairidx[cnt]);
49
free_int_matrix(this_dpd->pairidx[cnt+1]);
50
for(k=0; k < nirreps; k++) {
51
if(this_dpd->pairtot[cnt][k])
52
free_int_matrix(this_dpd->pairorb[cnt][k]);
53
if(this_dpd->pairtot[cnt+1][k])
54
free_int_matrix(this_dpd->pairorb[cnt+1][k]);
56
free(this_dpd->pairorb[cnt]);
57
free(this_dpd->pairorb[cnt+1]);
60
free(this_dpd->pairidx); free(this_dpd->pairorb);
62
for(i=0; i < num_subspaces; i++) {
63
free(this_dpd->orbidx2[i]);
64
for(j=0; j < nirreps; j++) {
65
if(this_dpd->orbspi[i][j]) free(this_dpd->orbs2[i][j]);
67
free(this_dpd->orbs2[i]);
69
free(this_dpd->orbidx2); free(this_dpd->orbs2);
71
for(i=0; i < num_subspaces; i++) {
72
free(this_dpd->orbspi[i]);
73
free(this_dpd->orbsym[i]);
75
free(this_dpd->orbspi); free(this_dpd->orbsym);
77
free_int_matrix(this_dpd->pairtot);
79
free(this_dpd->numorbs);
81
for(i=0; i < num_pairs; i++)
82
free(this_dpd->params4[i]);
83
free(this_dpd->params4);
84
for(i=0; i < num_subspaces; i++)
85
free(this_dpd->params2[i]);
86
free(this_dpd->params2);
89
printf("memory = %d; memfree = %d\n",
90
dpd_main.memory, dpd_main.memfree);