#include "setup.h" #include "tools.h" //// START: Setup routines int Setup_GetFirstIntFromLine(FILE *stream) { // take and return first integer from line in file stream char input[10000], errMsg[1000]; char *pch; if (fgets(input,10000,stream)==NULL) { sprintf(errMsg,"Setup_GetFirstIntFromLine(): end of input file reached\n"); Error_no_free(errMsg); } pch=strtok(input," "); return atoi(pch); } double Setup_GetFirstDoubleFromLine(FILE *stream) { // take and return first double from line in file stream char input[10000], errMsg[1000]; char *pch; if (fgets(input,10000,stream)==NULL) { sprintf(errMsg,"Setup_GetFirstDoubleFromLine(): end of input file reached\n"); Error_no_free(errMsg); } pch=strtok(input," "); return atof(pch); } void Setup_ReadTalpha(char *filename) { // read alpha relaxation time from a file char errMsg[1000]; int i; double throwaway; FILE *fin; printf("d%d size=%d>1 && doDynamics==1 therefore reading t-alpha from %s\n",rank,size,filename); fin=fopen(filename,"r"); if (fin==NULL) { sprintf(errMsg,"Setup__ReadTalpha(): Error opening file %s",filename); // Always test file open Error_no_free(errMsg); } for (i=0; i1 && doDynamics==1) { // read t_alpha from file if running on more than one processor sprintf(ctalphafile,"t_alpha.in"); Setup_ReadTalpha(ctalphafile); } if (doDynamics==1) { printf("d%d ^^^^^^^^^^^^^ in dynamic mode therefore not writing any files other than those for the dynamics of clusters!!!\n",rank); doWriteBonds=doWriteClus=doWriteRaw=doWritePopPerFrame=doBLDistros=doClusBLDistros=doClusBLDeviation=donbDistros=doBondedCen=doClusComp=doPotential=doCoslovich=0; } PRINTINFO=Setup_GetFirstIntFromLine(fin); printf("d%d PRINTINFO %d\n\n",rank,PRINTINFO); fclose(fin); } void Setup_ReadXmolParams(char *filename) { // read parameters file for xmol trajectory char input[10000],errMsg[1000]; double RHO; FILE *readin; readin=fopen(filename,"r"); if (readin==NULL) { sprintf(errMsg,"Setup_ReadXmolParams() : Error opening file %s",filename); // Always test file open Error_no_free(errMsg); } fgets(input,10000,readin); if (fgets(input,10000,readin)==NULL) Error_no_free("Setup_ReadXmolParams(): end of input file reached\n"); sprintf(fXmolName,strtok(input," ")); if (fgets(input,10000,readin)==NULL) Error_no_free("Setup_ReadXmolParams(): end of input file reached\n"); if (fgets(input,10000,readin)==NULL) Error_no_free("Setup_ReadXmolParams(): end of input file reached\n"); N=Setup_GetFirstIntFromLine(readin); NA=Setup_GetFirstIntFromLine(readin); if (NA>N) { Error_no_free("Setup_ReadXmolParams(): NA > N - something wrong in xmol trajectory params file\n"); } else if (NAhalfSidex) { tx-=sidex; } if (ty<-halfSidey) { ty+=sidey; } else if (ty>halfSidey) { ty-=sidey; } if (tz<-halfSidez) { tz+=sidez; } else if (tz>halfSidez) { tz-=sidez; } } x[i]=tx; y[i]=ty; z[i]=tz; // set positions if (PRINTINFO==1) if (i==N-1) printf("d%d f%d part%d %c %.5lg %.5lg %.5lg\n\n",rank,f,i,c,x[i],y[i],z[i]); } } if (cntA!=NA) { // check number of A-species is as expected sprintf(errMsg,"Setup_Readxyz(): NA %d from input frame %d does not match NA %d from params file\n",cntA,e,NA); Error(errMsg); } } void Setup_InitStaticVars() { // Initialize lots of important variables for static TCC algorithm int f, j, k; char errMsg[1000]; double lengthstemp; dosp3=dosp3a=dosp3b=dosp3c=1; dosp4=dosp4a=dosp4b=dosp4c=1; dosp5=dosp5a=dosp5b=dosp5c=1; do6Z=do7K=do8A=do8B=do8K=do9A=do9B=do9K=do10A=do10B=do10K=do10W=1; do11A=do11B=do11C=do11E=do11F=do11W=do12A=do12B=do12D=do12E=do12K=1; do13A=do13B=do13K=doFCC=doHCP=doBCC9=doBCC15=1; msp3a=msp3b=msp3c=initNoStatic; // max size of **sp** arrays in dimension i msp4a=msp4b=msp4c=m6A=initNoStatic; // max size of **sp** arrays in dimension i msp5a=msp5b=msp5c=initNoStatic; // max size of **sp** arrays in dimension i m6Z=m7K=initNoStatic; // max size of m** arrays in dimension i m8A=m8B=m8K=initNoStatic; // max size of m** arrays in dimension i m9A=m9B=m9K=initNoStatic; // max size of m** arrays in dimension i m10A=m10B=m10K=m10W=initNoStatic; // max size of m** arrays in dimension i m11A=m11B=m11C=m11E=m11F=m11W=initNoStatic; // max size of m** arrays in dimension i m12A=m12B=m12D=m12E=m12K=initNoStatic; // max size of m** arrays in dimension i m13A=m13B=m13K=initNoStatic; // max size of m** arrays in dimension i mFCC=mHCP=mBCC_9=mBCC_15=initNoStatic; // max size of **sp** arrays in dimension i msp3=msp3a+msp3b+msp3c; msp4=msp4a+msp4b+msp4c; msp5=msp5a+msp5b+msp5c; mmem_sp3b=mmem_sp3c=mmem_sp4b=mmem_sp4c=mmem_sp5b=mmem_sp5c=initNoClustPerPart; if (USELIST==1) { // if using cell list to detect bond network allocate memory head=malloc((ncells+1)*sizeof(int)); if (head==NULL) { sprintf(errMsg,"Setup_InitStaticVars(): head[] malloc out of memory\n"); Error_no_free(errMsg); } map=malloc((13*ncells+1)*sizeof(int)); if (map==NULL) { sprintf(errMsg,"Setup_InitStaticVars(): map[] malloc out of memory\n"); Error_no_free(errMsg); } llist=malloc((N+1)*sizeof(int)); if (llist==NULL) { sprintf(errMsg,"Setup_InitStaticVars(): llist[] malloc out of memory\n"); Error_no_free(errMsg); } for (j=0; jlengthstemp) lengthstemp=rcutAB; if (rcutBB>lengthstemp) lengthstemp=rcutBB; BLDistroNoBins=(int)ceil(lengthstemp/binWidth); BLDistroNoSamples=0; meanBL=0.0; BLDistro=malloc(BLDistroNoBins*sizeof(int)); if (BLDistro==NULL) { sprintf(errMsg,"Setup_InitStaticVars(): BLDistro[] malloc out of memory\n"); Error_no_free(errMsg); } for (j=0; j ncells_pot || ic <= 0) { printf("d%d i %d r_x %lg r_y %lg r_z %lg side %lg halfSide %lg ic %d ncells_pot %d\n",rank,i-1,x[i-1],y[i-1],z[i-1],side,halfSide,ic,ncells_pot); Error("links_pot(): ic > ncells_pot i.e. particle coord no longer in simulation box!!\n"); } llist_pot[i]=head_pot[ic]; head_pot[ic]=i; } } void Setup_ClusComp() { // zero arrays for cluster compostion analysis int i; for (i=0; i<4; i++) n_distro_sp3[i]=0; for (i=0; i<4; i++) n_distro_sp3a[i]=0; for (i=0; i<5; i++) n_distro_sp3b[i]=0; for (i=0; i<6; i++) n_distro_sp3c[i]=0; for (i=0; i<5; i++) n_distro_sp4[i]=0; for (i=0; i<5; i++) n_distro_sp4a[i]=0; for (i=0; i<6; i++) n_distro_sp4b[i]=0; for (i=0; i<7; i++) n_distro_sp4c[i]=0; for (i=0; i<7; i++) n_distro_6A[i]=0; for (i=0; i<6; i++) n_distro_sp5[i]=0; for (i=0; i<6; i++) n_distro_sp5a[i]=0; for (i=0; i<7; i++) n_distro_sp5b[i]=0; for (i=0; i<8; i++) n_distro_sp5c[i]=0; for (i=0; i<7; i++) n_distro_6Z[i]=0; for (i=0; i<8; i++) n_distro_7K[i]=0; for (i=0; i<9; i++) n_distro_8A[i]=0; for (i=0; i<9; i++) n_distro_8B[i]=0; for (i=0; i<9; i++) n_distro_8K[i]=0; for (i=0; i<10; i++) n_distro_9A[i]=0; for (i=0; i<10; i++) n_distro_9B[i]=0; for (i=0; i<10; i++) n_distro_9K[i]=0; for (i=0; i<11; i++) n_distro_10A[i]=0; for (i=0; i<11; i++) n_distro_10B[i]=0; for (i=0; i<11; i++) n_distro_10K[i]=0; for (i=0; i<11; i++) n_distro_10W[i]=0; for (i=0; i<12; i++) n_distro_11A[i]=0; for (i=0; i<12; i++) n_distro_11B[i]=0; for (i=0; i<12; i++) n_distro_11C[i]=0; for (i=0; i<12; i++) n_distro_11E[i]=0; for (i=0; i<12; i++) n_distro_11F[i]=0; for (i=0; i<12; i++) n_distro_11W[i]=0; for (i=0; i<13; i++) n_distro_12A[i]=0; for (i=0; i<13; i++) n_distro_12B[i]=0; for (i=0; i<13; i++) n_distro_12D[i]=0; for (i=0; i<13; i++) n_distro_12E[i]=0; for (i=0; i<13; i++) n_distro_12K[i]=0; for (i=0; i<14; i++) n_distro_13A[i]=0; for (i=0; i<14; i++) n_distro_13B[i]=0; for (i=0; i<14; i++) n_distro_13K[i]=0; for (i=0; i<14; i++) n_distro_FCC[i]=0; for (i=0; i<14; i++) n_distro_HCP[i]=0; for (i=0; i<10; i++) n_distro_BCC_9[i]=0; for (i=0; i<16; i++) n_distro_BCC_15[i]=0; for (i=0; i<2; i++) { n_distro_cen_9B[i]=0; n_distro_cen_9K[i]=0; n_distro_cen_10B[i]=0; n_distro_cen_10K[i]=0; n_distro_cen_10W[i]=0; n_distro_cen_11A[i]=0; n_distro_cen_11B[i]=0; n_distro_cen_11C[i]=0; n_distro_cen_11W[i]=0; n_distro_cen_12A[i]=0; n_distro_cen_12B[i]=0; n_distro_cen_12K[i]=0; n_distro_cen_13A[i]=0; n_distro_cen_13B[i]=0; n_distro_cen_13K[i]=0; n_distro_cen_FCC[i]=0; n_distro_cen_HCP[i]=0; n_distro_cen_BCC_9[i]=0; n_distro_cen_BCC_15[i]=0; } for (i=0; i<9; i++) n_distro_shell_9B[i]=0; for (i=0; i<9; i++) n_distro_shell_9K[i]=0; for (i=0; i<10; i++) n_distro_shell_10B[i]=0; for (i=0; i<10; i++) n_distro_shell_10K[i]=0; for (i=0; i<10; i++) n_distro_shell_10W[i]=0; for (i=0; i<11; i++) n_distro_shell_11A[i]=0; for (i=0; i<11; i++) n_distro_shell_11B[i]=0; for (i=0; i<11; i++) n_distro_shell_11C[i]=0; for (i=0; i<11; i++) n_distro_shell_11W[i]=0; for (i=0; i<12; i++) n_distro_shell_12A[i]=0; for (i=0; i<12; i++) n_distro_shell_12B[i]=0; for (i=0; i<12; i++) n_distro_shell_12K[i]=0; for (i=0; i<13; i++) n_distro_shell_13A[i]=0; for (i=0; i<13; i++) n_distro_shell_13B[i]=0; for (i=0; i<13; i++) n_distro_shell_13K[i]=0; for (i=0; i<13; i++) n_distro_shell_FCC[i]=0; for (i=0; i<13; i++) n_distro_shell_HCP[i]=0; for (i=0; i<9; i++) n_distro_shell_BCC_9[i]=0; for (i=0; i<15; i++) n_distro_shell_BCC_15[i]=0; nAsp3=nAsp3a=nAsp3b=nAsp3c=0; nAsp4=nAsp4a=nAsp4b=nAsp4c=nA6A=0; nAsp5=nAsp5a=nAsp5b=nAsp5c=0; nA6Z=nA7K=0; nA8A=nA8B=nA8K=0; nA9A=nA9B=nA9K=0; nA10A=nA10B=nA10K=nA10W=0; nA11A=nA11B=nA11C=nA11E=nA11F=nA11W=0; nA12A=nA12B=nA12D=nA12E=nA12K=0; nA13A=nA13B=nA13K=0; nAFCC=nAHCP=nABCC_9=nABCC_15=0; nA_cen_9B=nA_cen_9K=0; nA_cen_10B=nA_cen_10K=nA_cen_10W=0; nA_cen_11A=nA_cen_11B=nA_cen_11C=nA_cen_11W=0; nA_cen_12A=nA_cen_12B=nA_cen_12K=0; nA_cen_13A=nA_cen_13B=nA_cen_13K=0; nA_cen_FCC=nA_cen_HCP=nA_cen_BCC_9=nA_cen_BCC_15=0; nA_shell_9B=nA_shell_9K=0; nA_shell_10B=nA_shell_10K=nA_shell_10W=0; nA_shell_11A=nA_shell_11B=nA_shell_11C=nA_shell_11W=0; nA_shell_12A=nA_shell_12B=nA_shell_12K=0; nA_shell_13A=nA_shell_13B=nA_shell_13K=0; nA_shell_FCC=nA_shell_HCP=nA_shell_BCC_9=nA_shell_BCC_15=0; nBsp3=nBsp3a=nBsp3b=nBsp3c=0; nBsp4=nBsp4a=nBsp4b=nBsp4c=nB6A=0; nBsp5=nBsp5a=nBsp5b=nBsp5c=0; nB6Z=nB7K=0; nB8A=nB8B=nB8K=0; nB9A=nB9B=nB9K=0; nB10A=nB10B=nB10K=nB10W=0; nB11A=nB11B=nB11C=nB11E=nB11F=nB11W=0; nB12A=nB12B=nB12D=nB12E=nB12K=0; nB13A=nB13B=nB13K=0; nBFCC=nBHCP=nBBCC_9=nBBCC_15=0; nB_cen_9B=nB_cen_9K=0; nB_cen_10B=nB_cen_10K=nB_cen_10W=0; nB_cen_11A=nB_cen_11B=nB_cen_11C=nB_cen_11W=0; nB_cen_12A=nB_cen_12B=nB_cen_12K=0; nB_cen_13A=nB_cen_13B=nB_cen_13K=0; nB_cen_FCC=nB_cen_HCP=nB_cen_BCC_9=nB_cen_BCC_15=0; nB_shell_9B=nB_shell_9K=0; nB_shell_10B=nB_shell_10K=nB_shell_10W=0; nB_shell_11A=nB_shell_11B=nB_shell_11C=nB_shell_11W=0; nB_shell_12A=nB_shell_12B=nB_shell_12K=0; nB_shell_13A=nB_shell_13B=nB_shell_13K=0; nB_shell_FCC=nB_shell_HCP=nB_shell_BCC_9=nB_shell_BCC_15=0; } void Setup_InitgsblVars(char *filename) { // Initialize ground state bond length deviation distribution arrays int i; char errMsg[1000]; FILE *fin; printf("d%d reading bond length parameters from %s\n",rank,filename); fin=fopen(filename,"r"); if (fin==NULL) { sprintf(errMsg,"Setup_InitgsblVars() : Error opening file %s",filename); // Always test file open Error_no_free(errMsg); } gsbl_sp3=Setup_GetFirstDoubleFromLine(fin); gsbl_sp3a=Setup_GetFirstDoubleFromLine(fin); gsbl_sp3b=Setup_GetFirstDoubleFromLine(fin); gsbl_sp3c=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_sp3 %lg gsbl_sp3a %lg gsbl_sp3b %lg gsbl_sp3c %lg\n",rank,gsbl_sp3,gsbl_sp3a,gsbl_sp3b,gsbl_sp3c); gsbl_sp4=Setup_GetFirstDoubleFromLine(fin); gsbl_sp4a=Setup_GetFirstDoubleFromLine(fin); gsbl_sp4b=Setup_GetFirstDoubleFromLine(fin); gsbl_sp4c=Setup_GetFirstDoubleFromLine(fin); gsbl_6A=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_sp4 %lg gsbl_sp4a %lg gsbl_sp4b %lg gsbl_sp4c %lg gsbl_6A %lg\n",rank,gsbl_sp4,gsbl_sp4a,gsbl_sp4b,gsbl_sp4c,gsbl_6A); gsbl_sp5=Setup_GetFirstDoubleFromLine(fin); gsbl_sp5a=Setup_GetFirstDoubleFromLine(fin); gsbl_sp5b=Setup_GetFirstDoubleFromLine(fin); gsbl_sp5c=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_sp5 %lg gsbl_sp5a %lg gsbl_sp5b %lg gsbl_sp5c %lg\n",rank,gsbl_sp5,gsbl_sp5a,gsbl_sp5b,gsbl_sp5c); gsbl_6Z=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_6Z %lg\n",rank,gsbl_6Z); gsbl_7K=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_7K %lg\n",rank,gsbl_7K); gsbl_8A=Setup_GetFirstDoubleFromLine(fin); gsbl_8B=Setup_GetFirstDoubleFromLine(fin); gsbl_8K=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_8A %lg gsbl_8B %lg gsbl_8K %lg\n",rank,gsbl_8A,gsbl_8B,gsbl_8K); gsbl_9A=Setup_GetFirstDoubleFromLine(fin); gsbl_9B=Setup_GetFirstDoubleFromLine(fin); gsbl_9K=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_9A %lg gsbl_9B %lg gsbl_9K %lg\n",rank,gsbl_9A,gsbl_9B,gsbl_9K); gsbl_10A=Setup_GetFirstDoubleFromLine(fin); gsbl_10B=Setup_GetFirstDoubleFromLine(fin); gsbl_10K=Setup_GetFirstDoubleFromLine(fin); gsbl_10W=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_10A %lg gsbl_10B %lg gsbl_10K %lg gsbl_10W %lg\n",rank,gsbl_10A,gsbl_10B,gsbl_10K,gsbl_10W); gsbl_11A=Setup_GetFirstDoubleFromLine(fin); gsbl_11B=Setup_GetFirstDoubleFromLine(fin); gsbl_11C=Setup_GetFirstDoubleFromLine(fin); gsbl_11E=Setup_GetFirstDoubleFromLine(fin); gsbl_11F=Setup_GetFirstDoubleFromLine(fin); gsbl_11W=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_11A %lg gsbl_11B %lg gsbl_11C %lg gsbl_11E %lg gsbl_11F %lg gsbl_11W %lg\n",rank,gsbl_11A,gsbl_11B,gsbl_11C,gsbl_11E,gsbl_11F,gsbl_11W); gsbl_12A=Setup_GetFirstDoubleFromLine(fin); gsbl_12B=Setup_GetFirstDoubleFromLine(fin); gsbl_12D=Setup_GetFirstDoubleFromLine(fin); gsbl_12E=Setup_GetFirstDoubleFromLine(fin); gsbl_12K=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_12A %lg gsbl_12B %lg gsbl_12D %lg gsbl_12E %lg gsbl_12K %lg\n",rank,gsbl_12A,gsbl_12B,gsbl_12D,gsbl_12E,gsbl_12K); gsbl_13A=Setup_GetFirstDoubleFromLine(fin); gsbl_13B=Setup_GetFirstDoubleFromLine(fin); gsbl_13K=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_13A %lg gsbl_13B %lg gsbl_13K %lg\n",rank,gsbl_13A,gsbl_13B,gsbl_13K); gsbl_FCC=Setup_GetFirstDoubleFromLine(fin); gsbl_HCP=Setup_GetFirstDoubleFromLine(fin); gsbl_BCC_9=Setup_GetFirstDoubleFromLine(fin); gsbl_BCC_15=Setup_GetFirstDoubleFromLine(fin); printf("d%d gsbl_FCC %lg gsbl_HCP %lg gsbl_BCC_9 %lg gsbl_BCC_15 %lg\n\n",rank,gsbl_FCC,gsbl_HCP,gsbl_BCC_9,gsbl_BCC_15); fclose(fin); bl_mom_sp3 = malloc(msp3*sizeof(double)); if (bl_mom_sp3==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp3[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp3a = malloc(msp3a*sizeof(double)); if (bl_mom_sp3a==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp3a[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp3b = malloc(msp3b*sizeof(double)); if (bl_mom_sp3b==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp3b[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp3c = malloc(msp3c*sizeof(double)); if (bl_mom_sp3c==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp3c[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp4 = malloc(msp4*sizeof(double)); if (bl_mom_sp4==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp4[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp4a = malloc(msp4a*sizeof(double)); if (bl_mom_sp4a==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp4a[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp4b = malloc(msp4b*sizeof(double)); if (bl_mom_sp4b==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp4b[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp4c = malloc(msp4c*sizeof(double)); if (bl_mom_sp4c==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp4c[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_6A = malloc(m6A*sizeof(double)); if (bl_mom_6A==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_6A[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp5 = malloc(msp5*sizeof(double)); if (bl_mom_sp5==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp5[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp5a = malloc(msp5a*sizeof(double)); if (bl_mom_sp5a==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp5a[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp5b = malloc(msp5b*sizeof(double)); if (bl_mom_sp5b==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp5b[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_sp5c = malloc(msp5c*sizeof(double)); if (bl_mom_sp5c==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_sp5c[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_6Z = malloc(m6Z*sizeof(double)); if (bl_mom_6Z==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_6Z[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_7K = malloc(m7K*sizeof(double)); if (bl_mom_7K==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_7K[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_8A = malloc(m8A*sizeof(double)); if (bl_mom_8A==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_8A[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_8B = malloc(m8B*sizeof(double)); if (bl_mom_8B==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_8B[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_8K = malloc(m8K*sizeof(double)); if (bl_mom_8K==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_8K[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_9A = malloc(m9A*sizeof(double)); if (bl_mom_9A==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_9A[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_9B = malloc(m9B*sizeof(double)); if (bl_mom_9B==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_9B[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_9K = malloc(m9K*sizeof(double)); if (bl_mom_9K==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_9K[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_10A = malloc(m10A*sizeof(double)); if (bl_mom_10A==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_10A[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_10B = malloc(m10B*sizeof(double)); if (bl_mom_10B==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_10B[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_10K = malloc(m10K*sizeof(double)); if (bl_mom_10K==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_10K[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_10W = malloc(m10W*sizeof(double)); if (bl_mom_10W==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_10W[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_11A = malloc(m11A*sizeof(double)); if (bl_mom_11A==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_11A[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_11B = malloc(m11B*sizeof(double)); if (bl_mom_11B==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_11B[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_11C = malloc(m11C*sizeof(double)); if (bl_mom_11C==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_11C[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_11E = malloc(m11E*sizeof(double)); if (bl_mom_11E==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_11E[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_11F = malloc(m11F*sizeof(double)); if (bl_mom_11F==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_11F[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_11W = malloc(m11W*sizeof(double)); if (bl_mom_11W==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_11W[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_12A = malloc(m12A*sizeof(double)); if (bl_mom_12A==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_12A[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_12B = malloc(m12B*sizeof(double)); if (bl_mom_12B==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_12B[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_12D = malloc(m12D*sizeof(double)); if (bl_mom_12D==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_12D[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_12E = malloc(m12E*sizeof(double)); if (bl_mom_12E==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_12E[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_12K = malloc(m12K*sizeof(double)); if (bl_mom_12K==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_12K[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_13A = malloc(m13A*sizeof(double)); if (bl_mom_13A==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_13A[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_13B = malloc(m13B*sizeof(double)); if (bl_mom_13B==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_13B[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_13K = malloc(m13K*sizeof(double)); if (bl_mom_13K==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_13K[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_FCC = malloc(mFCC*sizeof(double)); if (bl_mom_FCC==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_FCC[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_HCP = malloc(mHCP*sizeof(double)); if (bl_mom_HCP==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_HCP[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_BCC_9 = malloc(mBCC_9*sizeof(double)); if (bl_mom_BCC_9==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_BCC_9[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } bl_mom_BCC_15 = malloc(mBCC_15*sizeof(double)); if (bl_mom_BCC_15==NULL) { sprintf(errMsg,"Setup_Ibl_mom_itgsblVars(): bl_mom_BCC_15[] malloc out of memory\bl_mom_"); Error_no_free(errMsg); } for (i=0; i0) { dyn_msp3=initNoDynamicClusters; dosp3=1; dosp3a=1; dosp3b=1; dosp3c=1; } dyn_msp3a=Setup_GetFirstIntFromLine(fin); if (dyn_msp3a>0) { dyn_msp3a=initNoDynamicClusters; dosp3=1; dosp3a=1; dosp3b=1; dosp3c=1; } dyn_msp3b=Setup_GetFirstIntFromLine(fin); if (dyn_msp3b>0) { dyn_msp3b=initNoDynamicClusters; dosp3=1; dosp3a=1; dosp3b=1; dosp3c=1; } dyn_msp3c=Setup_GetFirstIntFromLine(fin); if (dyn_msp3c>0) { dyn_msp3c=initNoDynamicClusters; dosp3=1; dosp3a=1; dosp3b=1; dosp3c=1; } printf("d%d dyn_msp3 %d dyn_msp3a %d dyn_msp3b %d dyn_msp3c %d\n",rank,dyn_msp3,dyn_msp3a,dyn_msp3b,dyn_msp3c); dyn_msp4=Setup_GetFirstIntFromLine(fin); if (dyn_msp4>0) { dyn_msp4=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4a=1; dosp4b=1; dosp4c=1; } dyn_msp4a=Setup_GetFirstIntFromLine(fin); if (dyn_msp4a>0) { dyn_msp4a=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4a=1; dosp4b=1; dosp4c=1; } dyn_msp4b=Setup_GetFirstIntFromLine(fin); if (dyn_msp4b>0) { dyn_msp4b=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4a=1; dosp4b=1; dosp4c=1; } dyn_m6A=Setup_GetFirstIntFromLine(fin); if (dyn_m6A>0) { dyn_m6A=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4a=1; dosp4b=1; dosp4c=1; } printf("d%d dyn_msp4 %d dyn_msp4a %d dyn_msp4b %d dyn_m6A %d\n",rank,dyn_msp4,dyn_msp4a,dyn_msp4b,dyn_m6A); dyn_msp5=Setup_GetFirstIntFromLine(fin); if (dyn_msp5>0) { dyn_msp5=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5a=1; dosp5b=1; dosp5c=1; } dyn_msp5a=Setup_GetFirstIntFromLine(fin); if (dyn_msp5a>0) { dyn_msp5a=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5a=1; dosp5b=1; dosp5c=1; } dyn_msp5b=Setup_GetFirstIntFromLine(fin); if (dyn_msp5b>0) { dyn_msp5b=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5a=1; dosp5b=1; dosp5c=1; } dyn_msp5c=Setup_GetFirstIntFromLine(fin); if (dyn_msp5c>0) { dyn_msp5c=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5a=1; dosp5b=1; dosp5c=1; } printf("d%d dyn_msp5 %d dyn_msp5a %d dyn_msp5b %d dyn_msp5c %d\n",rank,dyn_msp5,dyn_msp5a,dyn_msp5b,dyn_msp5c); dyn_m6Z=Setup_GetFirstIntFromLine(fin); if (dyn_m6Z>0) { dyn_m6Z=initNoDynamicClusters; dosp3=1; dosp3c=1; do6Z=1; } printf("d%d dyn_m6Z %d\n",rank,dyn_m6Z); dyn_m7K=Setup_GetFirstIntFromLine(fin); if (dyn_m7K>0) { dyn_m7K=initNoDynamicClusters; dosp3=1; dosp3c=1; do7K=1; } printf("d%d dyn_m7K %d\n",rank,dyn_m7K); dyn_m8A=Setup_GetFirstIntFromLine(fin); if (dyn_m8A>0) { dyn_m8A=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5b=1; dosp5c=1; do8A=1; } dyn_m8B=Setup_GetFirstIntFromLine(fin); if (dyn_m8B>0) { dyn_m8B=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do8B=1; } dyn_m8K=Setup_GetFirstIntFromLine(fin); if (dyn_m8K>0) { dyn_m8K=initNoDynamicClusters; dosp3=1; dosp3c=1; do8K=1; } printf("d%d dyn_m8A %d dyn_m8B %d dyn_m8K %d\n",rank,dyn_m8A,dyn_m8B,dyn_m8K); dyn_m9A=Setup_GetFirstIntFromLine(fin); if (dyn_m9A>0) { dyn_m9A=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4b=1; do9A=1; } dyn_m9B=Setup_GetFirstIntFromLine(fin); if (dyn_m9B>0) { dyn_m9B=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do9B=1; } dyn_m9K=Setup_GetFirstIntFromLine(fin); if (dyn_m9K>0) { dyn_m9K=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4c=1; do9K=1; } printf("d%d dyn_m9A %d dyn_m9B %d dyn_m9K %d\n",rank,dyn_m9A,dyn_m9B,dyn_m9K); dyn_m10A=Setup_GetFirstIntFromLine(fin); if (dyn_m10A>0) { dyn_m10A=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4b=1; do10A=1; } dyn_m10B=Setup_GetFirstIntFromLine(fin); if (dyn_m10B>0) { dyn_m10B=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do9B=1; do10B=1; } dyn_m10K=Setup_GetFirstIntFromLine(fin); if (dyn_m10K>0) { dyn_m10K=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do9K=1; do10K=1; } dyn_m10W=Setup_GetFirstIntFromLine(fin); if (dyn_m10W>0) { dyn_m10W=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5b=1; do10W=1; } printf("d%d dyn_m10A %d dyn_m10B %d dyn_m10K %d dyn_m10W %d\n",rank,dyn_m10A,dyn_m10B,dyn_m10K,dyn_m10W); dyn_m11A=Setup_GetFirstIntFromLine(fin); if (dyn_m11A>0) { dyn_m11A=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4c=1; do11A=1; } dyn_m11B=Setup_GetFirstIntFromLine(fin); if (dyn_m11B>0) { dyn_m11B=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do9B=1; do11B=1; } dyn_m11C=Setup_GetFirstIntFromLine(fin); if (dyn_m11C>0) { dyn_m11C=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do11C=1; } dyn_m11E=Setup_GetFirstIntFromLine(fin); if (dyn_m11E>0) { dyn_m11E=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do9B=1; do11E=1; } dyn_m11F=Setup_GetFirstIntFromLine(fin); if (dyn_m11F>0) { dyn_m11F=initNoDynamicClusters; dosp3=1; dosp3c=1; dosp4=1; dosp4c=1; do11F=1; } dyn_m11W=Setup_GetFirstIntFromLine(fin); if (dyn_m11W>0) { dyn_m11W=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do9B=1; do10B=1; do11W=1; } printf("d%d dyn_m11A %d dyn_m11B %d dyn_m11C %d dyn_m11E %d dyn_m11F %d dyn_m11W %d\n",rank,dyn_m11A,dyn_m11B,dyn_m11C,dyn_m11E,dyn_m11F,dyn_m11W); dyn_m12A=Setup_GetFirstIntFromLine(fin); if (dyn_m12A>0) { dyn_m12A=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do11C=1; do12A=1; } dyn_m12B=Setup_GetFirstIntFromLine(fin); if (dyn_m12B>0) { dyn_m12B=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do12B=1; } dyn_m12D=Setup_GetFirstIntFromLine(fin); if (dyn_m12D>0) { dyn_m12D=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do9B=1; do11E=1; do12D=1; } dyn_m12E=Setup_GetFirstIntFromLine(fin); if (dyn_m12E>0) { dyn_m12E=initNoDynamicClusters; dosp3=1; dosp3c=1; dosp4=1; dosp4c=1; do11F=1; do12E=1; } dyn_m12K=Setup_GetFirstIntFromLine(fin); if (dyn_m12K>0) { dyn_m12K=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4c=1; do11A=1; do12K=1; } printf("d%d dyn_m12A %d dyn_m12B %d dyn_m12D %d dyn_m12E %d dyn_m12K %d\n",rank,dyn_m12A,dyn_m12B,dyn_m12D,dyn_m12E,dyn_m12K); dyn_m13A=Setup_GetFirstIntFromLine(fin); if (dyn_m13A>0) { dyn_m13A=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do12B=1; do13A=1;} dyn_m13B=Setup_GetFirstIntFromLine(fin); if (dyn_m13B>0) { dyn_m13B=initNoDynamicClusters; dosp3=1; dosp4=1; dosp5=1; dosp5c=1; do13B=1; } dyn_m13K=Setup_GetFirstIntFromLine(fin); if (dyn_m13K>0) { dyn_m13K=initNoDynamicClusters; dosp3=1; dosp3c=1; dosp4=1; dosp4c=1; do11F=1; do13K=1; } printf("d%d dyn_m13A %d dyn_m13B %d dyn_m13K %d\n",rank,dyn_m13A,dyn_m13B,dyn_m13K); dyn_mFCC=Setup_GetFirstIntFromLine(fin); if (dyn_mFCC>0) { dyn_mFCC=initNoDynamicClusters; dosp3=1; dosp3b=1; dosp3c=1; doFCC=1; } dyn_mHCP=Setup_GetFirstIntFromLine(fin); if (dyn_mHCP>0) { dyn_mHCP=initNoDynamicClusters; dosp3=1; dosp3c=1; doHCP=1; } dyn_mBCC_9=Setup_GetFirstIntFromLine(fin); if (dyn_mBCC_9>0) { dyn_mBCC_9=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4b=1; dosp4c=1; doBCC9=1; } dyn_mBCC_15=Setup_GetFirstIntFromLine(fin); if (dyn_mBCC_15>0) { dyn_mBCC_15=initNoDynamicClusters; dosp3=1; dosp4=1; dosp4c=1; doBCC15=1; } printf("d%d dyn_mFCC %d dyn_mHCP %d dyn_mBCC_9 %d dyn_mBCC_15 %d\n\n",rank,dyn_mFCC,dyn_mHCP,dyn_mBCC_9,dyn_mBCC_15); printf("d%d dosp3 %d dosp3a %d dosp3b %d dosp3c %d\n",rank,dosp3,dosp3a,dosp3b,dosp3c); printf("d%d dosp4 %d dosp4a %d dosp4b %d dosp4c %d\n",rank,dosp4,dosp4a,dosp4b,dosp4c); printf("d%d dosp5 %d dosp5a %d dosp5b %d dosp5c %d\n",rank,dosp5,dosp5a,dosp5b,dosp5c); printf("d%d do6Z %d do7K %d do8A %d do8B %d do8K %d do9A %d do9B %d do9K %d do10A %d do10B %d do10K %d do10W %d\n",rank,do6Z,do7K,do8A,do8B,do8K,do9A,do9B,do9K,do10A,do10B,do10K,do10W); printf("d%d do11A %d do11B %d do11C %d do11E %d do11F %d do11W %d do12A %d do12B %d do12D %d do12E %d do12K %d\n",rank,do11A,do11B,do11C,do11E,do11F,do11W,do12A,do12B,do12D,do12E,do12K); printf("d%d do13A %d do13B %d do13K %d doFCC %d doHCP %d doBCC9 %d doBCC15 %d\n\n",rank,do13A,do13B,do13K,doFCC,doHCP,doBCC9,doBCC15); fclose(fin); dyn_nsp3=dyn_nsp3a=dyn_nsp3b=dyn_nsp3c=0; dyn_nsp4=dyn_nsp4a=dyn_nsp4b=dyn_n6A=0; dyn_nsp5=dyn_nsp5a=dyn_nsp5b=dyn_nsp5c=0; dyn_n6Z=dyn_n7K=0; dyn_n8A=dyn_n8B=dyn_n8K=0; dyn_n9A=dyn_n9B=dyn_n9K=0; dyn_n10A=dyn_n10B=dyn_n10K=dyn_n10W=0; dyn_n11A=dyn_n11B=dyn_n11C=dyn_n11E=dyn_n11F=dyn_n11W=0; dyn_n12A=dyn_n12B=dyn_n12D=dyn_n12E=dyn_n12K=0; dyn_n13A=dyn_n13B=dyn_n13K=0; dyn_nFCC=dyn_nHCP=dyn_nBCC_9=dyn_nBCC_15=0; dyn_esp3=dyn_esp3a=dyn_esp3b=dyn_esp3c=0; dyn_esp4=dyn_esp4a=dyn_esp4b=dyn_e6A=0; dyn_esp5=dyn_esp5a=dyn_esp5b=dyn_esp5c=0; dyn_e6Z=dyn_e7K=0; dyn_e8A=dyn_e8B=dyn_e8K=0; dyn_e9A=dyn_e9B=dyn_e9K=0; dyn_e10A=dyn_e10B=dyn_e10K=dyn_e10W=0; dyn_e11A=dyn_e11B=dyn_e11C=dyn_e11E=dyn_e11F=dyn_e11W=0; dyn_e12A=dyn_e12B=dyn_e12D=dyn_e12E=dyn_e12K=0; dyn_e13A=dyn_e13B=dyn_e13K=0; dyn_eFCC=dyn_eHCP=dyn_eBCC_9=dyn_eBCC_15=0; // dynamic clusters if (dyn_msp3!=-1) { dyn_sp3 = malloc(dyn_msp3*sizeof(int *)); if (dyn_sp3==NULL) { sprintf(errMsg,"Setup_InitDynamicVars(): dyn_sp3[] malloc out of memory\n"); Error_no_free(errMsg); } for (j=0; j