~ubuntu-branches/ubuntu/quantal/psicode/quantal

« back to all changes in this revision

Viewing changes to src/lib/libchkpt/lagr.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck
  • Date: 2006-09-10 14:01:33 UTC
  • Revision ID: james.westby@ubuntu.com-20060910140133-ib2j86trekykfsfv
Tags: upstream-3.2.3
ImportĀ upstreamĀ versionĀ 3.2.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*!
 
2
  \file lagr.c
 
3
  \ingroup (CHKPT)
 
4
*/
 
5
 
 
6
#include <stdio.h>
 
7
#include <stdlib.h>
 
8
#include "chkpt.h"
 
9
#include <libciomr/libciomr.h>
 
10
#include <psifiles.h>
 
11
#include <libpsio/psio.h>
 
12
 
 
13
/*!
 
14
** chkpt_rd_lagr():  Reads in the MO lagrangian matrix for RHF/ROHF.
 
15
**
 
16
**   takes no arguments.
 
17
**
 
18
**   returns: 
 
19
**      double **lagr   a matrix nmo by nmo.
 
20
**
 
21
** \ingroup(CHKPT)
 
22
*/
 
23
double **chkpt_rd_lagr(void)
 
24
{
 
25
  int nmo;
 
26
  double **lagr;
 
27
 
 
28
  nmo = chkpt_rd_nmo();
 
29
 
 
30
  lagr = block_matrix(nmo,nmo);
 
31
  psio_read_entry(PSIF_CHKPT, "::MO Lagrangian", (char *) lagr[0], 
 
32
                  nmo*nmo*sizeof(double));
 
33
 
 
34
  return lagr;
 
35
}
 
36
 
 
37
 
 
38
/*!
 
39
** chkpt_wt_lagr():  Writes the MO lagrangian matrix for RHF/ROHF.
 
40
**
 
41
** \param lagr = Lagrangian matrix with dimensions nmo by nmo.
 
42
**
 
43
** returns: none
 
44
** \ingroup(CHKPT)
 
45
*/
 
46
void chkpt_wt_lagr(double **lagr)
 
47
{
 
48
  int nmo;
 
49
 
 
50
  nmo = chkpt_rd_nmo();
 
51
 
 
52
  psio_write_entry(PSIF_CHKPT, "::MO Lagrangian", (char *) lagr[0], 
 
53
                   nmo*nmo*sizeof(double));
 
54
}
 
55
 
 
56
 
 
57
/*!
 
58
** chkpt_rd_alpha_lagr():  Reads in the alpha MO lagrangian matrix for UHF.
 
59
**
 
60
**   takes no arguments.
 
61
**
 
62
**   returns: 
 
63
**      double **lagr   a matrix nmo by nmo.
 
64
** \ingroup(CHKPT)
 
65
*/
 
66
double **chkpt_rd_alpha_lagr(void)
 
67
{
 
68
  int nmo;
 
69
  double **lagr;
 
70
 
 
71
  nmo = chkpt_rd_nmo();
 
72
 
 
73
  lagr = block_matrix(nmo,nmo);
 
74
  psio_read_entry(PSIF_CHKPT, "::Alpha MO Lagrangian", (char *) lagr[0], 
 
75
                  nmo*nmo*sizeof(double));
 
76
 
 
77
  return lagr;
 
78
}
 
79
 
 
80
 
 
81
/*!
 
82
** chkpt_wt_alpha_lagr():  Writes the alpha MO lagrangian matrix for UHF.
 
83
**
 
84
** \param lagr = Lagrangian matrix of size nmo by nmo.
 
85
**
 
86
** returns: none
 
87
** \ingroup(CHKPT)
 
88
*/
 
89
void chkpt_wt_alpha_lagr(double **lagr)
 
90
{
 
91
  int nmo;
 
92
 
 
93
  nmo = chkpt_rd_nmo();
 
94
 
 
95
  psio_write_entry(PSIF_CHKPT, "::Alpha MO Lagrangian", (char *) lagr[0], 
 
96
                   nmo*nmo*sizeof(double));
 
97
}
 
98
 
 
99
 
 
100
/*!
 
101
** chkpt_rd_beta_lagr():  Reads in the beta MO lagrangian matrix for UHF.
 
102
**
 
103
** takes no arguments.
 
104
**
 
105
** returns: 
 
106
**      double **lagr   a matrix nmo by nmo.
 
107
** \ingroup (CHKPT)
 
108
*/
 
109
double **chkpt_rd_beta_lagr(void)
 
110
{
 
111
  int nmo;
 
112
  double **lagr;
 
113
 
 
114
  nmo = chkpt_rd_nmo();
 
115
 
 
116
  lagr = block_matrix(nmo,nmo);
 
117
  psio_read_entry(PSIF_CHKPT, "::Beta MO Lagrangian", (char *) lagr[0], 
 
118
                  nmo*nmo*sizeof(double));
 
119
 
 
120
  return lagr;
 
121
}
 
122
 
 
123
 
 
124
/*!
 
125
** chkpt_wt_beta_lagr():  Writes the beta MO lagrangian matrix for UHF.
 
126
**
 
127
** \param lagr = Lagrangian matrix of size nmo by nmo.
 
128
**
 
129
** returns: none
 
130
** \ingroup (CHKPT)
 
131
*/
 
132
void chkpt_wt_beta_lagr(double **lagr)
 
133
{
 
134
  int nmo;
 
135
 
 
136
  nmo = chkpt_rd_nmo();
 
137
 
 
138
  psio_write_entry(PSIF_CHKPT, "::Beta MO Lagrangian", (char *) lagr[0], 
 
139
                   nmo*nmo*sizeof(double));
 
140
}