Beispiel #1
0
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);
}
Beispiel #2
0
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);
}