UNRES-Dock ctest
authorCezary Czaplewski <czarek@chem.univ.gda.pl>
Mon, 9 Mar 2020 00:34:19 +0000 (01:34 +0100)
committerCezary Czaplewski <czarek@chem.univ.gda.pl>
Mon, 9 Mar 2020 00:34:19 +0000 (01:34 +0100)
12 files changed:
ctest/dock/2WFU_A.pdb [new file with mode: 0644]
ctest/dock/2WFU_B.pdb [new file with mode: 0644]
ctest/dock/2WFU_dock.inp [new file with mode: 0644]
ctest/dock/cluster.inp [new file with mode: 0644]
ctest/dock/cluster_wham_check.sh [new file with mode: 0755]
ctest/dock/mremd_check.sh [new file with mode: 0755]
ctest/dock/test_mpi_DOCK.sh [new file with mode: 0755]
ctest/dock/wham.inp [new file with mode: 0644]
ctest/dock/wham_check.sh [new file with mode: 0755]
source/unres-dock/CMakeLists.txt
source/unres-dock/generator.f [new file with mode: 0644]
source/unres-dock/generator_v13b.F [deleted file]

diff --git a/ctest/dock/2WFU_A.pdb b/ctest/dock/2WFU_A.pdb
new file mode 100644 (file)
index 0000000..5c20de0
--- /dev/null
@@ -0,0 +1,161 @@
+ATOM      1  N   GLY A   1      18.230   4.903   9.716  1.00 28.23           N  
+ATOM      2  CA  GLY A   1      16.795   5.303   9.674  1.00 26.95           C  
+ATOM      3  C   GLY A   1      15.903   4.106   9.901  1.00 26.34           C  
+ATOM      4  O   GLY A   1      16.336   3.112  10.496  1.00 25.78           O  
+ATOM      5  N   VAL A   2      14.648   4.221   9.474  1.00 25.88           N  
+ATOM      6  CA  VAL A   2      13.627   3.183   9.727  1.00 25.44           C  
+ATOM      7  C   VAL A   2      13.981   1.814   9.147  1.00 25.29           C  
+ATOM      8  O   VAL A   2      13.737   0.794   9.782  1.00 24.50           O  
+ATOM      9  CB  VAL A   2      12.180   3.666   9.357  1.00 25.92           C  
+ATOM     10  CG1 VAL A   2      11.954   3.744   7.847  1.00 26.79           C  
+ATOM     11  CG2 VAL A   2      11.074   2.815  10.029  1.00 26.46           C  
+ATOM     12  N   VAL A   3      14.567   1.792   7.942  1.00 25.41           N  
+ATOM     13  CA  VAL A   3      15.020   0.524   7.365  1.00 24.91           C  
+ATOM     14  C   VAL A   3      16.105  -0.118   8.242  1.00 24.49           C  
+ATOM     15  O   VAL A   3      16.056  -1.305   8.572  1.00 23.75           O  
+ATOM     16  CB  VAL A   3      15.492   0.705   5.885  1.00 25.10           C  
+ATOM     17  CG1 VAL A   3      15.909  -0.638   5.270  1.00 25.30           C  
+ATOM     18  CG2 VAL A   3      14.381   1.329   5.065  1.00 25.09           C  
+ATOM     19  N   ASP A   4      17.098   0.654   8.646  1.00 24.84           N  
+ATOM     20  CA  ASP A   4      18.079   0.067   9.522  1.00 25.25           C  
+ATOM     21  C   ASP A   4      17.462  -0.448  10.831  1.00 24.23           C  
+ATOM     22  O   ASP A   4      17.802  -1.539  11.276  1.00 24.33           O  
+ATOM     23  CB  ASP A   4      19.206   1.037   9.849  1.00 25.95           C  
+ATOM     24  CG  ASP A   4      20.336   0.345  10.555  1.00 30.13           C  
+ATOM     25  OD1 ASP A   4      21.131  -0.360   9.884  1.00 34.07           O  
+ATOM     26  OD2 ASP A   4      20.411   0.485  11.791  1.00 35.94           O  
+ATOM     27  N   SER A   5      16.551   0.318  11.425  1.00 23.38           N  
+ATOM     28  CA  SER A   5      16.018  -0.068  12.733  1.00 23.67           C  
+ATOM     29  C   SER A   5      14.966  -1.197  12.715  1.00 23.52           C  
+ATOM     30  O   SER A   5      14.885  -1.961  13.689  1.00 23.70           O  
+ATOM     31  CB  SER A   5      15.445   1.161  13.459  1.00 23.38           C  
+ATOM     32  OG  SER A   5      16.511   2.027  13.882  1.00 24.84           O  
+ATOM     33  N   CYS A   6      14.151  -1.260  11.649  1.00 23.25           N  
+ATOM     34  CA  CYS A   6      12.933  -2.098  11.605  1.00 23.79           C  
+ATOM     35  C   CYS A   6      12.934  -3.155  10.494  1.00 23.94           C  
+ATOM     36  O   CYS A   6      12.054  -4.026  10.480  1.00 22.81           O  
+ATOM     37  CB  CYS A   6      11.683  -1.207  11.500  1.00 24.12           C  
+ATOM     38  SG  CYS A   6      11.463  -0.110  12.949  1.00 25.12           S  
+ATOM     39  N   CYS A   7      13.907  -3.079   9.577  1.00 23.80           N  
+ATOM     40  CA  CYS A   7      14.064  -4.074   8.484  1.00 24.46           C  
+ATOM     41  C   CYS A   7      15.332  -4.873   8.649  1.00 24.96           C  
+ATOM     42  O   CYS A   7      15.325  -6.104   8.508  1.00 25.76           O  
+ATOM     43  CB  CYS A   7      14.077  -3.378   7.109  1.00 24.78           C  
+ATOM     44  SG  CYS A   7      14.603  -4.366   5.689  1.00 26.21           S  
+ATOM     45  N   ARG A   8      16.447  -4.164   8.849  1.00 24.83           N  
+ATOM     46  CA  ARG A   8      17.745  -4.827   9.109  1.00 25.46           C  
+ATOM     47  C   ARG A   8      17.853  -5.417  10.519  1.00 24.81           C  
+ATOM     48  O   ARG A   8      18.723  -6.266  10.806  1.00 24.82           O  
+ATOM     49  CB  ARG A   8      18.894  -3.871   8.797  1.00 25.20           C  
+ATOM     50  CG  ARG A   8      18.884  -3.448   7.341  1.00 25.55           C  
+ATOM     51  CD  ARG A   8      19.916  -2.396   6.986  1.00 27.54           C  
+ATOM     52  NE  ARG A   8      21.268  -2.836   7.266  1.00 31.59           N  
+ATOM     53  CZ  ARG A   8      22.086  -3.405   6.370  1.00 33.27           C  
+ATOM     54  NH1 ARG A   8      21.705  -3.612   5.110  1.00 30.56           N  
+ATOM     55  NH2 ARG A   8      23.305  -3.752   6.745  1.00 37.60           N  
+ATOM     56  N   ASN A   9      16.934  -4.978  11.379  1.00 24.16           N  
+ATOM     57  CA  ASN A   9      16.831  -5.403  12.758  1.00 24.72           C  
+ATOM     58  C   ASN A   9      15.332  -5.386  13.068  1.00 24.90           C  
+ATOM     59  O   ASN A   9      14.537  -4.802  12.307  1.00 23.58           O  
+ATOM     60  CB  ASN A   9      17.621  -4.439  13.665  1.00 25.74           C  
+ATOM     61  CG  ASN A   9      19.129  -4.495  13.405  1.00 27.91           C  
+ATOM     62  OD1 ASN A   9      19.788  -5.470  13.749  1.00 31.23           O  
+ATOM     63  ND2 ASN A   9      19.673  -3.455  12.771  1.00 29.96           N  
+ATOM     64  N   SER A  10      14.915  -6.058  14.128  1.00 24.54           N  
+ATOM     65  CA  SER A  10      13.534  -5.884  14.550  1.00 24.95           C  
+ATOM     66  C   SER A  10      13.452  -4.622  15.414  1.00 24.44           C  
+ATOM     67  O   SER A  10      14.461  -4.191  15.999  1.00 24.32           O  
+ATOM     68  CB  SER A  10      13.006  -7.130  15.266  1.00 25.87           C  
+ATOM     69  OG  SER A  10      13.668  -7.355  16.498  1.00 28.76           O  
+ATOM     70  N   CYS A  11      12.275  -4.001  15.481  1.00 23.98           N  
+ATOM     71  CA  CYS A  11      12.133  -2.832  16.349  1.00 24.19           C  
+ATOM     72  C   CYS A  11      10.802  -2.892  17.098  1.00 24.36           C  
+ATOM     73  O   CYS A  11       9.882  -3.615  16.696  1.00 25.50           O  
+ATOM     74  CB  CYS A  11      12.204  -1.561  15.494  1.00 24.84           C  
+ATOM     75  SG  CYS A  11      10.772  -1.380  14.392  1.00 24.93           S  
+ATOM     76  N   SER A  12      10.694  -2.133  18.180  1.00 23.94           N  
+ATOM     77  CA  SER A  12       9.465  -2.070  18.928  1.00 23.32           C  
+ATOM     78  C   SER A  12       8.516  -1.175  18.146  1.00 22.71           C  
+ATOM     79  O   SER A  12       8.934  -0.391  17.295  1.00 22.56           O  
+ATOM     80  CB  SER A  12       9.715  -1.485  20.337  1.00 22.85           C  
+ATOM     81  OG  SER A  12      10.019  -0.090  20.273  1.00 20.95           O  
+ATOM     82  N   PHE A  13       7.237  -1.255  18.483  1.00 22.23           N  
+ATOM     83  CA  PHE A  13       6.284  -0.393  17.843  1.00 22.99           C  
+ATOM     84  C   PHE A  13       6.544   1.079  18.147  1.00 23.33           C  
+ATOM     85  O   PHE A  13       6.400   1.934  17.245  1.00 23.58           O  
+ATOM     86  CB  PHE A  13       4.847  -0.807  18.178  1.00 22.86           C  
+ATOM     87  CG  PHE A  13       3.806   0.006  17.472  1.00 22.36           C  
+ATOM     88  CD1 PHE A  13       3.397  -0.326  16.160  1.00 24.58           C  
+ATOM     89  CD2 PHE A  13       3.196   1.079  18.116  1.00 25.52           C  
+ATOM     90  CE1 PHE A  13       2.424   0.450  15.512  1.00 23.56           C  
+ATOM     91  CE2 PHE A  13       2.192   1.848  17.476  1.00 28.44           C  
+ATOM     92  CZ  PHE A  13       1.812   1.525  16.178  1.00 24.75           C  
+ATOM     93  N   SER A  14       6.971   1.392  19.374  1.00 22.92           N  
+ATOM     94  CA  SER A  14       7.245   2.792  19.704  1.00 23.78           C  
+ATOM     95  C   SER A  14       8.443   3.335  18.912  1.00 22.99           C  
+ATOM     96  O   SER A  14       8.457   4.527  18.605  1.00 22.38           O  
+ATOM     97  CB  SER A  14       7.411   3.028  21.215  1.00 23.86           C  
+ATOM     98  OG  SER A  14       8.373   2.104  21.713  1.00 28.91           O  
+ATOM     99  N   THR A  15       9.406   2.477  18.570  1.00 21.61           N  
+ATOM    100  CA  THR A  15      10.529   2.849  17.692  1.00 22.47           C  
+ATOM    101  C   THR A  15      10.076   3.147  16.251  1.00 22.47           C  
+ATOM    102  O   THR A  15      10.513   4.137  15.646  1.00 22.91           O  
+ATOM    103  CB  THR A  15      11.632   1.745  17.679  1.00 21.94           C  
+ATOM    104  OG1 THR A  15      12.143   1.591  18.998  1.00 24.54           O  
+ATOM    105  CG2 THR A  15      12.820   2.125  16.775  1.00 20.96           C  
+ATOM    106  N   LEU A  16       9.218   2.285  15.713  1.00 22.64           N  
+ATOM    107  CA  LEU A  16       8.601   2.542  14.397  1.00 23.38           C  
+ATOM    108  C   LEU A  16       7.950   3.914  14.418  1.00 23.19           C  
+ATOM    109  O   LEU A  16       8.165   4.710  13.542  1.00 23.55           O  
+ATOM    110  CB  LEU A  16       7.531   1.528  14.118  1.00 22.93           C  
+ATOM    111  CG  LEU A  16       6.915   1.613  12.703  1.00 24.17           C  
+ATOM    112  CD1 LEU A  16       7.939   1.311  11.620  1.00 25.00           C  
+ATOM    113  CD2 LEU A  16       5.688   0.682  12.645  1.00 25.66           C  
+ATOM    114  N   ARG A  17       7.088   4.125  15.397  1.00 23.18           N  
+ATOM    115  CA  ARG A  17       6.389   5.400  15.571  1.00 25.38           C  
+ATOM    116  C   ARG A  17       7.319   6.614  15.658  1.00 25.75           C  
+ATOM    117  O   ARG A  17       6.969   7.708  15.206  1.00 25.40           O  
+ATOM    118  CB  ARG A  17       5.513   5.322  16.830  1.00 25.81           C  
+ATOM    119  CG  ARG A  17       4.320   4.414  16.656  1.00 30.48           C  
+ATOM    120  CD  ARG A  17       3.165   5.210  16.114  1.00 37.86           C  
+ATOM    121  NE  ARG A  17       2.728   6.262  17.020  1.00 40.36           N  
+ATOM    122  CZ  ARG A  17       2.363   7.487  16.640  1.00 42.12           C  
+ATOM    123  NH1 ARG A  17       2.421   7.837  15.364  1.00 42.72           N  
+ATOM    124  NH2 ARG A  17       1.965   8.378  17.540  1.00 42.89           N  
+ATOM    125  N   ALA A  18       8.497   6.441  16.251  1.00 25.66           N  
+ATOM    126  CA  ALA A  18       9.446   7.567  16.391  1.00 25.85           C  
+ATOM    127  C   ALA A  18      10.033   7.969  15.047  1.00 25.48           C  
+ATOM    128  O   ALA A  18      10.581   9.040  14.912  1.00 25.40           O  
+ATOM    129  CB  ALA A  18      10.576   7.236  17.375  1.00 25.73           C  
+ATOM    130  N   TYR A  19       9.908   7.101  14.051  1.00 26.27           N  
+ATOM    131  CA  TYR A  19      10.420   7.402  12.731  1.00 27.14           C  
+ATOM    132  C   TYR A  19       9.383   8.090  11.855  1.00 27.61           C  
+ATOM    133  O   TYR A  19       9.667   8.392  10.684  1.00 29.08           O  
+ATOM    134  CB  TYR A  19      10.983   6.136  12.065  1.00 26.44           C  
+ATOM    135  CG  TYR A  19      12.382   5.763  12.527  1.00 25.09           C  
+ATOM    136  CD1 TYR A  19      12.592   4.678  13.365  1.00 24.77           C  
+ATOM    137  CD2 TYR A  19      13.506   6.459  12.056  1.00 25.15           C  
+ATOM    138  CE1 TYR A  19      13.869   4.326  13.772  1.00 26.48           C  
+ATOM    139  CE2 TYR A  19      14.778   6.114  12.449  1.00 24.51           C  
+ATOM    140  CZ  TYR A  19      14.955   5.041  13.313  1.00 25.85           C  
+ATOM    141  OH  TYR A  19      16.218   4.687  13.681  1.00 27.58           O  
+ATOM    142  N   CYS A  20       8.190   8.332  12.416  1.00 27.45           N  
+ATOM    143  CA  CYS A  20       7.149   9.149  11.760  1.00 28.63           C  
+ATOM    144  C   CYS A  20       7.579  10.594  11.704  1.00 29.12           C  
+ATOM    145  O   CYS A  20       8.437  11.027  12.486  1.00 29.95           O  
+ATOM    146  CB  CYS A  20       5.808   9.082  12.512  1.00 27.21           C  
+ATOM    147  SG  CYS A  20       5.054   7.400  12.643  1.00 27.12           S  
+ATOM    148  N   ASP A  21       6.957  11.355  10.809  1.00 29.71           N  
+ATOM    149  CA  ASP A  21       7.069  12.816  10.878  1.00 31.80           C  
+ATOM    150  C   ASP A  21       6.156  13.379  11.967  1.00 32.16           C  
+ATOM    151  O   ASP A  21       5.066  12.863  12.223  1.00 32.73           O  
+ATOM    152  CB  ASP A  21       6.743  13.456   9.532  1.00 31.84           C  
+ATOM    153  CG  ASP A  21       7.737  13.075   8.451  1.00 34.01           C  
+ATOM    154  OD1 ASP A  21       8.776  12.448   8.773  1.00 37.23           O  
+ATOM    155  OD2 ASP A  21       7.485  13.399   7.276  1.00 36.47           O  
+ATOM    156  N   SER A  22       6.636  14.421  12.624  1.00 32.79           N  
+ATOM    157  CA  SER A  22       5.831  15.204  13.544  1.00 33.86           C  
+ATOM    158  C   SER A  22       6.297  16.650  13.500  1.00 33.85           C  
+ATOM    159  O   SER A  22       5.699  17.505  12.842  1.00 34.42           O  
+ATOM    160  CB  SER A  22       5.960  14.654  14.965  1.00 33.89           C  
+ATOM    161  OG  SER A  22       7.297  14.662  15.416  1.00 34.18           O  
diff --git a/ctest/dock/2WFU_B.pdb b/ctest/dock/2WFU_B.pdb
new file mode 100644 (file)
index 0000000..83df2b5
--- /dev/null
@@ -0,0 +1,173 @@
+ATOM    163  N   ASN B   1       7.777  -9.125  21.533  1.00 33.02           N  
+ATOM    164  CA  ASN B   1       7.394  -7.701  21.494  1.00 32.93           C  
+ATOM    165  C   ASN B   1       8.165  -6.972  20.418  1.00 32.33           C  
+ATOM    166  O   ASN B   1       8.826  -5.961  20.667  1.00 32.66           O  
+ATOM    167  CB  ASN B   1       7.627  -6.995  22.843  1.00 34.21           C  
+ATOM    168  CG  ASN B   1       6.898  -5.663  22.919  1.00 35.43           C  
+ATOM    169  OD1 ASN B   1       6.894  -4.997  23.955  1.00 39.65           O  
+ATOM    170  ND2 ASN B   1       6.249  -5.277  21.811  1.00 34.80           N  
+ATOM    171  N   SER B   2       8.077  -7.464  19.197  1.00 31.35           N  
+ATOM    172  CA  SER B   2       8.918  -6.884  18.179  1.00 30.61           C  
+ATOM    173  C   SER B   2       8.236  -6.894  16.849  1.00 28.89           C  
+ATOM    174  O   SER B   2       7.254  -7.611  16.627  1.00 29.38           O  
+ATOM    175  CB  SER B   2      10.252  -7.634  18.097  1.00 30.61           C  
+ATOM    176  OG  SER B   2      10.103  -8.762  17.271  1.00 33.42           O  
+ATOM    177  N   LEU B   3       8.738  -6.068  15.952  1.00 26.72           N  
+ATOM    178  CA  LEU B   3       8.265  -6.161  14.580  1.00 25.18           C  
+ATOM    179  C   LEU B   3       9.430  -6.045  13.615  1.00 24.27           C  
+ATOM    180  O   LEU B   3      10.429  -5.380  13.873  1.00 24.05           O  
+ATOM    181  CB  LEU B   3       7.174  -5.139  14.284  1.00 25.73           C  
+ATOM    182  CG  LEU B   3       7.627  -3.682  14.188  1.00 23.35           C  
+ATOM    183  CD1 LEU B   3       7.962  -3.282  12.724  1.00 27.40           C  
+ATOM    184  CD2 LEU B   3       6.522  -2.803  14.735  1.00 26.91           C  
+ATOM    185  N   ARG B   4       9.286  -6.694  12.477  1.00 23.24           N  
+ATOM    186  CA  ARG B   4      10.292  -6.606  11.476  1.00 23.81           C  
+ATOM    187  C   ARG B   4       9.587  -6.562  10.140  1.00 23.82           C  
+ATOM    188  O   ARG B   4       8.791  -7.452   9.836  1.00 23.19           O  
+ATOM    189  CB  ARG B   4      11.181  -7.837  11.555  1.00 23.89           C  
+ATOM    190  CG  ARG B   4      12.356  -7.683  10.679  1.00 29.24           C  
+ATOM    191  CD  ARG B   4      13.449  -8.499  11.250  1.00 33.23           C  
+ATOM    192  NE  ARG B   4      14.623  -8.240  10.478  1.00 33.66           N  
+ATOM    193  CZ  ARG B   4      15.799  -8.768  10.720  1.00 33.11           C  
+ATOM    194  NH1 ARG B   4      15.939  -9.618  11.724  1.00 36.61           N  
+ATOM    195  NH2 ARG B   4      16.807  -8.472   9.917  1.00 30.33           N  
+ATOM    196  N   ALA B   5       9.851  -5.514   9.370  1.00 22.74           N  
+ATOM    197  CA  ALA B   5       9.252  -5.359   8.056  1.00 24.42           C  
+ATOM    198  C   ALA B   5      10.204  -4.684   7.073  1.00 25.45           C  
+ATOM    199  O   ALA B   5      10.924  -3.742   7.441  1.00 23.37           O  
+ATOM    200  CB  ALA B   5       7.949  -4.606   8.162  1.00 25.02           C  
+ATOM    201  N   CYS B   6      10.214  -5.193   5.834  1.00 25.89           N  
+ATOM    202  CA  CYS B   6      11.090  -4.713   4.783  1.00 27.91           C  
+ATOM    203  C   CYS B   6      10.248  -4.437   3.532  1.00 29.07           C  
+ATOM    204  O   CYS B   6       9.114  -4.955   3.389  1.00 30.54           O  
+ATOM    205  CB  CYS B   6      12.216  -5.728   4.469  1.00 27.14           C  
+ATOM    206  SG  CYS B   6      13.453  -6.025   5.744  1.00 29.35           S  
+ATOM    207  N   GLY B   7      10.766  -3.581   2.658  1.00 30.07           N  
+ATOM    208  CA  GLY B   7      10.084  -3.274   1.405  1.00 29.90           C  
+ATOM    209  C   GLY B   7       8.703  -2.668   1.624  1.00 29.69           C  
+ATOM    210  O   GLY B   7       8.519  -1.915   2.585  1.00 29.52           O  
+ATOM    211  N   PRO B   8       7.738  -2.980   0.729  1.00 28.92           N  
+ATOM    212  CA  PRO B   8       6.397  -2.394   0.712  1.00 27.64           C  
+ATOM    213  C   PRO B   8       5.624  -2.549   2.038  1.00 26.51           C  
+ATOM    214  O   PRO B   8       4.876  -1.659   2.404  1.00 25.63           O  
+ATOM    215  CB  PRO B   8       5.691  -3.188  -0.374  1.00 29.36           C  
+ATOM    216  CG  PRO B   8       6.778  -3.579  -1.307  1.00 29.26           C  
+ATOM    217  CD  PRO B   8       7.936  -3.911  -0.410  1.00 30.42           C  
+ATOM    218  N   ALA B   9       5.801  -3.678   2.718  1.00 24.26           N  
+ATOM    219  CA  ALA B   9       5.135  -3.901   4.015  1.00 23.27           C  
+ATOM    220  C   ALA B   9       5.565  -2.853   5.028  1.00 21.89           C  
+ATOM    221  O   ALA B   9       4.763  -2.404   5.844  1.00 21.62           O  
+ATOM    222  CB  ALA B   9       5.473  -5.300   4.543  1.00 22.17           C  
+ATOM    223  N   LEU B  10       6.837  -2.471   4.983  1.00 22.23           N  
+ATOM    224  CA  LEU B  10       7.341  -1.520   5.957  1.00 22.40           C  
+ATOM    225  C   LEU B  10       6.732  -0.170   5.629  1.00 23.35           C  
+ATOM    226  O   LEU B  10       6.280   0.544   6.509  1.00 22.50           O  
+ATOM    227  CB  LEU B  10       8.867  -1.482   5.967  1.00 21.92           C  
+ATOM    228  CG  LEU B  10       9.447  -0.374   6.867  1.00 21.79           C  
+ATOM    229  CD1 LEU B  10       9.135  -0.654   8.337  1.00 22.63           C  
+ATOM    230  CD2 LEU B  10      10.956  -0.255   6.666  1.00 21.99           C  
+ATOM    231  N   MET B  11       6.670   0.154   4.347  1.00 23.15           N  
+ATOM    232  CA  MET B  11       6.064   1.417   3.971  1.00 24.74           C  
+ATOM    233  C   MET B  11       4.566   1.418   4.323  1.00 23.95           C  
+ATOM    234  O   MET B  11       4.071   2.422   4.814  1.00 22.80           O  
+ATOM    235  CB  MET B  11       6.348   1.756   2.496  1.00 25.08           C  
+ATOM    236  CG  MET B  11       7.871   1.889   2.178  1.00 30.95           C  
+ATOM    237  SD  MET B  11       8.800   3.187   3.075  1.00 42.86           S  
+ATOM    238  CE  MET B  11       9.806   2.229   4.203  1.00 36.96           C  
+ATOM    239  N   ASP B  12       3.873   0.280   4.155  1.00 23.76           N  
+ATOM    240  CA  ASP B  12       2.424   0.208   4.497  1.00 23.79           C  
+ATOM    241  C   ASP B  12       2.182   0.380   6.015  1.00 24.03           C  
+ATOM    242  O   ASP B  12       1.204   1.034   6.459  1.00 24.81           O  
+ATOM    243  CB  ASP B  12       1.833  -1.150   4.100  1.00 23.87           C  
+ATOM    244  CG  ASP B  12       1.706  -1.360   2.574  1.00 27.76           C  
+ATOM    245  OD1 ASP B  12       1.520  -0.421   1.801  1.00 28.65           O  
+ATOM    246  OD2 ASP B  12       1.771  -2.522   2.159  1.00 30.65           O  
+ATOM    247  N   MET B  13       3.088  -0.194   6.800  0.50 22.32           N  
+ATOM    248  CA  MET B  13       3.030  -0.068   8.253  0.50 22.27           C  
+ATOM    249  C   MET B  13       3.290   1.367   8.715  1.00 23.91           C  
+ATOM    250  O   MET B  13       2.554   1.890   9.547  1.00 24.64           O  
+ATOM    251  CB  MET B  13       3.982  -1.066   8.911  0.50 22.09           C  
+ATOM    252  CG  MET B  13       3.381  -2.492   8.962  0.50 23.66           C  
+ATOM    253  SD  MET B  13       1.782  -2.604   9.828  0.50 34.49           S  
+ATOM    254  CE  MET B  13       1.906  -1.416  11.168  0.50 27.34           C  
+ATOM    255  N   LEU B  14       4.299   2.021   8.142  1.00 24.10           N  
+ATOM    256  CA  LEU B  14       4.531   3.441   8.452  1.00 25.59           C  
+ATOM    257  C   LEU B  14       3.335   4.292   8.062  1.00 25.96           C  
+ATOM    258  O   LEU B  14       2.984   5.235   8.759  1.00 26.04           O  
+ATOM    259  CB  LEU B  14       5.752   3.959   7.713  1.00 25.58           C  
+ATOM    260  CG  LEU B  14       7.108   3.706   8.366  1.00 26.83           C  
+ATOM    261  CD1 LEU B  14       8.211   3.994   7.344  1.00 27.29           C  
+ATOM    262  CD2 LEU B  14       7.281   4.557   9.636  1.00 27.12           C  
+ATOM    263  N   ARG B  15       2.708   3.961   6.942  1.00 26.18           N  
+ATOM    264  CA  ARG B  15       1.557   4.706   6.490  1.00 26.93           C  
+ATOM    265  C   ARG B  15       0.434   4.695   7.543  1.00 26.95           C  
+ATOM    266  O   ARG B  15      -0.108   5.745   7.860  1.00 27.66           O  
+ATOM    267  CB  ARG B  15       1.084   4.207   5.119  1.00 27.18           C  
+ATOM    268  CG  ARG B  15      -0.082   4.997   4.551  1.00 30.65           C  
+ATOM    269  CD  ARG B  15      -0.087   4.946   3.031  1.00 34.85           C  
+ATOM    270  NE  ARG B  15      -0.395   3.614   2.535  1.00 36.65           N  
+ATOM    271  CZ  ARG B  15      -0.360   3.252   1.250  1.00 38.61           C  
+ATOM    272  NH1 ARG B  15      -0.011   4.112   0.301  1.00 38.36           N  
+ATOM    273  NH2 ARG B  15      -0.663   2.010   0.918  1.00 39.33           N  
+ATOM    274  N   VAL B  16       0.098   3.534   8.097  1.00 25.17           N  
+ATOM    275  CA  VAL B  16      -0.976   3.478   9.087  1.00 25.70           C  
+ATOM    276  C   VAL B  16      -0.523   3.865  10.514  1.00 25.06           C  
+ATOM    277  O   VAL B  16      -1.345   4.291  11.316  1.00 25.34           O  
+ATOM    278  CB  VAL B  16      -1.707   2.097   9.086  1.00 25.20           C  
+ATOM    279  CG1 VAL B  16      -2.364   1.882   7.739  1.00 24.24           C  
+ATOM    280  CG2 VAL B  16      -0.765   0.931   9.457  1.00 26.54           C  
+ATOM    281  N   ALA B  17       0.757   3.651  10.846  1.00 25.74           N  
+ATOM    282  CA  ALA B  17       1.270   4.027  12.181  1.00 26.71           C  
+ATOM    283  C   ALA B  17       1.463   5.546  12.314  1.00 27.40           C  
+ATOM    284  O   ALA B  17       1.537   6.073  13.439  1.00 26.17           O  
+ATOM    285  CB  ALA B  17       2.582   3.342  12.477  1.00 26.10           C  
+ATOM    286  N   CYS B  18       1.604   6.241  11.182  1.00 27.75           N  
+ATOM    287  CA  CYS B  18       2.018   7.653  11.246  1.00 30.16           C  
+ATOM    288  C   CYS B  18       0.874   8.545  10.800  1.00 32.63           C  
+ATOM    289  O   CYS B  18       0.453   8.457   9.663  1.00 33.66           O  
+ATOM    290  CB  CYS B  18       3.251   7.928  10.375  1.00 29.69           C  
+ATOM    291  SG  CYS B  18       4.706   6.903  10.750  1.00 27.57           S  
+ATOM    292  N   PRO B  19       0.384   9.417  11.692  1.00 35.61           N  
+ATOM    293  CA  PRO B  19      -0.756  10.280  11.313  1.00 36.79           C  
+ATOM    294  C   PRO B  19      -0.335  11.358  10.311  1.00 38.57           C  
+ATOM    295  O   PRO B  19      -1.008  11.547   9.284  1.00 38.86           O  
+ATOM    296  CB  PRO B  19      -1.209  10.893  12.643  1.00 37.04           C  
+ATOM    297  CG  PRO B  19      -0.356  10.252  13.725  1.00 36.65           C  
+ATOM    298  CD  PRO B  19       0.863   9.687  13.059  1.00 35.75           C  
+ATOM    299  N   ASN B  20       0.773  12.040  10.608  1.00 40.17           N  
+ATOM    300  CA  ASN B  20       1.302  13.135   9.777  1.00 41.84           C  
+ATOM    301  C   ASN B  20       2.319  12.659   8.727  1.00 42.49           C  
+ATOM    302  O   ASN B  20       2.981  13.474   8.075  1.00 43.37           O  
+ATOM    303  CB  ASN B  20       1.953  14.224  10.653  1.00 41.95           C  
+ATOM    304  CG  ASN B  20       1.022  14.760  11.730  1.00 42.67           C  
+ATOM    305  OD1 ASN B  20      -0.061  15.279  11.439  1.00 43.67           O  
+ATOM    306  ND2 ASN B  20       1.448  14.641  12.986  1.00 44.42           N  
+ATOM    307  N   GLY B  21       2.448  11.345   8.579  1.00 43.01           N  
+ATOM    308  CA  GLY B  21       3.307  10.759   7.547  1.00 43.59           C  
+ATOM    309  C   GLY B  21       4.765  10.573   7.935  1.00 43.93           C  
+ATOM    310  O   GLY B  21       5.116  10.609   9.110  1.00 43.44           O  
+ATOM    311  N   PHE B  22       5.605  10.381   6.920  1.00 44.41           N  
+ATOM    312  CA  PHE B  22       7.020  10.035   7.072  1.00 45.10           C  
+ATOM    313  C   PHE B  22       7.719  10.326   5.744  1.00 45.44           C  
+ATOM    314  O   PHE B  22       7.081  10.277   4.695  1.00 45.70           O  
+ATOM    315  CB  PHE B  22       7.167   8.548   7.432  1.00 44.91           C  
+ATOM    316  CG  PHE B  22       6.626   7.609   6.377  1.00 45.86           C  
+ATOM    317  CD1 PHE B  22       5.262   7.313   6.316  1.00 45.83           C  
+ATOM    318  CD2 PHE B  22       7.485   7.020   5.447  1.00 45.83           C  
+ATOM    319  CE1 PHE B  22       4.765   6.449   5.343  1.00 46.40           C  
+ATOM    320  CE2 PHE B  22       6.996   6.157   4.469  1.00 46.08           C  
+ATOM    321  CZ  PHE B  22       5.636   5.867   4.415  1.00 45.74           C  
+ATOM    322  N   ASN B  23       9.019  10.613   5.767  1.00 46.04           N  
+ATOM    323  CA  ASN B  23       9.707  11.001   4.522  1.00 46.82           C  
+ATOM    324  C   ASN B  23      11.159  10.546   4.310  1.00 47.22           C  
+ATOM    325  O   ASN B  23      11.711  10.741   3.221  1.00 47.50           O  
+ATOM    326  CB  ASN B  23       9.582  12.511   4.281  1.00 46.85           C  
+ATOM    327  CG  ASN B  23       8.570  12.851   3.193  1.00 47.41           C  
+ATOM    328  OD1 ASN B  23       7.402  12.460   3.263  1.00 47.41           O  
+ATOM    329  ND2 ASN B  23       9.016  13.596   2.185  1.00 48.44           N  
+ATOM    330  N   SER B  24      11.769   9.963   5.341  1.00 47.58           N  
+ATOM    331  CA  SER B  24      13.164   9.502   5.297  1.00 47.77           C  
+ATOM    332  C   SER B  24      14.119  10.465   4.589  1.00 47.92           C  
+ATOM    333  O   SER B  24      14.379  11.569   5.069  1.00 48.09           O  
+ATOM    334  CB  SER B  24      13.253   8.110   4.659  1.00 47.93           C  
+ATOM    335  OG  SER B  24      12.414   7.184   5.333  1.00 48.18           O  
diff --git a/ctest/dock/2WFU_dock.inp b/ctest/dock/2WFU_dock.inp
new file mode 100644 (file)
index 0000000..9f01a03
--- /dev/null
@@ -0,0 +1,28 @@
+2wfu UNRES-Dock test
+SEED=-77763650 pdbstart re one_letter BOXX=78.90                               &
+BOXY=78.90 BOXZ=78.90 CONSTR_HOMOL=8 pdbref
+        reset_vel=1000 nstep=200000 ntwe=1000 ntwx=1000 dt=0.2 lang=1          &
+scal_fric=0.02 preminim cart
+print_min_ini print_min_res print_min_stat maxfun=15000
+nrep=8 nstex=1000 tlist mlist sync nsyn=1000 traj1file  rest1file              &
+TRAJCACHE=200
+270 280 290 300 310 320 330 345
+1 1 1 1 1 1 1 1
+WSC=1.00000 WSCP=1.23315 WELEC=0.84476 WBOND=1.00000 WANG=0.62954              &
+WSCLOC=0.10554 WTOR=1.34316 WTORD=1.26571 WCORRH=0.19212 WCORR5=0.00000        &
+WCORR6=0.00000 WEL_LOC=0.37357 WTURN3=1.40323 WTURN4=0.64673 WTURN6=0.00000    &
+WVDWPP=0.23173 WHPB=1.00000 WSCCOR=0.25                                        &
+CUTOFF=7.00000 WCORR4=0.00000
+plik1ter.pdb
+0
+0
+HOMOL_DIST=0.1    HOMOL_ANGLE=1.0 HOMOL_THETA=1.0 HOMOL_SCD=1.0 DIST_CUT=15.0  &
+READ2SIGMA START_FROM_MODELS
+model01.pdb
+model02.pdb
+model03.pdb
+model04.pdb
+model05.pdb
+model06.pdb
+model07.pdb
+model08.pdb
diff --git a/ctest/dock/cluster.inp b/ctest/dock/cluster.inp
new file mode 100644 (file)
index 0000000..4434d1e
--- /dev/null
@@ -0,0 +1,21 @@
+2wfu UNRES-Dock 
+nres=49 one_letter rescale=2 PRINT_CART PDBOUT=1 iopt=1 temper=280.0           &
+ CONSTR_HOMOL=8                                                                &
+BOXX=78.90 BOXY=78.90 BOXZ=78.90
+WSC=1.00000 WSCP=1.23315 WELEC=0.84476 WBOND=1.00000 WANG=0.62954              &
+WSCLOC=0.10554 WTOR=1.34316 WTORD=1.26571 WCORRH=0.19212 WCORR5=0.00000        &
+WCORR6=0.00000 WEL_LOC=0.37357 WTURN3=1.40323 WTURN4=0.64673 WTURN6=0.00000    &
+WVDWPP=0.23173 WHPB=1.00000 WSCCOR=0.25                                        &
+CUTOFF=7.00000 WCORR4=0.00000
+GVVDSCCRNSCSFSTLRAYCDSXXNSLRACGPALMDMLRVACPNGFNSX
+0
+HOMOL_DIST=0.1    HOMOL_ANGLE=1.0 HOMOL_THETA=1.0 HOMOL_SCD=1.0 DIST_CUT=15.0  &
+READ2SIGMA 
+model01.pdb
+model02.pdb
+model03.pdb
+model04.pdb
+model05.pdb
+model06.pdb
+model07.pdb
+model08.pdb
diff --git a/ctest/dock/cluster_wham_check.sh b/ctest/dock/cluster_wham_check.sh
new file mode 100755 (executable)
index 0000000..4865997
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+if [ "$1" == "cluster" ]; then
+ file=wham_T280K_ave.pdb
+else
+ exit 1
+fi
+
+# Check if file exist
+if [ ! -f $file ]; then
+    echo "CRITICAL: out $file does not exist"
+    exit 2
+fi
+
+fam=`grep THERE clust_clust.out_000|awk '{print $3}'`
+grep THERE clust_clust.out_000
+grep REMARK wham*[1-9].pdb
+
+ if [ "$fam" != "5" ]; then
+  echo 'ERROR: number of families not equal 5'
+  exit 1
+ fi
+
diff --git a/ctest/dock/mremd_check.sh b/ctest/dock/mremd_check.sh
new file mode 100755 (executable)
index 0000000..c72de4f
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+ rm -rf remd_all.stat
+ tail -q -n +200 2WFU_dock*.stat >remd_all.stat
+ if [ ! -s remd_all.stat ]; then
+  echo 'FATAL error - stat files empty'
+  exit 2
+ fi
+
+ grep ACC 2WFU_dock.out_GB000 |tail -7
+ exchange=`grep ACC 2WFU_dock.out_GB000 |tail -7|awk '{a=a+$4}END{print a/NR}'`
+ echo "average exchange = ${exchange}"
+ if [ `echo "a=${exchange};a<0.2"|bc -l` != "0" ]; then
+    echo 'ERROR average exchange smaller than 0.2'
+    exit 1
+ else
+    exit 0
+ fi
+
diff --git a/ctest/dock/test_mpi_DOCK.sh b/ctest/dock/test_mpi_DOCK.sh
new file mode 100755 (executable)
index 0000000..58788b2
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+../../bin/generator $1 $2 0 8 -991234
+cat 2WFU_A.pdb > plik1ter.pdb
+echo TER >>  plik1ter.pdb 
+cat 2WFU_B.pdb >> plik1ter.pdb
+
+pdb=`ls model??.pdb |wc -w`
+sco=`ls template??.sco |wc -w`
+
+if [ "$pdb" = "8" ] && [ "$sco" = "8" ]; then
+  echo "8 starting models generated"
+else
+  exit 1
+fi
+
+  
\ No newline at end of file
diff --git a/ctest/dock/wham.inp b/ctest/dock/wham.inp
new file mode 100644 (file)
index 0000000..1b83d17
--- /dev/null
@@ -0,0 +1,44 @@
+ isampl=1                                                                      &
+SEED=-77763650 einicheck=1 rescale=2 delta=0.02 cxfile classify                &
+ n_ene=19 CONSTR_HOMOL=8                                                       &
+BOXX=78.90 BOXY=78.90 BOXZ=78.90
+nres=49 one_letter
+GVVDSCCRNSCSFSTLRAYCDSXXNSLRACGPALMDMLRVACPNGFNSX
+0
+HOMOL_DIST=0.1    HOMOL_ANGLE=1.0 HOMOL_THETA=1.0 HOMOL_SCD=1.0 DIST_CUT=15.0  &
+READ2SIGMA 
+model01.pdb
+model02.pdb
+model03.pdb
+model04.pdb
+model05.pdb
+model06.pdb
+model07.pdb
+model08.pdb
+WSC=1.00000 WSCP=1.23315 WELEC=0.84476 WBOND=1.00000 WANG=0.62954              &
+WSCLOC=0.10554 WTOR=1.34316 WTORD=1.26571 WCORRH=0.19212 WCORR5=0.00000        &
+WCORR6=0.00000 WEL_LOC=0.37357 WTURN3=1.40323 WTURN4=0.64673 WTURN6=0.00000    &
+WVDWPP=0.23173 WHPB=1.00000 WSCCOR=0.25                                        &
+CUTOFF=7.00000 WCORR4=0.00000
+
+nt=8 replica read_iset
+nr=1 temp=270 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=280 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=290 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=300 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=310 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=320 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=330 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=345 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nfile_cx=1 rec_start=50 rec_end=500 totraj=8
+2WFU_dock_MD000
+pdbref
+plik1ter.pdb
diff --git a/ctest/dock/wham_check.sh b/ctest/dock/wham_check.sh
new file mode 100755 (executable)
index 0000000..1cb888c
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+if [ "$1" == "wham" ]; then
+ file=wham.thermal
+else
+ exit 1
+fi
+
+# Check if file exist
+if [ ! -f $file ]; then
+    echo "CRITICAL: out $file do not exist"
+    exit 2
+fi
+
+error=0
+max=`awk '{print $1,$7*1}' $file | sort -n -k 2 | awk 'END{print $1}'`
+echo 'T of max Cv(T) ' $max
+rms=`awk '{if ($1<280) {a=a+$5;n++}}END{print a/n}' $file`
+echo 'average rms for T<280 ' $rms
+
+ if [ `grep differs wham.out* |wc -l` != "0" ]; then
+  echo 'ERROR: energy differs remarkably from  the value read in'  
+  echo 'first 10 warnings'
+  grep differs wham.out*|head -10
+  error=1
+ fi
+
+ if [ `echo "a=$max-293;if(0>a)a*=-1;a>10.0"|bc -l` != "0" ]; then
+  echo 'ERROR wrong T max of Cv(T) by more than 10 K'
+  error=1
+ fi
+
+ if [ `echo "a=$rms-9.3;if(0>a)a*=-1;a>0.2"|bc -l` != "0" ]; then
+  echo 'ERROR wrong average rms for T<280 by more than 0.2'
+  error=1
+ fi
+
+ if [ "$error" != "0" ];then
+   exit 1
+ fi
\ No newline at end of file
index f7a596f..0d09fca 100644 (file)
@@ -1,7 +1,9 @@
 # 
 
+enable_language (Fortran)
+
 set(UNRES_DOCK
-        generator_v13b.F
+        generator.f
 )
 
 
@@ -23,3 +25,166 @@ set_property(TARGET UNRES_DOCK_BIN PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BIN
 #=========================================
 install(TARGETS UNRES_DOCK_BIN DESTINATION ${CMAKE_INSTALL_PREFIX}/unres-dock)
 
+# Add tests
+
+#  MESSAGE (STATUS "${MPI_Fortran_LIBRARIES}")
+  if ("${MPI_Fortran_LIBRARIES}"  MATCHES "lam")
+     MESSAGE (STATUS "LAM MPI library detected")
+     set (boot_lam "-boot")
+  else()
+     set (boot_lam "")
+  endif()
+
+  if (UNRES_SRUN)
+   set (np "-n")
+   set (mpiexec "srun")
+  elseif(UNRES_MPIRUN)
+   set (np "-np")
+   set (mpiexec "mpirun")
+  else()
+   set (np "-np")
+   set (mpiexec "mpiexec")
+  endif()
+
+
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/dock/
+      DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN "*" )
+
+
+if(UNRES_WITH_MPI)
+  if(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+  set(UNRES_BIN "unresMD-mult_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
+  set(UNRES_WHAM_M_BIN "wham-mult_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
+  set(UNRES_CLUSTER_WHAM_M_BIN "cluster_wham-mult_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export FGPROCS=$2
+export PREFIX=$1
+#-----------------------------------------------------------------------------
+UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond_AM1_ext_dum.parm
+export THETPAR=$DD/theta_abinitio_old_ext.parm
+export THETPARPDB=$DD/thetaml_ext.5parm
+export ROTPARPDB=$DD/scgauss_ext.parm
+export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
+export TORPAR=$DD/torsion_631Gdp_old_ext.parm
+export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
+export ELEPAR=$DD/electr_631Gdp_ext.parm
+export SIDEPAR=$DD//scinter_GB_ext_lip.parm
+export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
+export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
+export SCPPAR=$DD/scp_ext.parm
+export PATTERN=$DD/patterns.cart
+export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file
+./mremd_check.sh $1 
+")
+
+#
+# File permissions workaround
+#
+FILE(  COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh 
+       DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+       FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/wham_mpi_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export PREFIX=$1
+#-----------------------------------------------------------------------------
+WHAM_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_WHAM_M_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond_AM1_ext_dum.parm
+export THETPAR=$DD/theta_abinitio_old_ext.parm
+export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
+export TORPAR=$DD/torsion_631Gdp_old_ext.parm
+export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
+export ELEPAR=$DD/electr_631Gdp_ext.parm
+export SIDEPAR=$DD/scinter_GB_ext_lip.parm
+export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp_ext.parm
+export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
+export THETPARPDB=$DD/thetaml_ext.5parm
+export ROTPARPDB=$DD/scgauss_ext.parm
+export PATTERN=$DD/patterns.cart
+export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
+export CONTFUNC=GB
+export SIDEP=$DD/contact_ext.3.parm
+export SCRATCHDIR=.
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+${mpiexec} ${boot_lam} ${np} $2 $WHAM_BIN 
+./wham_check.sh $1
+")
+
+#
+# File permissions workaround
+#
+FILE(  COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/wham_mpi_E0LL2Y.sh 
+       DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+       FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/cluster_wham_mpi_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export INPUT=$1
+export INTIN=wham
+export OUTPUT=clust
+export PDB=CART
+export COORD=CX
+export PRINTCOOR=PRINT_PDB
+#-----------------------------------------------------------------------------
+CLUSTER_WHAM_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_CLUSTER_WHAM_M_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond_AM1_ext_dum.parm
+export THETPAR=$DD/theta_abinitio_old_ext.parm
+export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
+export TORPAR=$DD/torsion_631Gdp_old_ext.parm
+export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
+export ELEPAR=$DD/electr_631Gdp_ext.parm
+export SIDEPAR=$DD/scinter_GB_ext_lip.parm
+export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp_ext.parm
+export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
+export THETPARPDB=$DD/thetaml_ext.5parm
+export ROTPARPDB=$DD/scgauss_ext.parm
+export PATTERN=$DD/patterns.cart
+export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
+export CONTFUNC=GB
+export SIDEP=$DD/contact_ext.3.parm
+export SCRATCHDIR=.
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+${mpiexec} ${boot_lam} ${np} $2 $CLUSTER_WHAM_BIN 
+./cluster_wham_check.sh $1
+")
+
+#
+# File permissions workaround
+#
+FILE(  COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/cluster_wham_mpi_E0LL2Y.sh 
+       DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+       FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+
+    add_test(NAME UNRES_M_DOCK_generator COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_DOCK.sh 2WFU_A.pdb 2WFU_B.pdb )
+    add_test(NAME UNRES_M_DOCK_mremd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 2WFU_dock 1 8 )
+    add_test(NAME UNRES_M_DOCK_wham COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/wham_mpi_E0LL2Y.sh wham 2)
+    add_test(NAME UNRES_M_DOCK_cluster COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/cluster_wham_mpi_E0LL2Y.sh cluster 2 )
+
+
+  endif(UNRES_MD_FF STREQUAL "E0LL2Y")
+endif(UNRES_WITH_MPI)
diff --git a/source/unres-dock/generator.f b/source/unres-dock/generator.f
new file mode 100644 (file)
index 0000000..a8dd761
--- /dev/null
@@ -0,0 +1,948 @@
+      program generator
+      implicit none
+      integer proba, conf, cm1, cm2, accept, nd
+      integer krok, i, n, j, g, ii1, ilosc, ijl
+      integer nnn, seed, proba1, proba2, proba3, proba0x,proba0y,proba0z
+      integer ilosc_atomow1, ilosc_atomow2, korekta1, korekta2
+      integer ile_reszt_mol1, ile_reszt_mol2, ir, peptide,numerr2(90000)
+      integer numera1(90000),numerr1(90000),numera2(90000)
+      integer glys1, glys2, glye1, glye2, ilee
+      integer no_models, seed1, seed11, seed12, seed13
+      real*8 rand, r, boxx, boxy, boxz, dist2acm, dist1acm, b(4), t(3)
+      real*8 minx1, miny1, minz1, maxx1, maxy1, maxz1
+      real*8 minx2, miny2, minz2, maxx2, maxy2, maxz2
+      real*8 distx1, disty1, distz1, distx2, disty2, distz2
+      real*8 xcm1, ycm1, zcm1, xcm2, ycm2, zcm2
+      real*8 dist1cm, dist1cmt, dist2cm, dist2cmt
+      real*8 cm2xr, cm2yr, cm2zr,x2r(90000),y2r(90000),z2r(90000),dist12
+      real*8 angle, c, s, x2new, y2new, z2new
+      character*60 plik1, plik2, plik3, plik4, arg4, arg5
+      character*54 linia
+      real*8 x1(90000),y1(90000),z1(90000),x2(90000),y2(90000),z2(90000)
+      real*8 dd, wymiar, cmxx(900), cmyy(900), cmzz(900),xt2(90000,3)
+      real*8 xf(90000,3)
+      character*1 chain
+      character*3 r1s, r2s, r1e, r2e
+      character*5 atoma1(90000), atoma2(90000)
+      character*6 nazwaa1(90000), nazwar1(90000)
+      character*6 nazwaa2(90000), nazwar2(90000)
+
+      korekta1 = 1
+      korekta2 = 1
+
+c      write(*,*)"Sposob uruchamiania:"
+c      write(*,*)"nazwa_programu  nazwa_pliku_inp_pdb1
+c     &  nazwa_pliku_inp_pdb2  nazwa_pliku_out"
+c      write(*,*)""
+
+      nnn = iargc()
+      if (nnn.lt.5) then
+      write(*,*)"program  input_pdb1  input_pdb2
+     &  [0-1]  number_of_models  seed_number
+     &  0 for protein, 1 for peptide"
+      stop
+      endif
+
+      call getarg(1,plik1)
+      call getarg(2,plik2)
+      call getarg(3,plik3)
+      call getarg(4,arg4)
+      call getarg(5,arg5)
+      open(1,file=plik1,status="old")
+      open(2,file=plik2,status="old")
+      open(4,file='temp1')
+      open(5,file='temp2')
+      write(*,*) "All files read"
+
+      read(plik3(1:1),'(i1)') peptide
+      read(arg4,'(i2)') no_models
+      read(arg5,'(i19)') seed1
+
+      if (peptide.ne.0.and.peptide.ne.1) then
+        write(*,*) "Third parameter must be 0 or 1,
+     &              where 0 is for a protein-protein docking,
+     &              and 1 is for protein-peptide docking."
+        STOP
+      endif
+
+      write(*,*) "Option", peptide, "selected
+     &            (0 for protein, 1 for peptide)"
+
+
+c MOLEKULA 1
+      do while (.true.)
+        read(1,'(a54)',end=22) linia
+        if (linia(1:4).eq.'ATOM'.and.linia(17:17).lt.'B') then
+        write(4,'(a54)') linia
+        endif
+        if (linia(1:3).eq.'TER') then
+c        write(2,'(a54)') linia
+         goto 22
+        endif
+      enddo
+
+22    continue
+      close(4)
+      write(*,*) "Molecule 1 read"
+
+
+c MOLEKULA 2
+      do while (.true.)
+        read(2,'(a54)',end=23) linia
+        if (linia(1:4).eq.'ATOM'.and.linia(17:17).lt.'B') then
+        write(5,'(a54)') linia
+        endif
+        if (linia(1:3).eq.'TER') then
+c        write(2,'(a54)') linia
+         goto 23
+        endif
+      enddo
+23    continue
+      close(5)
+      write(*,*) "Molecule 2 read"
+
+      open(4,file='temp1')
+      open(5,file='temp2')
+
+      minx1=999.99
+      miny1=999.99
+      minz1=999.99
+
+      maxx1=-999.99
+      maxy1=-999.99
+      maxz1=-999.99
+
+
+      minx2=999.99
+      miny2=999.99
+      minz2=999.99
+
+      maxx2=-999.99
+      maxy2=-999.99
+      maxz2=-999.99
+
+
+
+c MOLEKULA 1
+      i=1
+      xcm1=0
+      ycm1=0
+      zcm1=0
+      ile_reszt_mol1=0
+
+      do while (.true.)
+          read(4,800,end=111)
+     &  atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),chain,numerr1(i),
+     &  x1(i),y1(i),z1(i)
+
+
+c         write(*,300) minx, maxx, miny, maxy, minz, maxz
+
+         if (x1(i).lt.minx1) minx1=x1(i)
+         if (y1(i).lt.miny1) miny1=y1(i)
+         if (z1(i).lt.minz1) minz1=z1(i)
+
+         if (x1(i).gt.maxx1) maxx1=x1(i)
+         if (y1(i).gt.maxy1) maxy1=y1(i)
+         if (z1(i).gt.maxz1) maxz1=z1(i)
+
+c         write(*,300) minx, maxx, miny, maxy, minz, maxz
+
+c         write(*,*) nazwaa1(i)
+         if (nazwaa1(i).eq.' CA ') then
+             xcm1 = xcm1 + x1(i)
+             ycm1 = ycm1 + y1(i)
+             zcm1 = zcm1 + z1(i)
+             ile_reszt_mol1 = ile_reszt_mol1 +1
+         endif
+
+         if (atoma1(i).eq.'TER ') goto 111
+         if (atoma1(i).eq.'END ') goto 111
+         if (i.eq.1) write(3,'(a6)') "REMARK"
+c        write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),
+c     &               numerr1(i),x1(i),y1(i),z1(i)
+
+c        write(*,*) i, x(i),y(i),z(i)
+
+        i=i+1
+      enddo
+111   continue
+
+      distx1=maxx1-minx1
+      disty1=maxy1-miny1
+      distz1=maxz1-minz1
+      ilosc_atomow1 = i-1
+      xcm1 = xcm1 / (ile_reszt_mol1*1.0)
+      ycm1 = ycm1 / (ile_reszt_mol1*1.0)
+      zcm1 = zcm1 / (ile_reszt_mol1*1.0)
+
+      do i=1,ilosc_atomow1
+         x1(i)=x1(i)-xcm1
+         y1(i)=y1(i)-ycm1
+         z1(i)=z1(i)-zcm1
+      enddo
+
+      xcm1=0
+      ycm1=0
+      zcm1=0
+
+      do i=1,ilosc_atomow1
+         if (nazwaa1(i).eq.' CA ') then
+             xcm1 = xcm1 + x1(i)
+             ycm1 = ycm1 + y1(i)
+             zcm1 = zcm1 + z1(i)
+         endif
+      enddo
+      xcm1 = xcm1 / (ile_reszt_mol1*1.0)
+      ycm1 = ycm1 / (ile_reszt_mol1*1.0)
+      zcm1 = zcm1 / (ile_reszt_mol1*1.0)
+
+      dist1cm=999.9
+      dist1acm=0.0
+      do i=1,ilosc_atomow1
+c        write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),
+c     &               numerr1(i),x1(i)-xcm1,y1(i)-ycm1,z1(i)-zcm1
+
+        dist1cmt = dsqrt(((xcm1-x1(i))**2)+
+     &               ((ycm1-y1(i))**2)+
+     &               ((zcm1-z1(i))**2))
+
+c        write(*,*) dist1cmt, dist1cm, i, cm1
+        if (dist1cm.gt.dist1cmt) then
+           dist1cm=dist1cmt
+           cm1=i
+        endif
+
+      enddo
+
+      do i=1,ilosc_atomow1
+      do j=i,ilosc_atomow1
+                 dist1cmt = dsqrt(((x1(j)-x1(i))**2)+
+     &               ((y1(j)-y1(i))**2)+
+     &               ((z1(j)-z1(i))**2))
+        if (dist1acm.lt.dist1cmt) then
+           dist1acm=dist1cmt
+        endif
+      enddo
+      enddo
+
+
+c      write(3,303) "TER"
+c      write(3,304) "ENDMDL"
+
+      write(*,*) "Molecule 1 calculated"
+
+c MOLEKULA 2
+      i=1
+      xcm2=0
+      ycm2=0
+      zcm2=0
+      ile_reszt_mol2=0
+
+      do while (.true.)
+          read(5,800,end=112)
+     &  atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),chain,numerr2(i),
+     &  x2(i),y2(i),z2(i)
+
+c         write(*,300) minx, maxx, miny, maxy, minz, maxz
+
+         if (x2(i).lt.minx2) minx2=x2(i)
+         if (y2(i).lt.miny2) miny2=y2(i)
+         if (z2(i).lt.minz2) minz2=z2(i)
+
+         if (x2(i).gt.maxx2) maxx2=x2(i)
+         if (y2(i).gt.maxy2) maxy2=y2(i)
+         if (z2(i).gt.maxz2) maxz2=z2(i)
+
+c         write(*,300) minx, maxx, miny, maxy, minz, maxz
+
+c         write(*,*) nazwaa1(i)
+         if (nazwaa2(i).eq.' CA ') then
+             xcm2 = xcm2 + x2(i)
+             ycm2 = ycm2 + y2(i)
+             zcm2 = zcm2 + z2(i)
+             ile_reszt_mol2 = ile_reszt_mol2 + 1
+         endif
+
+         if (atoma2(i).eq.'TER ') goto 111
+         if (atoma2(i).eq.'END ') goto 111
+c         if (i.eq.1) write(3,'(a6)') "REMARK"
+c        write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
+c     &               numerr2(i),x2(i),y2(i),z2(i)
+c        write(*,*) i, x(i),y(i),z(i)
+
+        i=i+1
+      enddo
+112   continue
+
+      distx2=maxx2-minx2
+      disty2=maxy2-miny2
+      distz2=maxz2-minz2
+      ilosc_atomow2 = i-1
+
+      xcm2 = xcm2 / (ile_reszt_mol2*1.0)
+      ycm2 = ycm2 / (ile_reszt_mol2*1.0)
+      zcm2 = zcm2 / (ile_reszt_mol2*1.0)
+
+      do i=1,ilosc_atomow2
+         x2(i)=x2(i)-xcm2
+         y2(i)=y2(i)-ycm2
+         z2(i)=z2(i)-zcm2
+c        write(*,*) x2(i),y2(i),z2(i)
+         xt2(i,1)=x2(i)
+         xt2(i,2)=y2(i)
+         xt2(i,3)=z2(i)
+c        write(*,*) xt2(i,1), xt2(i,2), xt2(i,3)
+      enddo
+
+      xcm2=0
+      ycm2=0
+      zcm2=0
+      do i=1,ilosc_atomow2
+         if (nazwaa2(i).eq.' CA ') then
+             xcm2 = xcm2 + x2(i)
+             ycm2 = ycm2 + y2(i)
+             zcm2 = zcm2 + z2(i)
+         endif
+      enddo
+      xcm2 = xcm2 / (ile_reszt_mol2*1.0)
+      ycm2 = ycm2 / (ile_reszt_mol2*1.0)
+      zcm2 = zcm2 / (ile_reszt_mol2*1.0)
+
+
+      dist2cm=999.9
+      dist2acm=0.0
+      do i=1,ilosc_atomow2
+c        write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
+c     &               numerr2(i),x2(i)-xcm2,y2(i)-ycm2,z2(i)-zcm2
+
+        dist2cmt = dsqrt(((xcm2-x2(i))**2)+
+     &               ((ycm2-y2(i))**2)+
+     &               ((zcm2-z2(i))**2))
+
+c        write(*,*) dist2cmt, dist2cm, i, cm2
+        if (dist2cm.gt.dist2cmt) then
+           dist2cm=dist2cmt
+           cm2=i
+        endif
+
+      enddo
+
+
+      do i=1,ilosc_atomow2
+      do j=i,ilosc_atomow2
+                 dist2cmt = dsqrt(((x2(j)-x2(i))**2)+
+     &               ((y2(j)-y2(i))**2)+
+     &               ((z2(j)-z2(i))**2))
+        if (dist2acm.lt.dist2cmt) then
+           dist2acm=dist2cmt
+        endif
+      enddo
+      enddo
+
+
+c      write(3,303) "TER"
+
+      glys1=0
+      glys2=0
+      glye1=0
+      glye2=0
+      r1s=nazwar1(1)
+      r2s=nazwar2(1)
+      r1e=nazwar1(ile_reszt_mol1)
+      r2e=nazwar2(ile_reszt_mol2)
+
+      if (r1s.eq."GLY") then
+        glys1=1
+        write(*,*) "Chain 1 is starting from Gly ", r1s, glys1
+      endif
+
+      if (r2s.eq."GLY") then
+        glys2=1
+        write(*,*) "Chain 2 is starting from Gly ", r2s, glys2
+      endif
+
+      if (r1e.eq."GLY") then
+        glye1=1
+        write(*,*) "Chain 1 is ending at Gly ", r1e, glye1
+      endif
+
+
+      if (r2e.eq."GLY") then
+        glye2=1
+        write(*,*) "Chain 2 is ending from Gly ", r2e, glye2
+      endif
+
+
+c checking for Gly
+      ilee=4
+      if(glys1.eq.1) ilee=ilee-1
+      if(glys2.eq.1) ilee=ilee-1
+      if(glye1.eq.1) ilee=ilee-1
+      if(glye2.eq.1) ilee=ilee-1
+      write(*,*) "How many dummy atoms:", ilee
+      write(*,*) ""
+
+
+      write(*,*) "Molecule 2 calculated"
+      write(*,*) "Number of atoms:", ilosc_atomow1, ilosc_atomow2
+
+      write(*,*) "Min and max coordinates in the systems"
+      write(*,300) minx1, maxx1, miny1, maxy1, minz1, maxz1
+      write(*,300) minx2, maxx2, miny2, maxy2, minz2, maxz2
+
+      write(*,*) "Distances in axes x, y, z"
+      write(*,301) distx1, disty1, distz1
+      write(*,301) distx2, disty2, distz2
+
+      boxx = (distx1 + distx2)*1.5 + 20.0
+      boxy = (disty1 + disty2)*1.5 + 20.0
+      boxz = (distz1 + distz2)*1.5 + 20.0
+
+c      write(*,*) "Boxsize [x, y, z]"
+c      write(*,301) boxx, boxy, boxz
+
+      write(*,*) "Maximum distances:"
+      write(*,*) dist1acm, dist2acm
+
+      write(*,*) "Boxsize (suggested)"
+      write(*,*) (dist1acm+dist2acm)*1.2+20
+      open(61,file='boxsize.txt')
+      write(61,302) ((dist1acm+dist2acm)*1.2+20)
+      close (61)
+
+      write(*,*) "Center of masses:"
+      write(*,301) xcm1, ycm1, zcm1
+      write(*,301) xcm2, ycm2, zcm2
+
+      write(*,*) "Center of masses atoms:"
+      write(*,800) atoma1(cm1),numera1(cm1),nazwaa1(cm1),nazwar1(cm1),
+     &             " ",numerr1(cm1),x1(cm1),y1(cm1),z1(cm1)
+      write(*,800) atoma2(cm2),numera2(cm2),nazwaa2(cm2),nazwar2(cm2),
+     &             " ",numerr2(cm2),x2(cm2),y2(cm2),z2(cm2)
+
+
+      write(*,*) "Number of amino-acid residues in two proteins:"
+      write(*,*) ile_reszt_mol1, ile_reszt_mol2
+
+
+c ---------------------------------------------------------------------
+c KONIEC WCZYTYWANIA
+c ---------------------------------------------------------------------
+
+      korekta1 = numerr1(1)
+      write(*,*) "Original number of the first residue in
+     &            the first protein:"
+      write(*,*) numerr1(1)
+
+      write(*,*) "Correction of the first residue in the first protein:"
+      write(*,*) korekta1
+
+
+c       wymiar=(distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2)
+c       wymiar=wymiar/12.0
+c       wymiar=10.0
+
+c      write(*,*) "Minimum required distance between centers of mass:"
+c      write(*,*) wymiar
+
+      boxx = (6.5+distx1 + dist2acm)/2.0
+      boxy = (6.5+disty1 + dist2acm)/2.0
+      boxz = (6.5+distz1 + dist2acm)/2.0
+      write(*,*) "Rotation space (+/-):", boxx, boxy, boxz
+
+
+      do ii1=1,no_models
+
+      proba = 1
+      proba0x = 1
+      proba0y = 1
+      proba0z = 1
+      proba1 = 1
+      proba2 = 1
+      proba3 = 1
+      conf = 1
+
+
+       if (ii1.lt.10) then
+         write (plik3, "(A6,I1,a4)") "model0", ii1, ".pdb"
+       else
+         write (plik3, "(A5,I2,a4)") "model", ii1, ".pdb"
+       endif
+
+       write(*,*) "Conformation will be saved to file:", plik3
+
+c      plik3a = plik3//ilosc
+      open(3,file=plik3)
+
+
+      do i=1,ilosc_atomow1
+        write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),"A",
+     &               (numerr1(i)-korekta1+1),
+     &               x1(i),y1(i),z1(i)
+      enddo
+      write(3,303) "TER"
+c      write(3,304) "ENDMDL"
+
+      if (peptide.eq.1) then
+      wymiar=((distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2))/4
+      endif
+
+      if (peptide.eq.0) then
+      wymiar=((distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2))/8
+      endif
+
+      if (ii1.eq.1) then
+      write(*,*) "Initial minimum distance between centers of mass:",
+     & wymiar
+      endif
+
+c ROTATIONS OF THE SECOND MOLECULE
+      nd=4
+      t(1)=0.0
+      t(2)=0.0
+      t(3)=0.0
+      call ranorND(b,nd,ilosc_atomow2,ii1,seed1)
+c      do i=1,4
+c        write(*,*) b(i)
+c      enddo
+      call rot_trans(xt2,t,b,xf,ilosc_atomow2)
+      do i=1,ilosc_atomow2
+        x2(i)=xf(i,1)
+        y2(i)=xf(i,2)
+        z2(i)=xf(i,3)
+      enddo
+c END OF ROTATIONS
+
+
+       do while (.true.)
+        if (conf.gt.1) goto 133
+
+        seed = ABS((seed1+proba)/(ii1**2))
+        call srand(seed)
+        r = rand(seed)
+        seed11=ABS(seed+ii1-proba)*proba
+        seed12=ABS(seed+ii1-(proba**2))*proba
+        seed13=ABS(seed+ii1-(proba))*proba**2
+c        write(*,*) seed11, seed12, seed13
+        cm2xr = (rand(seed11)*2*boxx)-(boxx)
+        cm2yr = (rand(seed12)*2*boxy)-(boxy)
+        cm2zr = (rand(seed13)*2*boxz)-(boxz)
+
+      do i=1,ilosc_atomow2
+        x2r(i)=x2(i)-cm2xr
+        y2r(i)=y2(i)-cm2yr
+        z2r(i)=z2(i)-cm2zr
+      enddo
+
+
+c SPRAWDZANIE CZY NIE JEST ZBYT PODOBNE DO JUZ WYLOSOWANEGO
+      cmxx(ii1)=cm2xr
+      cmyy(ii1)=cm2yr
+      cmzz(ii1)=cm2zr
+
+      if (ii1.gt.1) then
+
+       do ir=1,ii1-1
+         dd=sqrt((cm2xr-cmxx(ir))**2+(cm2yr-cmyy(ir))**2+
+     &          (cm2zr-cmzz(ir))**2)
+
+c         write(*,*) "Center of mass is", dd, "A away from", ir
+c         write(*,*) "Minimum distance required:", wymiar, "A"
+
+c           write(*,*) ii1, ir, proba3, dd, wymiar
+
+         if (dd.lt.wymiar) then
+           proba3=proba3+1
+         if (proba3.gt.1.and.peptide.eq.1) wymiar=wymiar*0.99992
+         if (proba3.gt.1.and.peptide.eq.0) wymiar=wymiar*0.99992
+c           write(*,*) proba3, wymiar
+           goto 200
+         endif
+
+       enddo
+      endif
+
+
+
+
+c SPRAWDZANIE ODLEGLOSCI
+        accept=0
+      do i=1,ilosc_atomow2
+c        write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
+c     &               numerr2(i),x2(i)-xcm2,y2(i)-ycm2,z2(i)-zcm2
+
+        do j=1,ilosc_atomow1
+           dist12 = sqrt(((x2r(i)-x1(j))**2)+
+     &               ((y2r(i)-y1(j))**2)+
+     &               ((z2r(i)-z1(j))**2))
+c           write(*,*) dist12, cm2xr, cm2yr, cm2zr
+           if (dist12.lt.2.5) then
+               proba1=proba1+1
+               goto 200
+           endif
+
+           if (dist12.le.3.5) accept=1
+c           if (dist12.le.3.5) accept=1
+c           if (dist12.gt.3.5) proba2=proba2+1
+        enddo
+      enddo
+
+c      write(*,*) "No overlaps", proba
+      if (accept.eq.0) goto 200
+c      write(*,*) "No overlaps, contact", conf, proba
+c      write(3,305) "MODEL", conf
+c      conf = conf+1
+
+
+
+       write(*,*) "Conformation", ii1, "Is accepted after",
+     &             proba0x+proba0y+proba0z,
+     &             proba1, proba2, proba3, proba, "attempts. ",
+     &             "Dist between CoM of previous=", wymiar
+
+c Dodatkowe info
+      write(*,*)"Extr",ABS(cm2xr+xcm1), ABS(cm2yr+ycm1), ABS(cm2zr+zcm1)
+
+
+       conf=conf+1
+c       write (*,*)
+
+
+
+
+
+      korekta2 = numerr2(1)-1
+c      write(*,*) "Original number of the first residue in
+c     &            the second protein:"
+c      write(*,*) numerr2(1)
+
+c      write(*,*)"Correction of the first residue in the second protein:"
+c      write(*,*) korekta2
+      do i=1,ilosc_atomow2
+        write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),"B",
+     &               (numerr2(i)+ile_reszt_mol1-korekta2),
+     &               x2r(i),y2r(i),z2r(i)
+      enddo
+        write(3,303) "TER"
+c        write(3,304) "ENDMDL"
+c        write(3,305) "MODEL", conf
+        write(3,303) "END"
+
+ 200  continue
+        proba = proba + 1
+      enddo
+ 133  continue
+
+      close (3)
+
+c      call sleep(1)
+
+
+       if (ii1.lt.10) then
+         write (plik4, "(A9,I1,a4)") "template0", ii1, ".sco"
+       else
+         write (plik4, "(A8,I2,a4)") "template", ii1, ".sco"
+       endif
+
+       open (7,file=plik4)
+
+
+      if (peptide.eq.1) then
+      do ijl=1,(ile_reszt_mol1+ile_reszt_mol2+ilee)
+        if (glys1.eq.0) then
+          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.ge.(ile_reszt_mol1+2))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+        endif
+
+        if (glys1.eq.1) then
+          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.ge.(ile_reszt_mol1+1))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+        endif
+      enddo
+      endif
+
+
+      if (peptide.eq.0) then
+      do ijl=1,(ile_reszt_mol1+ile_reszt_mol2+ilee)
+c        write(*,*) "ijl"
+c no Gly
+        if (glys1.eq.0.and.glye1.eq.0.and.glys2.eq.0) then
+          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.gt.(ile_reszt_mol1+3).and.
+     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+3))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+4))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+        endif
+
+
+c chain 1 first Gly
+        if (glys1.eq.1.and.glye1.eq.0.and.glys2.eq.0) then
+          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+2))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.gt.(ile_reszt_mol1+2).and.
+     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+        endif
+
+c chain 1 last Gly
+        if (glys1.eq.0.and.glye1.eq.1.and.glys2.eq.0) then
+          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+2))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.gt.(ile_reszt_mol1+2).and.
+     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+        endif
+
+c chain 1 first Gly and chain 1 last Gly
+        if (glys1.eq.1.and.glye1.eq.1.and.glys2.eq.0) then
+          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+1))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.gt.(ile_reszt_mol1+1).and.
+     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+        endif
+
+c chain 2 first Gly
+        if (glys1.eq.0.and.glye1.eq.0.and.glys2.eq.1) then
+          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+2))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.gt.(ile_reszt_mol1+2).and.
+     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+        endif
+
+c chain 1 first Gly chain 2 first Gly
+        if (glys1.eq.1.and.glye1.eq.0.and.glys2.eq.1) then
+          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+1))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.gt.(ile_reszt_mol1+1).and.
+     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+        endif
+
+c chain 1 last Gly chain 2 first Gly
+        if (glys1.eq.0.and.glye1.eq.1.and.glys2.eq.1) then
+          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+c          if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
+c     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.gt.(ile_reszt_mol1+1).and.
+     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+        endif
+
+c all Gly
+        if (glys1.eq.1.and.glye1.eq.1.and.glys2.eq.1) then
+          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+          if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+c          if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
+c     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+          if (ijl.gt.(ile_reszt_mol1).and.
+     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1))
+     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+c          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+1))
+c     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+        endif
+
+
+
+      enddo
+      endif
+
+
+       close (7)
+
+c     koniec petli po ilosci struktur
+      enddo
+
+c      do i=1,20
+c        write(*,*) i, cmxx(i), cmyy(i), cmzz(i)
+c         dd=(cm2xr-cmxx(ir))**2+(cm2yr-cmyy(ir))**2+(cm2zr-cmyy(ir))**2
+c      enddo
+
+c      do i=1,20
+c      do j=1,20
+c         dd=sqrt((cmxx(i)-cmxx(j))**2+(cmyy(i)-cmyy(j))**2+
+c     &      (cmzz(i)-cmzz(j))**2)
+c         write(*,*) i,j,dd
+c      enddo
+c      enddo
+
+
+  300 format(6f8.2)
+  301 format(3f8.2)
+  302 format(f8.2)
+  800 format(a4,2X,i5,1X,a4,1X,a3,1X,a1,i4,4X,3f8.3)
+  303 format(a3)
+  304 format(a6)
+  305 format(a5,1X,i8)
+      end
+
+
+
+
+      SUBROUTINE SRAND(ISEED)
+C
+C  This subroutine sets the integer seed to be used with the
+C  companion RAND function to the value of ISEED.  A flag is 
+C  set to indicate that the sequence of pseudo-random numbers 
+C  for the specified seed should start from the beginning.
+C
+      COMMON /SEED/JSEED,IFRST
+C
+      JSEED = ISEED
+      IFRST = 0
+C
+      RETURN
+      END
+      REAL FUNCTION RAND()
+C
+C  This function returns a pseudo-random number for each invocation.
+C  It is a FORTRAN 77 adaptation of the "Integer Version 2" minimal 
+C  standard number generator whose Pascal code appears in the article:
+C
+C     Park, Steven K. and Miller, Keith W., "Random Number Generators: 
+C     Good Ones are Hard to Find", Communications of the ACM, 
+C     October, 1988.
+C
+      PARAMETER (MPLIER=16807,MODLUS=2147483647,MOBYMP=127773,
+     +           MOMDMP=2836)
+C
+      COMMON  /SEED/JSEED,IFRST
+      INTEGER HVLUE, LVLUE, TESTV, NEXTN
+      SAVE    NEXTN
+C
+      IF (IFRST .EQ. 0) THEN
+        NEXTN = JSEED
+        IFRST = 1
+      ENDIF
+C
+      HVLUE = NEXTN / MOBYMP
+      LVLUE = MOD(NEXTN, MOBYMP)
+      TESTV = MPLIER*LVLUE - MOMDMP*HVLUE
+      IF (TESTV .GT. 0) THEN
+        NEXTN = TESTV
+      ELSE
+        NEXTN = TESTV + MODLUS
+      ENDIF
+      RAND = REAL(NEXTN)/REAL(MODLUS)
+C
+      RETURN
+      END
+      BLOCKDATA RANDBD
+      COMMON /SEED/JSEED,IFRST
+C
+      DATA JSEED,IFRST/123456789,0/
+C
+      END
+
+      Subroutine ranorND(b,nd,ilosc_atomow2,ii1,seed1)
+      double precision b
+C generates a random vector on a unit sphere onC an ND-dimensional space.
+C algorithm 40 page 410.
+C  the algorithm assumes that the formula for bz is valid, i.e
+C   bz=(1.0-2.0*ransq),
+C and also that, ransq can be computed as  as the sum of the independent random
+C numbers to the second power (expression 3).
+      dimension ran(nd-1), b(nd)
+      integer seed,seed1
+c      write(*,*) "In Subroutine ranorND(b,nd), nd=", nd
+c      write(*,*) "ilosc_atomow2=", ilosc_atomow2
+c      do j=1,ilosc_atomow2
+        ransq=2
+        seed = seed1*ii1
+        call srand(seed)
+        do while (ransq.ge.1)
+c       write(*,*) ransq
+           rsq=0.0
+           do i=1,nd-1
+              ran(i)=1.0-2.0*rand(0)
+c           write(*,*) i, ran(i)
+              rsq=ran(i)*ran(i)+rsq          !  (3)
+c           write(*,*) i, rsq
+           enddo
+           ransq=rsq
+c           write(*,*) j, ransq
+        enddo
+        ranh=2.0*sqrt(1.0-ransq)
+c       write(*,*) j, ranh, ransq
+        do i=1,nd-1
+          b(i)=ran(i)*ranh
+c          write(*,*) ran(i), ranh
+        enddo
+        b(nd)=(1.0-2.0*ransq)
+c        write(*,*) b(1,j), b(2,j), b(3,j), b(4,j)
+c      enddo
+      return
+      end
+
+      subroutine rot_trans(xt2,t,q,xf,ilosc_atomow2)
+C x coordinates, t translation vector, q quaternion
+      double precision xt2(90000,3),xf(90000,3)
+      double precision t(3),q(4)
+      integer i
+      write(*,*) "Rotation vector:", q(1), q(2), q(3), q(4)
+      r11= q(1)*q(1)+q(2)*q(2)-q(3)*q(3)-q(4)*q(4)
+      r22= q(1)*q(1)-q(2)*q(2)+q(3)*q(3)-q(4)*q(4)
+      r33= q(1)*q(1)-q(2)*q(2)-q(3)*q(3)+q(4)*q(4)
+      r12= 2*(q(2)*q(3)-q(1)*q(4))
+      r21= 2*(q(2)*q(3)+q(1)*q(4))
+      r13= 2*(q(2)*q(4)+q(1)*q(3))
+      r31= 2*(q(2)*q(4)-q(1)*q(3))
+      r23= 2*(q(3)*q(4)-q(1)*q(2))
+      r32= 2*(q(3)*q(4)+q(1)*q(2))
+
+c      write(*,*) r11, r22, r33, r12, r21, r13, r31, r23, r32
+
+      do i=1,ilosc_atomow2
+        xf(i,1)=  r11*xt2(i,1)+r12*xt2(i,2)+r13*xt2(i,3) + t(1)
+        xf(i,2)=  r21*xt2(i,1)+r22*xt2(i,2)+r23*xt2(i,3) + t(2)
+        xf(i,3)=  r31*xt2(i,1)+r32*xt2(i,2)+r33*xt2(i,3) + t(3)
+c        write(*,*) i, xt2(i,1), xt2(i,2), xt2(i,3)
+c        write(*,*) i, xf(i,1), xf(i,2), xf(i,3)
+      enddo
+
+      return
+      end
+
diff --git a/source/unres-dock/generator_v13b.F b/source/unres-dock/generator_v13b.F
deleted file mode 100644 (file)
index 0a33cab..0000000
+++ /dev/null
@@ -1,967 +0,0 @@
-      program generator
-      implicit none
-      integer proba, conf, cm1, cm2, accept, nd
-      integer krok, i, n, j, g, ii1, ilosc, ijl
-      integer nnn, seed, proba1, proba2, proba3, proba0x,proba0y,proba0z
-      integer ilosc_atomow1, ilosc_atomow2, korekta1, korekta2
-      integer ile_reszt_mol1, ile_reszt_mol2, ir, peptide,numerr2(90000)
-      integer numera1(90000),numerr1(90000),numera2(90000)
-      integer glys1, glys2, glye1, glye2, ilee
-      real*8 rand, r, boxx, boxy, boxz, dist2acm, dist1acm, b(4), t(3)
-      real*8 minx1, miny1, minz1, maxx1, maxy1, maxz1
-      real*8 minx2, miny2, minz2, maxx2, maxy2, maxz2
-      real*8 distx1, disty1, distz1, distx2, disty2, distz2
-      real*8 xcm1, ycm1, zcm1, xcm2, ycm2, zcm2
-      real*8 dist1cm, dist1cmt, dist2cm, dist2cmt
-      real*8 cm2xr, cm2yr, cm2zr,x2r(90000),y2r(90000),z2r(90000),dist12
-      real*8 angle, c, s, x2new, y2new, z2new
-      character*60 plik1, plik2, plik3, plik4
-      character*54 linia
-      real*8 x1(90000),y1(90000),z1(90000),x2(90000),y2(90000),z2(90000)
-      real*8 dd, wymiar, cmxx(900), cmyy(900), cmzz(900),xt2(90000,3)
-      real*8 xf(90000,3)
-      character*1 chain
-      character*3 r1s, r2s, r1e, r2e
-      character*5 atoma1(90000), atoma2(90000)
-      character*6 nazwaa1(90000), nazwar1(90000)
-      character*6 nazwaa2(90000), nazwar2(90000)
-      integer time_a(3)
-
-      korekta1 = 1
-      korekta2 = 1
-
-c      write(*,*)"Sposob uruchamiania:"
-c      write(*,*)"nazwa_programu  nazwa_pliku_inp_pdb1
-c     &  nazwa_pliku_inp_pdb2  nazwa_pliku_out"
-c      write(*,*)""
-
-      nnn = iargc()
-      if (nnn.lt.3) then
-      write(*,*)"program  input_pdb1  input_pdb2
-     &  [0-1]     0 for protein, 1 for peptide"
-      stop
-      endif
-
-      call getarg(1,plik1)
-      call getarg(2,plik2)
-      call getarg(3,plik3)
-      open(1,file=plik1,status="old")
-      open(2,file=plik2,status="old")
-      open(4,file='temp1')
-      open(5,file='temp2')
-      write(*,*) "All files read"
-
-      read(plik3(1:1),'(i1)') peptide
-
-      if (peptide.ne.0.and.peptide.ne.1) then
-        write(*,*) "Third parameter must be 0 or 1,
-     &              where 0 is for a protein-protein docking,
-     &              and 1 is for protein-peptide docking."
-        STOP
-      endif
-
-      write(*,*) "Option", peptide, "selected
-     &            (0 for protein, 1 for peptide)"
-
-
-c MOLEKULA 1
-      do while (.true.)
-        read(1,'(a54)',end=22) linia
-        if (linia(1:4).eq.'ATOM'.and.linia(17:17).lt.'B') then
-        write(4,'(a54)') linia
-        endif
-        if (linia(1:3).eq.'TER') then
-c        write(2,'(a54)') linia
-         goto 22
-        endif
-      enddo
-
-22    continue
-      close(4)
-      write(*,*) "Molecule 1 read"
-
-
-c MOLEKULA 2
-      do while (.true.)
-        read(2,'(a54)',end=23) linia
-        if (linia(1:4).eq.'ATOM'.and.linia(17:17).lt.'B') then
-        write(5,'(a54)') linia
-        endif
-        if (linia(1:3).eq.'TER') then
-c        write(2,'(a54)') linia
-         goto 23
-        endif
-      enddo
-23    continue
-      close(5)
-      write(*,*) "Molecule 2 read"
-
-      open(4,file='temp1')
-      open(5,file='temp2')
-
-      minx1=999.99
-      miny1=999.99
-      minz1=999.99
-
-      maxx1=-999.99
-      maxy1=-999.99
-      maxz1=-999.99
-
-
-      minx2=999.99
-      miny2=999.99
-      minz2=999.99
-
-      maxx2=-999.99
-      maxy2=-999.99
-      maxz2=-999.99
-
-
-
-c MOLEKULA 1
-      i=1
-      xcm1=0
-      ycm1=0
-      zcm1=0
-      ile_reszt_mol1=0
-
-      do while (.true.)
-          read(4,800,end=111)
-     &  atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),chain,numerr1(i),
-     &  x1(i),y1(i),z1(i)
-
-
-c         write(*,300) minx, maxx, miny, maxy, minz, maxz
-
-         if (x1(i).lt.minx1) minx1=x1(i)
-         if (y1(i).lt.miny1) miny1=y1(i)
-         if (z1(i).lt.minz1) minz1=z1(i)
-
-         if (x1(i).gt.maxx1) maxx1=x1(i)
-         if (y1(i).gt.maxy1) maxy1=y1(i)
-         if (z1(i).gt.maxz1) maxz1=z1(i)
-
-c         write(*,300) minx, maxx, miny, maxy, minz, maxz
-
-c         write(*,*) nazwaa1(i)
-         if (nazwaa1(i).eq.' CA ') then
-             xcm1 = xcm1 + x1(i)
-             ycm1 = ycm1 + y1(i)
-             zcm1 = zcm1 + z1(i)
-             ile_reszt_mol1 = ile_reszt_mol1 +1
-         endif
-
-         if (atoma1(i).eq.'TER ') goto 111
-         if (atoma1(i).eq.'END ') goto 111
-         if (i.eq.1) write(3,'(a6)') "REMARK"
-c        write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),
-c     &               numerr1(i),x1(i),y1(i),z1(i)
-
-c        write(*,*) i, x(i),y(i),z(i)
-
-        i=i+1
-      enddo
-111   continue
-
-      distx1=maxx1-minx1
-      disty1=maxy1-miny1
-      distz1=maxz1-minz1
-      ilosc_atomow1 = i-1
-      xcm1 = xcm1 / (ile_reszt_mol1*1.0)
-      ycm1 = ycm1 / (ile_reszt_mol1*1.0)
-      zcm1 = zcm1 / (ile_reszt_mol1*1.0)
-
-      do i=1,ilosc_atomow1
-         x1(i)=x1(i)-xcm1
-         y1(i)=y1(i)-ycm1
-         z1(i)=z1(i)-zcm1
-      enddo
-
-      xcm1=0
-      ycm1=0
-      zcm1=0
-
-      do i=1,ilosc_atomow1
-         if (nazwaa1(i).eq.' CA ') then
-             xcm1 = xcm1 + x1(i)
-             ycm1 = ycm1 + y1(i)
-             zcm1 = zcm1 + z1(i)
-         endif
-      enddo
-      xcm1 = xcm1 / (ile_reszt_mol1*1.0)
-      ycm1 = ycm1 / (ile_reszt_mol1*1.0)
-      zcm1 = zcm1 / (ile_reszt_mol1*1.0)
-
-      dist1cm=999.9
-      dist1acm=0.0
-      do i=1,ilosc_atomow1
-c        write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),
-c     &               numerr1(i),x1(i)-xcm1,y1(i)-ycm1,z1(i)-zcm1
-
-        dist1cmt = dsqrt(((xcm1-x1(i))**2)+
-     &               ((ycm1-y1(i))**2)+
-     &               ((zcm1-z1(i))**2))
-
-c        write(*,*) dist1cmt, dist1cm, i, cm1
-        if (dist1cm.gt.dist1cmt) then
-           dist1cm=dist1cmt
-           cm1=i
-        endif
-
-      enddo
-
-      do i=1,ilosc_atomow1
-      do j=i,ilosc_atomow1
-                 dist1cmt = dsqrt(((x1(j)-x1(i))**2)+
-     &               ((y1(j)-y1(i))**2)+
-     &               ((z1(j)-z1(i))**2))
-        if (dist1acm.lt.dist1cmt) then
-           dist1acm=dist1cmt
-        endif
-      enddo
-      enddo
-
-
-c      write(3,303) "TER"
-c      write(3,304) "ENDMDL"
-
-      write(*,*) "Molecule 1 calculated"
-
-c MOLEKULA 2
-      i=1
-      xcm2=0
-      ycm2=0
-      zcm2=0
-      ile_reszt_mol2=0
-
-      do while (.true.)
-          read(5,800,end=112)
-     &  atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),chain,numerr2(i),
-     &  x2(i),y2(i),z2(i)
-
-c         write(*,300) minx, maxx, miny, maxy, minz, maxz
-
-         if (x2(i).lt.minx2) minx2=x2(i)
-         if (y2(i).lt.miny2) miny2=y2(i)
-         if (z2(i).lt.minz2) minz2=z2(i)
-
-         if (x2(i).gt.maxx2) maxx2=x2(i)
-         if (y2(i).gt.maxy2) maxy2=y2(i)
-         if (z2(i).gt.maxz2) maxz2=z2(i)
-
-c         write(*,300) minx, maxx, miny, maxy, minz, maxz
-
-c         write(*,*) nazwaa1(i)
-         if (nazwaa2(i).eq.' CA ') then
-             xcm2 = xcm2 + x2(i)
-             ycm2 = ycm2 + y2(i)
-             zcm2 = zcm2 + z2(i)
-             ile_reszt_mol2 = ile_reszt_mol2 + 1
-         endif
-
-         if (atoma2(i).eq.'TER ') goto 111
-         if (atoma2(i).eq.'END ') goto 111
-c         if (i.eq.1) write(3,'(a6)') "REMARK"
-c        write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
-c     &               numerr2(i),x2(i),y2(i),z2(i)
-c        write(*,*) i, x(i),y(i),z(i)
-
-        i=i+1
-      enddo
-112   continue
-
-      distx2=maxx2-minx2
-      disty2=maxy2-miny2
-      distz2=maxz2-minz2
-      ilosc_atomow2 = i-1
-
-      xcm2 = xcm2 / (ile_reszt_mol2*1.0)
-      ycm2 = ycm2 / (ile_reszt_mol2*1.0)
-      zcm2 = zcm2 / (ile_reszt_mol2*1.0)
-
-      do i=1,ilosc_atomow2
-         x2(i)=x2(i)-xcm2
-         y2(i)=y2(i)-ycm2
-         z2(i)=z2(i)-zcm2
-c        write(*,*) x2(i),y2(i),z2(i)
-         xt2(i,1)=x2(i)
-         xt2(i,2)=y2(i)
-         xt2(i,3)=z2(i)
-c        write(*,*) xt2(i,1), xt2(i,2), xt2(i,3)
-      enddo
-
-      xcm2=0
-      ycm2=0
-      zcm2=0
-      do i=1,ilosc_atomow2
-         if (nazwaa2(i).eq.' CA ') then
-             xcm2 = xcm2 + x2(i)
-             ycm2 = ycm2 + y2(i)
-             zcm2 = zcm2 + z2(i)
-         endif
-      enddo
-      xcm2 = xcm2 / (ile_reszt_mol2*1.0)
-      ycm2 = ycm2 / (ile_reszt_mol2*1.0)
-      zcm2 = zcm2 / (ile_reszt_mol2*1.0)
-
-
-      dist2cm=999.9
-      dist2acm=0.0
-      do i=1,ilosc_atomow2
-c        write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
-c     &               numerr2(i),x2(i)-xcm2,y2(i)-ycm2,z2(i)-zcm2
-
-        dist2cmt = dsqrt(((xcm2-x2(i))**2)+
-     &               ((ycm2-y2(i))**2)+
-     &               ((zcm2-z2(i))**2))
-
-c        write(*,*) dist2cmt, dist2cm, i, cm2
-        if (dist2cm.gt.dist2cmt) then
-           dist2cm=dist2cmt
-           cm2=i
-        endif
-
-      enddo
-
-
-      do i=1,ilosc_atomow2
-      do j=i,ilosc_atomow2
-                 dist2cmt = dsqrt(((x2(j)-x2(i))**2)+
-     &               ((y2(j)-y2(i))**2)+
-     &               ((z2(j)-z2(i))**2))
-        if (dist2acm.lt.dist2cmt) then
-           dist2acm=dist2cmt
-        endif
-      enddo
-      enddo
-
-
-c      write(3,303) "TER"
-
-      glys1=0
-      glys2=0
-      glye1=0
-      glye2=0
-      r1s=nazwar1(1)
-      r2s=nazwar2(1)
-      r1e=nazwar1(ile_reszt_mol1)
-      r2e=nazwar2(ile_reszt_mol2)
-
-      if (r1s.eq."GLY") then
-        glys1=1
-        write(*,*) "Chain 1 is starting from Gly ", r1s, glys1
-      endif
-
-      if (r2s.eq."GLY") then
-        glys2=1
-        write(*,*) "Chain 2 is starting from Gly ", r2s, glys2
-      endif
-
-      if (r1e.eq."GLY") then
-        glye1=1
-        write(*,*) "Chain 1 is ending at Gly ", r1e, glye1
-      endif
-
-
-      if (r2e.eq."GLY") then
-        glye2=1
-        write(*,*) "Chain 2 is ending from Gly ", r2e, glye2
-      endif
-
-
-c checking for Gly
-      ilee=4
-      if(glys1.eq.1) ilee=ilee-1
-      if(glys2.eq.1) ilee=ilee-1
-      if(glye1.eq.1) ilee=ilee-1
-      if(glye2.eq.1) ilee=ilee-1
-      write(*,*) "How many dummy atoms:", ilee
-      write(*,*) ""
-
-
-      write(*,*) "Molecule 2 calculated"
-      write(*,*) "Number of atoms:", ilosc_atomow1, ilosc_atomow2
-
-      write(*,*) "Min and max coordinates in the systems"
-      write(*,300) minx1, maxx1, miny1, maxy1, minz1, maxz1
-      write(*,300) minx2, maxx2, miny2, maxy2, minz2, maxz2
-
-      write(*,*) "Distances in axes x, y, z"
-      write(*,301) distx1, disty1, distz1
-      write(*,301) distx2, disty2, distz2
-
-      boxx = (distx1 + distx2)*1.5 + 20.0
-      boxy = (disty1 + disty2)*1.5 + 20.0
-      boxz = (distz1 + distz2)*1.5 + 20.0
-
-c      write(*,*) "Boxsize [x, y, z]"
-c      write(*,301) boxx, boxy, boxz
-
-      write(*,*) "Maximum distances:"
-      write(*,*) dist1acm, dist2acm
-
-      write(*,*) "Boxsize (suggested)"
-      write(*,*) (dist1acm+dist2acm)*1.2+20
-      open(61,file='boxsize.txt')
-      write(61,302) ((dist1acm+dist2acm)*1.2+20)
-      close (61)
-
-      write(*,*) "Center of masses:"
-      write(*,301) xcm1, ycm1, zcm1
-      write(*,301) xcm2, ycm2, zcm2
-
-      write(*,*) "Center of masses atoms:"
-      write(*,800) atoma1(cm1),numera1(cm1),nazwaa1(cm1),nazwar1(cm1),
-     &             " ",numerr1(cm1),x1(cm1),y1(cm1),z1(cm1)
-      write(*,800) atoma2(cm2),numera2(cm2),nazwaa2(cm2),nazwar2(cm2),
-     &             " ",numerr2(cm2),x2(cm2),y2(cm2),z2(cm2)
-
-
-      write(*,*) "Number of amino-acid residues in two proteins:"
-      write(*,*) ile_reszt_mol1, ile_reszt_mol2
-
-
-c ---------------------------------------------------------------------
-c KONIEC WCZYTYWANIA
-c ---------------------------------------------------------------------
-
-      korekta1 = numerr1(1)
-      write(*,*) "Original number of the first residue in
-     &            the first protein:"
-      write(*,*) numerr1(1)
-
-      write(*,*) "Correction of the first residue in the first protein:"
-      write(*,*) korekta1
-
-
-c       wymiar=(distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2)
-c       wymiar=wymiar/12.0
-c       wymiar=10.0
-
-c      write(*,*) "Minimum required distance between centers of mass:"
-c      write(*,*) wymiar
-
-      boxx = (7+distx1 + dist2acm)/2.0
-      boxy = (7+disty1 + dist2acm)/2.0
-      boxz = (7+distz1 + dist2acm)/2.0
-      write(*,*) "Rotation space (+/-):", boxx, boxy, boxz
-
-
-      do ii1=1,24
-
-      proba = 1
-      proba0x = 1
-      proba0y = 1
-      proba0z = 1
-      proba1 = 1
-      proba2 = 1
-      proba3 = 1
-      conf = 1
-
-
-       if (ii1.lt.10) then
-         write (plik3, "(A6,I1,a4)") "model0", ii1, ".pdb"
-       else
-         write (plik3, "(A5,I2,a4)") "model", ii1, ".pdb"
-       endif
-
-       write(*,*) "Conformation will be saved to file:", plik3
-
-c      plik3a = plik3//ilosc
-      open(3,file=plik3)
-
-
-      do i=1,ilosc_atomow1
-        write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),"A",
-     &               (numerr1(i)-korekta1+1),
-     &               x1(i),y1(i),z1(i)
-      enddo
-      write(3,303) "TER"
-c      write(3,304) "ENDMDL"
-
-      if (peptide.eq.1) then
-      wymiar=((distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2))/4
-      endif
-
-      if (peptide.eq.0) then
-      wymiar=((distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2))/7
-      endif
-
-      if (ii1.eq.1) then
-      write(*,*) "Initial minimum distance between centers of mass:",
-     & wymiar
-      endif
-
-c ROTATIONS OF THE SECOND MOLECULE
-      nd=4
-      t(1)=0.0
-      t(2)=0.0
-      t(3)=0.0
-      call ranorND(b,nd,ilosc_atomow2,ii1)
-c      do i=1,4
-c        write(*,*) b(i)
-c      enddo
-      call rot_trans(xt2,t,b,xf,ilosc_atomow2)
-      do i=1,ilosc_atomow2
-        x2(i)=xf(i,1)
-        y2(i)=xf(i,2)
-        z2(i)=xf(i,3)
-      enddo
-c END OF ROTATIONS
-
-
-       do while (.true.)
-        if (conf.gt.1) goto 133
-
-#ifdef GFORTRAN
-        seed = time()*proba
-#else
-        call  itime(time_a)
-        seed = (60*time_a(2)+time_a(3))*proba
-#endif
-        call srand(seed)
-        r = rand(0)
-c        write(*,*)rand(0),rand(0),rand(0)
-c        write(*,*)rand(0),rand(0),rand(0)
-
-        cm2xr = (rand(0)*2*boxx)-(boxx)
-        cm2yr = (rand(0)*2*boxy)-(boxy)
-        cm2zr = (rand(0)*2*boxz)-(boxz)
-c        write(*,*) cm2xr, cm2yr, cm2zr
-c        write(*,300)rand(0),rand(0),rand(0)
-
-c        write(*,*) ABS(cm2xr+xcm1), (dist1acm+dist2acm+3)
-
-c        if (ABS(cm2xr+xcm1).gt.((dist1acm+dist2acm+5)*0.8)) then
-c           proba0x=proba0x+1
-c           goto 200
-c        endif
-
-c        if (ABS(cm2yr+ycm1).gt.((dist1acm+dist2acm+5)*0.8)) then
-c           proba0y=proba0y+1
-c           goto 200
-c        endif
-
-c        if (ABS(cm2zr+zcm1).gt.((dist1acm+dist2acm+5)*0.8)) then
-c           proba0z=proba0z+1
-c           goto 200
-c        endif
-
-
-      do i=1,ilosc_atomow2
-        x2r(i)=x2(i)-cm2xr
-        y2r(i)=y2(i)-cm2yr
-        z2r(i)=z2(i)-cm2zr
-      enddo
-
-
-c SPRAWDZANIE CZY NIE JEST ZBYT PODOBNE DO JUZ WYLOSOWANEGO
-      cmxx(ii1)=cm2xr
-      cmyy(ii1)=cm2yr
-      cmzz(ii1)=cm2zr
-
-      if (ii1.gt.1) then
-
-       do ir=1,ii1-1
-         dd=sqrt((cm2xr-cmxx(ir))**2+(cm2yr-cmyy(ir))**2+
-     &          (cm2zr-cmzz(ir))**2)
-
-c         write(*,*) "Center of mass is", dd, "A away from", ir
-c         write(*,*) "Minimum distance required:", wymiar, "A"
-
-c           write(*,*) ii1, ir, proba3, dd, wymiar
-
-         if (dd.lt.wymiar) then
-           proba3=proba3+1
-         if (proba3.gt.1.and.peptide.eq.1) wymiar=wymiar*0.99992
-         if (proba3.gt.1.and.peptide.eq.0) wymiar=wymiar*0.99992
-c           write(*,*) proba3, wymiar
-           goto 200
-         endif
-
-       enddo
-      endif
-
-
-
-
-c SPRAWDZANIE ODLEGLOSCI
-        accept=0
-      do i=1,ilosc_atomow2
-c        write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
-c     &               numerr2(i),x2(i)-xcm2,y2(i)-ycm2,z2(i)-zcm2
-
-        do j=1,ilosc_atomow1
-           dist12 = sqrt(((x2r(i)-x1(j))**2)+
-     &               ((y2r(i)-y1(j))**2)+
-     &               ((z2r(i)-z1(j))**2))
-c           write(*,*) dist12, cm2xr, cm2yr, cm2zr
-           if (dist12.lt.2.5) then
-               proba1=proba1+1
-               goto 200
-           endif
-
-           if (dist12.le.3.5) accept=1
-c           if (dist12.le.3.5) accept=1
-c           if (dist12.gt.3.5) proba2=proba2+1
-        enddo
-      enddo
-
-c      write(*,*) "No overlaps", proba
-      if (accept.eq.0) goto 200
-c      write(*,*) "No overlaps, contact", conf, proba
-c      write(3,305) "MODEL", conf
-c      conf = conf+1
-
-
-
-       write(*,*) "Conformation", ii1, "Is accepted after",
-     &             proba0x+proba0y+proba0z,
-     &             proba1, proba2, proba3, proba, "attempts. ",
-     &             "Dist between CoM of previous=", wymiar
-
-c Dodatkowe info
-      write(*,*)"Extr",ABS(cm2xr+xcm1), ABS(cm2yr+ycm1), ABS(cm2zr+zcm1)
-
-
-       conf=conf+1
-c       write (*,*)
-
-
-
-
-
-      korekta2 = numerr2(1)-1
-c      write(*,*) "Original number of the first residue in
-c     &            the second protein:"
-c      write(*,*) numerr2(1)
-
-c      write(*,*)"Correction of the first residue in the second protein:"
-c      write(*,*) korekta2
-      do i=1,ilosc_atomow2
-        write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),"B",
-     &               (numerr2(i)+ile_reszt_mol1-korekta2),
-     &               x2r(i),y2r(i),z2r(i)
-      enddo
-        write(3,303) "TER"
-c        write(3,304) "ENDMDL"
-c        write(3,305) "MODEL", conf
-        write(3,303) "END"
-
- 200  continue
-        proba = proba + 1
-      enddo
- 133  continue
-
-      close (3)
-
-c      call sleep(1)
-
-
-       if (ii1.lt.10) then
-         write (plik4, "(A9,I1,a4)") "template0", ii1, ".sco"
-       else
-         write (plik4, "(A8,I2,a4)") "template", ii1, ".sco"
-       endif
-
-       open (7,file=plik4)
-
-
-      if (peptide.eq.1) then
-      do ijl=1,(ile_reszt_mol1+ile_reszt_mol2+ilee)
-        if (glys1.eq.0) then
-          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.ge.(ile_reszt_mol1+2))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-        endif
-
-        if (glys1.eq.1) then
-          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.ge.(ile_reszt_mol1+1))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-        endif
-      enddo
-      endif
-
-
-      if (peptide.eq.0) then
-      do ijl=1,(ile_reszt_mol1+ile_reszt_mol2+ilee)
-c        write(*,*) "ijl"
-c no Gly
-        if (glys1.eq.0.and.glye1.eq.0.and.glys2.eq.0) then
-          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.gt.(ile_reszt_mol1+3).and.
-     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+3))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
-          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+4))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-        endif
-
-
-c chain 1 first Gly
-        if (glys1.eq.1.and.glye1.eq.0.and.glys2.eq.0) then
-          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+2))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.gt.(ile_reszt_mol1+2).and.
-     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
-          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-        endif
-
-c chain 1 last Gly
-        if (glys1.eq.0.and.glye1.eq.1.and.glys2.eq.0) then
-          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+2))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.gt.(ile_reszt_mol1+2).and.
-     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
-          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-        endif
-
-c chain 1 first Gly and chain 1 last Gly
-        if (glys1.eq.1.and.glye1.eq.1.and.glys2.eq.0) then
-          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+1))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.gt.(ile_reszt_mol1+1).and.
-     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
-          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-        endif
-
-c chain 2 first Gly
-        if (glys1.eq.0.and.glye1.eq.0.and.glys2.eq.1) then
-          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+2))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.gt.(ile_reszt_mol1+2).and.
-     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
-          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-        endif
-
-c chain 1 first Gly chain 2 first Gly
-        if (glys1.eq.1.and.glye1.eq.0.and.glys2.eq.1) then
-          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+1))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.gt.(ile_reszt_mol1+1).and.
-     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
-          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-        endif
-
-c chain 1 last Gly chain 2 first Gly
-        if (glys1.eq.0.and.glye1.eq.1.and.glys2.eq.1) then
-          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-c          if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
-c     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.gt.(ile_reszt_mol1+1).and.
-     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
-          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-        endif
-
-c all Gly
-        if (glys1.eq.1.and.glye1.eq.1.and.glys2.eq.1) then
-          if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-          if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-c          if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
-c     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-          if (ijl.gt.(ile_reszt_mol1).and.
-     &     ijl.le.(ile_reszt_mol2+ile_reszt_mol1))
-     &      write(7,*) ijl, "1.0 1.0 1.0 ", "2"
-c          if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+1))
-c     &      write(7,*) ijl, "1.0 1.0 1.0 ", "0"
-        endif
-
-
-
-      enddo
-      endif
-
-
-       close (7)
-
-c     koniec petli po ilosci struktur
-      enddo
-
-c      do i=1,20
-c        write(*,*) i, cmxx(i), cmyy(i), cmzz(i)
-c         dd=(cm2xr-cmxx(ir))**2+(cm2yr-cmyy(ir))**2+(cm2zr-cmyy(ir))**2
-c      enddo
-
-c      do i=1,20
-c      do j=1,20
-c         dd=sqrt((cmxx(i)-cmxx(j))**2+(cmyy(i)-cmyy(j))**2+
-c     &      (cmzz(i)-cmzz(j))**2)
-c         write(*,*) i,j,dd
-c      enddo
-c      enddo
-
-
-  300 format(6f8.2)
-  301 format(3f8.2)
-  302 format(f8.2)
-  800 format(a4,2X,i5,1X,a4,1X,a3,1X,a1,i4,4X,3f8.3)
-  303 format(a3)
-  304 format(a6)
-  305 format(a5,1X,i8)
-      end
-
-
-
-
-      SUBROUTINE SRAND(ISEED)
-C
-C  This subroutine sets the integer seed to be used with the
-C  companion RAND function to the value of ISEED.  A flag is 
-C  set to indicate that the sequence of pseudo-random numbers 
-C  for the specified seed should start from the beginning.
-C
-      COMMON /SEED/JSEED,IFRST
-C
-      JSEED = ISEED
-      IFRST = 0
-C
-      RETURN
-      END
-      REAL FUNCTION RAND()
-C
-C  This function returns a pseudo-random number for each invocation.
-C  It is a FORTRAN 77 adaptation of the "Integer Version 2" minimal 
-C  standard number generator whose Pascal code appears in the article:
-C
-C     Park, Steven K. and Miller, Keith W., "Random Number Generators: 
-C     Good Ones are Hard to Find", Communications of the ACM, 
-C     October, 1988.
-C
-      PARAMETER (MPLIER=16807,MODLUS=2147483647,MOBYMP=127773,
-     +           MOMDMP=2836)
-C
-      COMMON  /SEED/JSEED,IFRST
-      INTEGER HVLUE, LVLUE, TESTV, NEXTN
-      SAVE    NEXTN
-C
-      IF (IFRST .EQ. 0) THEN
-        NEXTN = JSEED
-        IFRST = 1
-      ENDIF
-C
-      HVLUE = NEXTN / MOBYMP
-      LVLUE = MOD(NEXTN, MOBYMP)
-      TESTV = MPLIER*LVLUE - MOMDMP*HVLUE
-      IF (TESTV .GT. 0) THEN
-        NEXTN = TESTV
-      ELSE
-        NEXTN = TESTV + MODLUS
-      ENDIF
-      RAND = REAL(NEXTN)/REAL(MODLUS)
-C
-      RETURN
-      END
-      BLOCKDATA RANDBD
-      COMMON /SEED/JSEED,IFRST
-C
-      DATA JSEED,IFRST/123456789,0/
-C
-      END
-
-      Subroutine ranorND(b,nd,ilosc_atomow2,ii1)
-      double precision b
-C generates a random vector on a unit sphere onC an ND-dimensional space.
-C algorithm 40 page 410.
-C  the algorithm assumes that the formula for bz is valid, i.e
-C   bz=(1.0-2.0*ransq),
-C and also that, ransq can be computed as  as the sum of the independent random
-C numbers to the second power (expression 3).
-      dimension ran(nd-1), b(nd)
-      integer seed
-c      write(*,*) "In Subroutine ranorND(b,nd), nd=", nd
-c      write(*,*) "ilosc_atomow2=", ilosc_atomow2
-c      do j=1,ilosc_atomow2
-        ransq=2
-        seed = time()*ii1
-        call srand(seed)
-        do while (ransq.ge.1)
-c       write(*,*) ransq
-           rsq=0.0
-           do i=1,nd-1
-              ran(i)=1.0-2.0*rand(0)
-c           write(*,*) i, ran(i)
-              rsq=ran(i)*ran(i)+rsq          !  (3)
-c           write(*,*) i, rsq
-           enddo
-           ransq=rsq
-c           write(*,*) j, ransq
-        enddo
-        ranh=2.0*sqrt(1.0-ransq)
-c       write(*,*) j, ranh, ransq
-        do i=1,nd-1
-          b(i)=ran(i)*ranh
-c          write(*,*) ran(i), ranh
-        enddo
-        b(nd)=(1.0-2.0*ransq)
-c        write(*,*) b(1,j), b(2,j), b(3,j), b(4,j)
-c      enddo
-      return
-      end
-
-      subroutine rot_trans(xt2,t,q,xf,ilosc_atomow2)
-C x coordinates, t translation vector, q quaternion
-      double precision xt2(90000,3),xf(90000,3)
-      double precision t(3),q(4)
-      integer i
-      write(*,*) "Rotation vector:", q(1), q(2), q(3), q(4)
-      r11= q(1)*q(1)+q(2)*q(2)-q(3)*q(3)-q(4)*q(4)
-      r22= q(1)*q(1)-q(2)*q(2)+q(3)*q(3)-q(4)*q(4)
-      r33= q(1)*q(1)-q(2)*q(2)-q(3)*q(3)+q(4)*q(4)
-      r12= 2*(q(2)*q(3)-q(1)*q(4))
-      r21= 2*(q(2)*q(3)+q(1)*q(4))
-      r13= 2*(q(2)*q(4)+q(1)*q(3))
-      r31= 2*(q(2)*q(4)-q(1)*q(3))
-      r23= 2*(q(3)*q(4)-q(1)*q(2))
-      r32= 2*(q(3)*q(4)+q(1)*q(2))
-
-c      write(*,*) r11, r22, r33, r12, r21, r13, r31, r23, r32
-
-      do i=1,ilosc_atomow2
-        xf(i,1)=  r11*xt2(i,1)+r12*xt2(i,2)+r13*xt2(i,3) + t(1)
-        xf(i,2)=  r21*xt2(i,1)+r22*xt2(i,2)+r23*xt2(i,3) + t(2)
-        xf(i,3)=  r31*xt2(i,1)+r32*xt2(i,2)+r33*xt2(i,3) + t(3)
-c        write(*,*) i, xt2(i,1), xt2(i,2), xt2(i,3)
-c        write(*,*) i, xf(i,1), xf(i,2), xf(i,3)
-      enddo
-
-      return
-      end
-