static void dump_h_db(const char *fn,int nah,t_hackblock *ah) { FILE *fp; char buf[STRLEN],nname[STRLEN]; int i,j,k; sprintf(buf,"%s_new.hdb",fn); fp = gmx_fio_fopen(buf,"w"); for(i=0; (i<nah); i++) { fprintf(fp,"%-8s%-8d\n",ah[i].name,ah[i].nhack); for(k=0; (k<ah[i].nhack); k++) { strcpy(nname,ah[i].hack[k].a[0]); nname[0] = 'H'; print_ab(fp,&ah[i].hack[k],nname); } } gmx_fio_fclose(fp); }
static void print_ter_db(char *ff,char C,int nb,t_hackblock tb[], gpp_atomtype_t atype) { FILE *out; int i,j,k,bt,nrepl,nadd,ndel; char buf[STRLEN],nname[STRLEN]; sprintf(buf,"%s-%c_new.tdb",ff,C); out = gmx_fio_fopen(buf,"w"); for(i=0; (i<nb); i++) { fprintf(out,"[ %s ]\n",tb[i].name); /* first count: */ nrepl=0; nadd=0; ndel=0; for(j=0; j<tb[i].nhack; j++) if ( tb[i].hack[j].oname!=NULL && tb[i].hack[j].nname!=NULL ) nrepl++; else if ( tb[i].hack[j].oname==NULL && tb[i].hack[j].nname!=NULL ) nadd++; else if ( tb[i].hack[j].oname!=NULL && tb[i].hack[j].nname==NULL ) ndel++; else if ( tb[i].hack[j].oname==NULL && tb[i].hack[j].nname==NULL ) gmx_fatal(FARGS,"invalid hack (%s) in termini database",tb[i].name); if (nrepl) { fprintf(out,"[ %s ]\n",kw_names[ekwRepl-ebtsNR-1]); for(j=0; j<tb[i].nhack; j++) if ( tb[i].hack[j].oname!=NULL && tb[i].hack[j].nname!=NULL ) { fprintf(out,"%s\t",tb[i].hack[j].oname); print_atom(out,tb[i].hack[j].atom,atype,tb[i].hack[j].nname); } } if (nadd) { fprintf(out,"[ %s ]\n",kw_names[ekwAdd-ebtsNR-1]); for(j=0; j<tb[i].nhack; j++) if ( tb[i].hack[j].oname==NULL && tb[i].hack[j].nname!=NULL ) { print_ab(out,&(tb[i].hack[j]),tb[i].hack[j].nname); print_atom(out,tb[i].hack[j].atom,atype,tb[i].hack[j].nname); } } if (ndel) { fprintf(out,"[ %s ]\n",kw_names[ekwDel-ebtsNR-1]); for(j=0; j<tb[i].nhack; j++) if ( tb[i].hack[j].oname!=NULL && tb[i].hack[j].nname==NULL ) fprintf(out,"%s\n",tb[i].hack[j].oname); } for(bt=0; bt<ebtsNR; bt++) if (tb[i].rb[bt].nb) { fprintf(out,"[ %s ]\n", btsNames[bt]); for(j=0; j<tb[i].rb[bt].nb; j++) { for(k=0; k<btsNiatoms[bt]; k++) fprintf(out,"%s%s",k?"\t":"",tb[i].rb[bt].b[j].a[k]); if ( tb[i].rb[bt].b[j].s ) fprintf(out,"\t%s",tb[i].rb[bt].b[j].s); fprintf(out,"\n"); } } fprintf(out,"\n"); } gmx_fio_fclose(out); }