10
#include <libpsio/psio.h>
13
** chkpt_rd_ict(): Reads the transformation properties of the nuclei
14
** under the operations allowed for the particular symmetry point group
15
** in which the molecule is considered.
17
** takes no arguments.
19
** returns: ict = a matrix of integers. Each row corresponds
20
** to a particular symmetry operation, while each column corresponds to
21
** a particular atom. The value of ict[2][1], then, should be interpreted
22
** in the following manner: under the third symmetry operation of the
23
** relavant point group, the second atom is placed in the location
24
** originally occupied by the atom with the index ict[2][1].
28
int **chkpt_rd_ict(void)
30
int i, natom, nirreps;
35
nirreps = chkpt_rd_nirreps();
36
natom = chkpt_rd_natom();
39
ict = (int **) malloc(sizeof(char *) * nirreps);
40
key = chkpt_build_keyword("ICT Table");
41
for(i=0; i < nirreps; i++) {
42
ict[i] = (int *) malloc(sizeof(int) * natom);
43
psio_read(PSIF_CHKPT, key, (char *) ict[i], natom*sizeof(int), ptr, &ptr);
52
** chkpt_wt_ict(): Reads the transformation properties of the nuclei
53
** under the operations allowed for the particular symmetry point group
54
** in which the molecule is considered.
57
** \param ict = a matrix of integers. Each row corresponds
58
** to a particular symmetry operation, while each column corresponds to
59
** a particular atom. The value of ict[2][1], then, should be interpreted
60
** in the following manner: under the third symmetry operation of the
61
** relavant point group, the second atom is placed in the location
62
** originally occupied by the atom with the index ict[2][1].
68
void chkpt_wt_ict(int **ict)
70
int i, natom, nirreps;
74
nirreps = chkpt_rd_nirreps();
75
natom = chkpt_rd_natom();
77
key = chkpt_build_keyword("ICT Table");
79
for(i=0; i < nirreps; i++)
80
psio_write(PSIF_CHKPT, key, (char *) ict[i], natom*sizeof(int),