00001
00005 #include <stdio.h>
00006 #include <stdlib.h>
00007 #include "dpd.h"
00008
00009 extern "C" {
00010
00011 int dpd_4mat_irrep_print(double **matrix, dpdparams4 *Params,
00012 int block, int my_irrep, FILE *outfile)
00013 {
00014 div_t fraction;
00015 int i,j,r_irrep;
00016 int rows, cols, cols_per_page, num_pages, last_page, page, first_col;
00017
00018 cols_per_page = 5;
00019
00020 r_irrep = block^my_irrep;
00021
00022 rows = Params->rowtot[block];
00023 cols = Params->coltot[r_irrep];
00024
00025
00026 fraction = div(cols,cols_per_page);
00027 num_pages = fraction.quot;
00028 last_page = fraction.rem;
00029
00030
00031 for(page=0; page < num_pages; page++) {
00032 first_col = page*cols_per_page;
00033
00034 fprintf(outfile,"\n ");
00035 for(i=first_col; i < first_col+cols_per_page; i++)
00036 fprintf(outfile," %5d",i);
00037
00038 fprintf(outfile,"\n ");
00039 for(i=first_col; i < first_col+cols_per_page; i++)
00040 fprintf(outfile," (%3d,%3d)",
00041 Params->colorb[r_irrep][i][0], Params->colorb[r_irrep][i][1]);
00042
00043 fprintf (outfile,"\n");
00044 for(i=0; i < rows; i++) {
00045 fprintf(outfile,"\n%5d (%3d,%3d)",i,
00046 Params->roworb[block][i][0], Params->roworb[block][i][1]);
00047
00048 for(j=first_col; j < first_col+cols_per_page; j++)
00049 fprintf (outfile,"%19.15f",matrix[i][j]);
00050 }
00051
00052 fprintf (outfile,"\n");
00053 }
00054
00055
00056 if(last_page) {
00057 first_col = page*cols_per_page;
00058
00059 fprintf(outfile,"\n ");
00060 for(i=first_col; i < first_col+last_page; i++)
00061 fprintf(outfile," %5d",i);
00062
00063 fprintf(outfile,"\n ");
00064 for(i=first_col; i < first_col+last_page; i++)
00065 fprintf(outfile," (%3d,%3d)",
00066 Params->colorb[r_irrep][i][0], Params->colorb[r_irrep][i][1]);
00067
00068 fprintf (outfile,"\n");
00069 for(i=0; i < rows; i++) {
00070 fprintf(outfile,"\n%5d (%3d,%3d)",i,
00071 Params->roworb[block][i][0], Params->roworb[block][i][1]);
00072
00073 for(j=first_col; j < first_col+last_page; j++)
00074 fprintf (outfile,"%19.15f",matrix[i][j]);
00075 }
00076
00077 fprintf (outfile,"\n");
00078 }
00079
00080 return 0;
00081
00082 }
00083
00084 }