00001
00005 #include <stdio.h>
00006 #include <libiwl/iwl.h>
00007 #include "MOInfo.h"
00008 #include "Params.h"
00009 #include "Frozen.h"
00010 #define EXTERN
00011 #include "globals.h"
00012
00013 namespace psi { namespace ccdensity {
00014
00015 void add_ref_ROHF(struct iwlbuf *OutBuf)
00016 {
00017 int i,j;
00018 int nfzc, nclsd, nopen;
00019
00020 nfzc = moinfo.nfzc;
00021 nclsd = moinfo.nclsd;
00022 nopen = moinfo.nopen;
00023
00024
00025
00026 for(i=0; i < (nfzc + nclsd); i++)
00027 moinfo.opdm[i][i] += 2.0;
00028
00029 for(i=nfzc + nclsd; i < (nfzc + nclsd + nopen); i++)
00030 moinfo.opdm[i][i] += 1.0;
00031
00032
00033
00034
00035
00036 for(i=0; i < (nfzc + nclsd); i++) {
00037 iwl_buf_wrt_val(OutBuf, i, i, i, i, 1.0, 0, outfile, 0);
00038 for(j=0; j < i; j++) {
00039 iwl_buf_wrt_val(OutBuf, i, i, j, j, 2.0, 0, outfile, 0);
00040 iwl_buf_wrt_val(OutBuf, i, j, j, i,-1.0, 0, outfile, 0);
00041 }
00042 }
00043
00044
00045 for(i=(nfzc + nclsd); i < (nfzc + nclsd + nopen); i++) {
00046 for(j=0; j < (nfzc + nclsd); j++) {
00047 iwl_buf_wrt_val(OutBuf, i, i, j, j, 1.0, 0, outfile, 0);
00048 iwl_buf_wrt_val(OutBuf, i, j, j, i,-0.5, 0, outfile, 0);
00049 }
00050 for(j=(nfzc + nclsd); j < i; j++) {
00051 iwl_buf_wrt_val(OutBuf, i, i, j, j, 0.5, 0, outfile, 0);
00052 iwl_buf_wrt_val(OutBuf, i, j, j, i,-0.5, 0, outfile, 0);
00053 }
00054 }
00055 }
00056
00057 }}