<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    On 11/04/2012 10:33 PM, Erik Marklund wrote:
    <blockquote
      cite="mid:8B613F5F-DE61-486C-9C17-581CDEA83008@xray.bmc.uu.se"
      type="cite"><br>
      <div>
        <div>11 apr 2012 kl. 13.40 skrev Mark Abraham:</div>
        <br class="Apple-interchange-newline">
        <blockquote type="cite">
          <div>&nbsp;</div>
          <div>&nbsp;</div>
          <span>On 11/04/12, <b class="name">Erik Marklund </b>&lt;<a
              moz-do-not-send="true" href="mailto:erikm@xray.bmc.uu.se">erikm@xray.bmc.uu.se</a>&gt;

            wrote:</span>
          <blockquote style="BORDER-LEFT: #00f 1px solid; PADDING-LEFT:
            13px; MARGIN-LEFT: 0px" class="iwcQuote"
            cite="mid:16741CBC-0C4C-446D-8405-0D3B5A4C4938@xray.bmc.uu.se"
            type="cite">
            <table>
              <tbody>
                <tr>
                  <td style="WORD-WRAP: break-word; -webkit-nbsp-mode:
                    space; -webkit-line-break: after-white-space">
                    <p><br>
                    </p>
                    <div>
                      <div>11 apr 2012 kl. 01.38 skrev Mark Abraham:</div>
                      <br class="Apple-interchange-newline">
                      <blockquote type="cite">
                        <div>On 11/04/2012 5:21 AM, David van der Spoel
                          wrote:<br>
                          <blockquote type="cite">On 2012-04-10 21:10,
                            Anton Feenstra wrote:<br>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">On 09/04/12 21:47,
                              Justin A. Lemkul wrote:<br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite"><br>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite"><br>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">Radhakrishna
                                Bettadapura wrote:<br>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">All,<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">I'm trying to
                                  figure out why a pdb input to pdb2gmx
                                  results in<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">coordinates that
                                  are scaled by a factor of 0.1. That
                                  is, if a line in<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">the PDB file
                                  reads<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">ATOM 1 N ALA B 3
                                  -1.221 20.481 12.450 1.00 34.64 N<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">then the
                                  corresponding line in the .gro file
                                  reads<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">3ALA N 1 -0.122
                                  2.048 1.245<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">The culprit
                                  seems to be the following lines in
                                  pdbio.c:<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">static int
                                  read_atom(t_symtab *symtab,<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">char line[],int
                                  type,int natom,<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">t_atoms
                                  *atoms,rvec x[],int chainnum,gmx_bool
                                  bChange)<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">{<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">// do stuff<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">x[natom][XX]=strtod(xc,NULL)*0.1;

                                  /*all coordinates scaled by 0.1...<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">why?*/<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">x[natom][YY]=strtod(yc,NULL)*0.1;<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">x[natom][ZZ]=strtod(zc,NULL)*0.1;<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">//do more stuff<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">}<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">There's also a
                                  line in the output function that
                                  multiplies all<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">incoming
                                  coordinates by 10 before writing it to
                                  output:<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">void
                                  write_pdbfile_indexed(FILE *out,const
                                  char *title,<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">t_atoms
                                  *atoms,rvec x[],<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">int ePBC,matrix
                                  box,char chainid,<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">int model_nr,
                                  atom_id nindex, atom_id index[],<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">gmx_conect
                                  conect, gmx_bool bTerSepChains)<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">{<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">//do stuff...<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">fprintf(out,pdbform,pdbtp[type],(i+1)%100000,nm,resnm,ch,resnr,<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">(resic == '\0')
                                  ? ' ' : resic,<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">10*x[i][XX],10*x[i][YY],10*x[i][ZZ],occup,bfac,atoms-&gt;atom[i].elem);<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">// do more
                                  stuff...<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">}<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">Can someone tell
                                  me why this coordinate scaling occurs?
                                  And why the<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">scale factor is
                                  a single hard-coded number than, say,
                                  something that<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite">depends on the
                                  input?<br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">
                                <blockquote type="cite"><br>
                                </blockquote>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite"><br>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">PDB coordinates
                                are in Angstrom, while .gro coordinates
                                are in nm. Hence<br>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">
                              <blockquote type="cite">the conversion
                                factor of 0.1.<br>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite"><br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">What happened to
                              A2NM and NM2A?<br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">In my (4.0.5, yes
                              that is very old) includes/physics.h I
                              still see:<br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite"><br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">#define A2NM
                              (ANGSTROM/NANO) /* NANO */<br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">#define NM2A
                              (NANO/ANGSTROM) /* 10.0 */<br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite"><br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite">Why aren't these
                              still used for that?<br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite"><br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">
                            <blockquote type="cite"><br>
                            </blockquote>
                          </blockquote>
                          <blockquote type="cite">At some stage macros
                            were removed from the code, even though
                            these seem rather harmless. I agree that it
                            is confusing to hard code these numbers. If
                            we cannot use macro's like this we should
                            probably replace them by<br>
                          </blockquote>
                          <blockquote type="cite">static const real
                            ANGSTROM=1e-10;<br>
                          </blockquote>
                          <blockquote type="cite">static const real
                            NANO=1e-9;<br>
                          </blockquote>
                          <blockquote type="cite"><br>
                          </blockquote>
                          <blockquote type="cite">etc.<br>
                          </blockquote>
                          <blockquote type="cite"><br>
                          </blockquote>
                          <blockquote type="cite">Comments?<br>
                          </blockquote>
                          <br>
                          include/physics.h still has these macros. IMO,
                          hard-coded constants are a greater evil than
                          macros to prevent that, though I expect we
                          will transition to const values at some stage
                          soon.<br>
                        </div>
                      </blockquote>
                      <div><br>
                      </div>
                      <div>But are these the kind of macros we want to
                        avoid? Aren't function-like macros the ones to
                        kill in the first place?</div>
                    </div>
                  </td>
                </tr>
              </tbody>
            </table>
          </blockquote>
          <div>&nbsp;They're taking no parameters, so they're hardly
            function-like. The code fragments above are compiled into
            constants by the pre-processor. A macro that is used as</div>
          <div>&nbsp;</div>
          <div>dist_in_nm&nbsp;= dist_in_angstrom * A2NM;</div>
          <div>&nbsp;</div>
          <div>is much less evil than a macro&nbsp;</div>
          <div>&nbsp;</div>
          <div>dist_in_nm&nbsp;= A2NM(dist_in_angstrom);</div>
        </blockquote>
        <div><br>
        </div>
        <div>My point exactly. I'm just not seeing the harm in using
          macros in cases like these.</div>
      </div>
    </blockquote>
    <br>
    Sorry, I read "aren't" in your first sentence when I first read it
    :-)<br>
    <br>
    Sure, these seem benign until someone uses "A2NM" in some other
    context ("NMA2NMB" anyone?) and gets a bizarre error message
    referring to symbols that don't "exist". You really don't want to
    know what the GROMACS macro C0 (defunct in release-4-6 branch) does
    to parts of Boost. Also, such macro "symbols" are normally not
    available when debugging, and that can make life hard.<br>
    <br>
    Mark<br>
  </body>
</html>