#include #include #include #include #include #include "include.h" #include "run.h" /* This file calculates various properties of the wavefunction associated with a given eigenstate or states. */ #define MOM 0 /* Flag for nonzero P_1 or L */ #define GRENZE 1.0e-3 /* minimium amount to print out */ int MAIN(){ int i,iist,ist,k,npi/*,hlist[HINDEX]*/,vv; size_t j; sectors x={0}; /* 1 */ clock_t t1; static struct {int n; partype *s; element *p;} shapes[NPMAX]; partype *temp,shape[NPMAX],p; element beta,structure[KKMAX],*pvec,rescale2,rest; #define NOUT 100 /* Output file name length */ char out[NOUT]="structure.out",*pout; FILE *fp; #if HINDEX==1 #if MOM int ht[HINDEX]={0},np=6,kt=6,cyclic=1,o=1,multi=1,multi2=2,nfig=8; element kmax=3.0,ll=3.0; #else /* 1 0 24 8 1 8 */ int o=1,ht[HINDEX]={0},kt=6,np=4,multi=0,nfig=12,cyclic=1; #endif #if 1 element couplings[NPARAMS]={0.1,2.0,-0.2,-0.23,20.0,0.0}; #else element couplings[NPARAMS]={0.0324919696232906307,1.0,0.0,0.0,0.0,-2.0}; #endif #elif HINDEX==2 #if MOM /* 8 26 */ int ht[HINDEX]={0,0},np=6,kt=26,cyclic=1,o=1,multi=8,multi2=9,nfig=8; element kmax=4.0,ll=4.0; #else /* 1 24 8 1 8 */ int ht[HINDEX]={0,0},np=6,kt=36,cyclic=1,o=1,multi=3,nfig=9; #endif #if 0 /* test couplings */ element couplings[NPARAMS]={0.03, 1.0, 0.7,0.03,-0.005, 3.0,0.13,1.0,-2.0}; #elif 0 /* couplings used in first 3+1 paper */ element rescale=8.099820052, couplings[NPARAMS]={0.0517766953,1,0.7584261311, -0.07623059914,-0.1458991891,8.889796764,0.1608104465, 1.657995607,-3.268403913}; #elif 1 /* couplings from best fit in Spring 1999 */ element rescale=11.4617271, couplings[NPARAMS]={0.001967542671,1,0.3909839522, -0.01250282378,-0.06421231123,353.2492529,0.07049127522,160.6273835, -0.7123520719,-0.6519355869}; #endif #endif integer nval=5; doublereal *val,*vec=NULL; #if MOM struct sectors y={0}; int ipt[HINDEX]; element transmom[HINDEX]; #endif #ifdef BABBAGE /* Routine to initialize Fortran on Babbage */ if(hf_fint((char*)NULL)) exit(1); #endif #if MOM for(i=0;ilocate; shapes[i].n=0; npi=x.np[i]; for(ist=0; istlength; ist++, temp+=npi) if(x.inner[i][ist]!=0){ /* Find contribution of current state to structure function */ for(j=0; jGRENZE){ fprintf(fp," %f ",shapes[i].p[j]); for(k=0; k>HSHIFT; /* This expression should agree with the output of gluedecode() */ fprintf(fp," %i",(p&1)?+((p>>1)+1):-((p>>1)+1)); } fprintf(fp,"\n"); } else rest += shapes[i].p[j]; } fprintf(fp," %f other shapes\n\n",rest); } #if 0 /* print out helicity map */ fprintf(fp,"Helicity map:\n"); for(i=0; i < 2*HINDEX; i++){ p=i<