set(UNRES_MAJOR 3)
set(UNRES_MINOR 2)
-set(UNRES_PATCH 1)
+set(UNRES_PATCH 2)
set(UNRES_VERSION ${UNRES_MAJOR}.${UNRES_MINOR}.${UNRES_PATCH})
#======================================
# Set force field
if (NOT UNRES_FF)
- set(UNRES_MD_FF "GAB" CACHE STRING "Choose the force field, options are: GAB E0LL2Y" )
+ set(UNRES_MD_FF "E0LL2Y" CACHE STRING "Choose the force field, options are: GAB E0LL2Y" )
set_property(CACHE UNRES_MD_FF PROPERTY STRINGS "GAB" "E0LL2Y")
endif (NOT UNRES_FF)
if (MPI_Fortran_FOUND)
message("MPI found")
FIX_DBL_INCLUDE(MPI_Fortran_INCLUDE_PATH)
+ message(MPI_Fortran_INCLUDE_PATH)
+ message(${MPI_Fortran_INCLUDE_PATH})
+ message(MPI_Fortran_LIBRARIES)
+ message(${MPI_Fortran_LIBRARIES})
+ option(UNRES_SRUN "Use srun instead of mpiexec ?" OFF )
+ option(UNRES_MPIRUN "Use mpirun instead of mpiexec ?" OFF )
else()
message("MPI not found - disabling MPI compile flags ")
set ( UNRES_WITH_MPI "OFF")
--- /dev/null
+ 3 # Number of local interaction types
+GLY
+ 0.000000000000000
+ 0.292273916587998
+ 0.216221204139835
+ 0.000000000000000
+ 0.000000000000000
+ 2.373462483972307
+ -0.927962753087420
+ 0.000000000000000
+ 0.000000000000000
+ 1.365321421895682
+ -0.409536564749270
+ 0.000000000000000
+ 0.000000000000000
+CYS
+ 0.000000000000000
+ 0.250084847353610
+ -0.186158505094081
+ -0.504688747570979
+ 1.218679171649523
+ -2.089734050079038
+ 2.302365702770721
+ -0.532502145482045
+ -1.596421505165690
+ 1.270543992159271
+ 0.174687212656861
+ -0.599374829819892
+ 0.222101519622321
+PRO
+ 0.000000000000000
+ -0.787986560945931
+ -0.345208426278326
+ -1.111524460354935
+ 0.530324242079397
+ -1.548870000000000
+ 1.914370000000000
+ 0.664143000000000
+ -0.454839000000000
+ 0.448705912966141
+ 0.346799067155216
+ 0.311804899416344
+ 0.230482726984751
--- /dev/null
+ 4 6
+ 5.605353726100000 6.220003215400000 6.215989849600000 6.438696896300000
+ 6.209810123100000 5.959637479800000 5.431022266200000 4.879008525700000
+ 5.263842382200000 5.496195412400000 4.292812416200000 4.358225054000000
+ 4.266775592100000 3.681384595800000 3.540542964700000 3.702698591200000
+ 4.717759615600000 3.381199222700000 3.793608545800000 4.515749058500000
+ 6.629674668000000 6.671726050800000 6.816887694500000 6.837896015200000
+ 6.351203998600000 6.142519242300000 5.520020640600000 5.485893602400000
+ 4.938257326200000 4.279512916600000 4.053485701800000 4.208642852500000
+ 3.538808627900000 3.420973032700000 2.799574419300000 4.816426855300000
+ 3.879075507100000 3.587826217700000 4.645743255500000 6.642430634000000
+ 6.971594725000000 6.924122578700000 6.529132535300000 6.139482146000000
+ 5.441597184000000 5.291404478000000 4.788188052600000 4.130240871800000
+ 3.940527511700000 3.902273188000000 3.607892814500000 3.080971320600000
+ 3.018259534200000 4.793550727200000 3.871192813400000 3.682616878000000
+ 4.487266103000000 7.327170793400000 7.297017679300000 7.049494823500000
+ 6.256568766200000 5.813371511300000 5.884538276900000 5.346355324100000
+ 4.714692871600000 4.486479335900000 4.309235277900000 3.692836128100000
+ 4.010056687100000 3.658460848900000 4.590167600100000 4.468184401000000
+ 4.633433428200000 4.902394508200000 7.010634249300000 6.834160720400000
+ 6.204787608200000 5.580212224700000 5.671696872600000 5.201134493200000
+ 4.196652234900000 4.238393195500000 3.895407345300000 3.567908611800000
+ 3.113634812700000 2.762256124100000 4.509205337400000 4.023841260600000
+ 3.979985357800000 4.808718037700000 6.535360670800000 5.884448203300000
+ 5.110097626100000 5.551536089300000 4.958755923800000 4.203079077400000
+ 4.035160070900000 3.650628980600000 3.464041693600000 3.161102208700000
+ 2.797619283500000 4.042283276300000 3.441595274000000 3.862069498300000
+ 4.593424600900000 5.282881132500000 4.829846631500000 4.757532777700000
+ 4.724977904200000 3.565638428500000 3.561336656700000 3.927304556400000
+ 3.766477911800000 3.586169976100000 3.552319162700000 4.650867246300000
+ 4.242430826000000 4.098772778300000 4.507966992900000 4.222264575400000
+ 4.162714941700000 3.978637227000000 3.162331920100000 2.937969673400000
+ 3.136598518800000 2.802585147600000 2.657634348700000 2.873339583700000
+ 3.878589165500000 3.444306825200000 3.440513267300000 4.091530576300000
+ 4.386065435100000 3.652001416700000 3.026493788100000 2.568057949300000
+ 2.500185737000000 2.139309478200000 1.470707738900000 1.737318191600000
+ 3.104534275200000 2.015232903800000 1.819620913600000 3.639585254600000
+ 2.501655793500000 2.787960649300000 2.142475681600000 1.074154474700000
+ 1.323643885000000 -0.271235667800000 0.761331218100000 2.862734828500000
+ 1.500212764900000 -0.239257763600000 3.538112898500000 2.290384744700000
+ 2.246677155000000 1.505360785600000 1.403179718800000 0.967620968700000
+ 1.307554184200000 2.859511860400000 1.983305353800000 -0.008577364700000
+ 2.955755366600000 1.280003824300000 0.768980610000000 0.911960636600000
+ -0.074437179300000 0.366996542700000 2.428856320000000 1.497548217400000
+ -0.213410189700000 2.941502147900000 -0.679242885900000 0.453238323900000
+ -0.759038766000000 -0.361703484600000 1.680327505800000 0.677520998800000
+ -0.535483746800000 2.620859136300000 0.413612250000000 -0.163715287300000
+ 0.221256472800000 2.128712602000000 0.389638827500000 -0.235408965000000
+ 2.325532607700000 -3.519353107400000 -2.015730792900000 1.835592616000000
+ 2.748917412400000 2.009839155800000 1.797571866700000 -1.353268823200000
+ 2.550427524900000 2.820287379000000 1.625360967100000 1.862509124700000
+ 3.729277869700000 2.294443648100000 -0.030356525500000 3.111577617700000
+ -0.082736296100000 -1.604311318200000 2.443983743500000 -4.389778328000000
+ 2.366463453300000 4.192796926000000 2.674806001700000 2.699903447923231
+ 2.969074945285474 2.893433539204819 3.025971784817564 2.862805741160594
+ 2.526510086781303 2.424691603147259 2.468072853823478 2.397655578798363
+ 2.574880627216491 2.408998508198888 2.430511884949466 2.449395893015385
+ 2.498838549850558 2.499580191788341 2.377546242648636 2.327813161765345
+ 2.406133938779852 2.703108539059061 4.927215476100000 5.503494126351864
+ 4.145762376887038 4.785079589360221 2.768566455400537 3.578453064630948
+ 7.377991203785909 7.384219593278416 2.013243866897712 0.798776956900000
+ 4.098856348297708 2.235314730843289 3.228477565634609 3.304167710826445
+ 2.495139323467606 2.159452467827879 6.270032209209654 7.373726105069984
+ 14.031183976721900 2.686068179510170 0.869902301100000 1.480465743477956
+ 1.049374502674771 1.027230702276932 1.034177551331201 0.913125966277553
+ 0.945203407060163 0.729150916604920 1.061496950110300 1.242751812800000
+ 0.840998362264854 1.917210204185132 1.040589435688749 1.612101630422405
+ 1.325600429648876 1.718332060074302 0.762112976988035 0.905870718258032
+ 26.496800489093268 0.876078821104577 0.010369755600000 0.061138567400000
+ 0.044830334600000 0.039283178200000 0.085416633800000 0.039889661900000
+ 0.024949656900000 0.023241090800000 0.086137910000000 -0.075479418500000
+ -0.026614602100000 -0.016342909900000 0.057216710300000 -0.046860882500000
+ 0.015104845500000 0.008496367800000 0.027893039700000 0.007692291100000
+ 0.103353673800000 -0.009825603600000
--- /dev/null
+3 *** Optimized torsional parameters 7p_wham_last ***
+ 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 3
+ 6 0 ************ G-G
+ 1 2.91221E-01 0.00000E+00
+ 2 1.97221E-01 0.00000E+00
+ 3 3.47215E-02 0.00000E+00
+ 4 -1.25868E-01 0.00000E+00
+ 5 -8.07275E-02 0.00000E+00
+ 6 -3.07820E-03 0.00000E+00
+ 6 0 ************ G-A
+ 1 1.37258E-01 -1.87823E-01
+ 2 -3.24314E-03 -1.14115E-01
+ 3 1.00886E-01 6.20938E-02
+ 4 -1.24448E-01 1.61747E-01
+ 5 -1.22389E-02 1.29629E-01
+ 6 1.18244E-02 -7.32819E-02
+10 0 ************ G-P
+ 1 -2.35280E-01 4.47825E-01
+ 2 2.25332E-01 4.39143E-01
+ 3 8.54137E-02 -3.13391E-02
+ 4 9.34821E-04 -5.34886E-03
+ 5 1.29469E-01 2.38018E-01
+ 6 -1.67401E-01 1.36767E-01
+ 7 -9.09952E-03 -1.50380E-01
+ 8 1.59178E-01 1.58505E-02
+ 9 -5.07021E-02 9.02235E-02
+ 10 -2.74002E-02 3.70860E-02
+ 6 0 ************ A-G
+ 1 -2.29844E-01 8.10157E-02
+ 2 -7.16965E-02 8.72173E-02
+ 3 3.14208E-01 -5.35383E-02
+ 4 -2.02452E-01 -6.71549E-02
+ 5 6.37359E-02 -3.21902E-02
+ 6 1.20409E-02 -4.77091E-02
+ 6 0 ************ A-A
+ 1 4.84934E-01 1.01827E-01
+ 2 2.02908E-01 -1.57752E-01
+ 3 1.83892E-01 -9.11332E-03
+ 4 -5.50573E-02 3.62865E-02
+ 5 2.01397E-02 1.58844E-02
+ 6 6.37922E-03 2.45381E-03
+10 0 ************ A-P
+ 1 1.05440E+00 1.99420E+00
+ 2 4.15367E-01 2.58231E-01
+ 3 4.38811E-01 1.78360E-01
+ 4 -6.03233E-02 1.44596E-01
+ 5 -1.32748E-01 -8.30658E-02
+ 6 7.92515E-02 -1.23210E-01
+ 7 1.46959E-01 9.69035E-02
+ 8 -8.27696E-02 2.19985E-01
+ 9 -2.20971E-01 9.42558E-04
+ 10 -2.11828E-02 -3.91532E-02
+10 0 ************ P-G
+ 1 2.12359E-02 4.05506E-02
+ 2 -1.19424E-01 2.91087E-01
+ 3 3.81770E-01 -1.11839E-01
+ 4 -9.75339E-02 -7.60089E-02
+ 5 -5.00214E-02 3.42037E-02
+ 6 8.12296E-02 3.98713E-02
+ 7 -1.21613E-02 -4.57682E-02
+ 8 6.95870E-03 2.28245E-02
+ 9 2.02598E-02 -2.00100E-02
+ 10 -1.48685E-02 -1.09627E-02
+10 0 ************ P-A
+ 1 -5.30371E-01 -3.79838E-03
+ 2 6.32663E-02 -1.09521E-01
+ 3 1.21519E-01 8.43223E-03
+ 4 -7.80575E-03 3.76829E-02
+ 5 -4.82717E-02 -4.37033E-02
+ 6 -1.47599E-02 9.06497E-02
+ 7 4.59200E-02 2.27528E-02
+ 8 -7.44594E-02 4.24939E-02
+ 9 -4.90352E-02 -2.08349E-02
+ 10 -8.46346E-02 -1.07298E-02
+10 0 ************ P-P
+ 1 4.23486E+00 7.87119E-01
+ 2 2.59217E+00 -3.33044E-01
+ 3 1.24864E+00 -4.98088E-01
+ 4 1.16294E-01 -1.79001E-01
+ 5 -9.55402E-01 1.83034E-01
+ 6 -1.87536E+00 2.47282E-01
+ 7 -2.44663E+00 5.47506E-01
+ 8 -2.27142E+00 8.14203E-01
+ 9 -1.33942E+00 7.88906E-01
+ 10 -4.40969E-01 2.69137E-01
setenv PREFIX 1DKZ-ber-MREMD
setenv OUT1FILE NO
#-----------------------------------------------------------------------------
-setenv UNRES_BIN unres_ifort_MPICH_E0LL2Y.exe
+setenv UNRES_BIN unresMD_ifort_MPI_E0LL2Y.exe
#-----------------------------------------------------------------------------
setenv DD /users/adam/UNRES/PARAM
setenv BONDPAR $DD/bond.parm
--- /dev/null
+1DKZ 1st domain with substrate MD with Berendsen thermostat
+SEED=-3059743 MD PDBSTART REFSTR PDBREF PDBOUT DISTCHAINMAX=100 unres_pdb
+nstep=20000 ntwx=1000 ntwe=1 dt=0.2 lang=0 tbf tau_bath=1.0 t_bath=300 respa
+WLONG=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
+./1dkz_cut_unres.pdb
+0
+0
--- /dev/null
+multichain energy test
+SEED=-3059743 PDBSTART REFSTR PDBREF PDBOUT DISTCHAINMAX=100 checkgrad cart
+WLONG=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
+./1dkz_cut.pdb
+0
+0
+0 0 0 0
+300.0
--- /dev/null
+multichain energy test
+SEED=-3059743 ENERGY PDBSTART REFSTR PDBREF PDBOUT DISTCHAINMAX=100 energy_dec
+WLONG=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
+./1dkz_cut.pdb
+0
+0
--- /dev/null
+1DKZ 1st domain with substrate Langevin dynamics
+SEED=-3059743 MD PDBSTART REFSTR PDBREF PDBOUT DISTCHAINMAX=100 unres_pdb
+nstep=20000 ntwx=1000 ntwe=1 dt=0.2 lang=1 t_bath=300 respa
+WLONG=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
+./1dkz_cut_unres.pdb
+0
+0
--- /dev/null
+1DKZ 1st domain with substrate
+SEED=-3059743 MD PDBSTART REFSTR PDBREF DISTCHAINMAX=100 unres_pdb
+nstep=10000 ntwx=100 ntwe=10 dt=0.01 lang=0 t_bath=300 reset_vel=0
+WLONG=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
+1dkz_cut_unres.pdb
+0
+0
--- /dev/null
+1DKZ 1st domain with substrate
+SEED=-3059743 MINIMIZE PDBSTART REFSTR PDBREF PDBOUT DISTCHAINMAX=100 &
+OVERLAP NOSEARCHSC CART
+print_min_ini print_min_res print_min_stat MAXMIN=10000 MAXFUN=15000
+WLONG=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
+./1dkz_cut.pdb
+0
+0
--- /dev/null
+ATOM 1 N ASN A 1 -8.901 4.127 -0.555 0.00 0.00 N
+ATOM 2 CA ASN A 1 -8.608 3.135 -1.618 0.00 0.00 C
+ATOM 3 C ASN A 1 -7.117 2.964 -1.897 0.00 0.00 C
+ATOM 4 O ASN A 1 -6.634 1.849 -1.758 0.00 0.00 O
+ATOM 5 CB ASN A 1 -9.437 3.396 -2.889 0.00 0.00 C
+ATOM 6 CG ASN A 1 -10.915 3.130 -2.611 0.00 0.00 C
+ATOM 7 OD1 ASN A 1 -11.269 2.700 -1.524 0.00 0.00 O
+ATOM 8 ND2 ASN A 1 -11.806 3.406 -3.543 0.00 0.00 N
+ATOM 9 1H ASN A 1 -8.330 3.957 0.261 0.00 0.00 H
+ATOM 10 2H ASN A 1 -8.740 5.068 -0.889 0.00 0.00 H
+ATOM 11 3H ASN A 1 -9.877 4.041 -0.293 0.00 0.00 H
+ATOM 12 HA ASN A 1 -8.930 2.162 -1.239 0.00 0.00 H
+ATOM 13 1HB ASN A 1 -9.310 4.417 -3.193 0.00 0.00 H
+ATOM 14 2HB ASN A 1 -9.108 2.719 -3.679 0.00 0.00 H
+ATOM 15 1HD2 ASN A 1 -11.572 3.791 -4.444 0.00 0.00 H
+ATOM 16 2HD2 ASN A 1 -12.757 3.183 -3.294 0.00 0.00 H
+ATOM 17 N LEU A 2 -6.379 4.031 -2.228 0.00 0.00 N
+ATOM 18 CA LEU A 2 -4.923 4.002 -2.452 0.00 0.00 C
+ATOM 19 C LEU A 2 -4.136 3.187 -1.404 0.00 0.00 C
+ATOM 20 O LEU A 2 -3.391 2.274 -1.760 0.00 0.00 O
+ATOM 21 CB LEU A 2 -4.411 5.450 -2.619 0.00 0.00 C
+ATOM 22 CG LEU A 2 -4.795 6.450 -1.495 0.00 0.00 C
+ATOM 23 CD1 LEU A 2 -3.612 6.803 -0.599 0.00 0.00 C
+ATOM 24 CD2 LEU A 2 -5.351 7.748 -2.084 0.00 0.00 C
+ATOM 25 H LEU A 2 -6.821 4.923 -2.394 0.00 0.00 H
+ATOM 26 HA LEU A 2 -4.750 3.494 -3.403 0.00 0.00 H
+ATOM 27 1HB LEU A 2 -3.340 5.414 -2.672 0.00 0.00 H
+ATOM 28 2HB LEU A 2 -4.813 5.817 -3.564 0.00 0.00 H
+ATOM 29 HG LEU A 2 -5.568 6.022 -0.858 0.00 0.00 H
+ATOM 30 1HD1 LEU A 2 -3.207 5.905 -0.146 0.00 0.00 H
+ATOM 31 2HD1 LEU A 2 -2.841 7.304 -1.183 0.00 0.00 H
+ATOM 32 3HD1 LEU A 2 -3.929 7.477 0.197 0.00 0.00 H
+ATOM 33 1HD2 LEU A 2 -4.607 8.209 -2.736 0.00 0.00 H
+ATOM 34 2HD2 LEU A 2 -6.255 7.544 -2.657 0.00 0.00 H
+ATOM 35 3HD2 LEU A 2 -5.592 8.445 -1.281 0.00 0.00 H
+ATOM 36 N TYR A 3 -4.354 3.455 -0.111 0.00 0.00 N
+ATOM 37 CA TYR A 3 -3.690 2.738 0.981 0.00 0.00 C
+ATOM 38 C TYR A 3 -4.102 1.256 1.074 0.00 0.00 C
+ATOM 39 O TYR A 3 -3.291 0.409 1.442 0.00 0.00 O
+ATOM 40 CB TYR A 3 -3.964 3.472 2.302 0.00 0.00 C
+ATOM 41 CG TYR A 3 -2.824 3.339 3.290 0.00 0.00 C
+ATOM 42 CD1 TYR A 3 -1.820 4.326 3.332 0.00 0.00 C
+ATOM 43 CD2 TYR A 3 -2.746 2.217 4.138 0.00 0.00 C
+ATOM 44 CE1 TYR A 3 -0.725 4.185 4.205 0.00 0.00 C
+ATOM 45 CE2 TYR A 3 -1.657 2.076 5.018 0.00 0.00 C
+ATOM 46 CZ TYR A 3 -0.639 3.053 5.043 0.00 0.00 C
+ATOM 47 OH TYR A 3 0.433 2.881 5.861 0.00 0.00 O
+ATOM 48 H TYR A 3 -4.934 4.245 0.120 0.00 0.00 H
+ATOM 49 HA TYR A 3 -2.615 2.768 0.796 0.00 0.00 H
+ATOM 50 1HB TYR A 3 -4.117 4.513 2.091 0.00 0.00 H
+ATOM 51 2HB TYR A 3 -4.886 3.096 2.750 0.00 0.00 H
+ATOM 52 HD1 TYR A 3 -1.877 5.200 2.695 0.00 0.00 H
+ATOM 53 HD2 TYR A 3 -3.513 1.456 4.101 0.00 0.00 H
+ATOM 54 HE1 TYR A 3 0.033 4.952 4.233 0.00 0.00 H
+ATOM 55 HE2 TYR A 3 -1.576 1.221 5.669 0.00 0.00 H
+ATOM 56 HH TYR A 3 1.187 3.395 5.567 0.00 0.00 H
+ATOM 57 N ILE A 4 -5.342 0.925 0.689 0.00 0.00 N
+ATOM 58 CA ILE A 4 -5.857 -0.449 0.613 0.00 0.00 C
+ATOM 59 C ILE A 4 -5.089 -1.221 -0.470 0.00 0.00 C
+ATOM 60 O ILE A 4 -4.621 -2.334 -0.226 0.00 0.00 O
+ATOM 61 CB ILE A 4 -7.386 -0.466 0.343 0.00 0.00 C
+ATOM 62 CG1 ILE A 4 -8.197 0.540 1.197 0.00 0.00 C
+ATOM 63 CG2 ILE A 4 -7.959 -1.884 0.501 0.00 0.00 C
+ATOM 64 CD1 ILE A 4 -8.019 0.412 2.715 0.00 0.00 C
+ATOM 65 H ILE A 4 -5.906 1.656 0.283 0.00 0.00 H
+ATOM 66 HA ILE A 4 -5.670 -0.941 1.568 0.00 0.00 H
+ATOM 67 HB ILE A 4 -7.554 -0.192 -0.697 0.00 0.00 H
+ATOM 68 1HG1 ILE A 4 -7.900 1.531 0.912 0.00 0.00 H
+ATOM 69 2HG1 ILE A 4 -9.257 0.424 0.964 0.00 0.00 H
+ATOM 70 1HG2 ILE A 4 -7.509 -2.555 -0.232 0.00 0.00 H
+ATOM 71 2HG2 ILE A 4 -7.759 -2.271 1.501 0.00 0.00 H
+ATOM 72 3HG2 ILE A 4 -9.036 -1.871 0.332 0.00 0.00 H
+ATOM 73 1HD1 ILE A 4 -8.306 -0.585 3.049 0.00 0.00 H
+ATOM 74 2HD1 ILE A 4 -6.983 0.606 2.995 0.00 0.00 H
+ATOM 75 3HD1 ILE A 4 -8.656 1.144 3.213 0.00 0.00 H
+ATOM 76 N GLN A 5 -4.907 -0.601 -1.645 0.00 0.00 N
+ATOM 77 CA GLN A 5 -4.122 -1.167 -2.743 0.00 0.00 C
+ATOM 78 C GLN A 5 -2.629 -1.321 -2.390 0.00 0.00 C
+ATOM 79 O GLN A 5 -1.986 -2.240 -2.884 0.00 0.00 O
+ATOM 80 CB GLN A 5 -4.292 -0.313 -4.013 0.00 0.00 C
+ATOM 81 CG GLN A 5 -4.244 -1.171 -5.290 0.00 0.00 C
+ATOM 82 CD GLN A 5 -5.576 -1.860 -5.585 0.00 0.00 C
+ATOM 83 OE1 GLN A 5 -5.769 -3.044 -5.335 0.00 0.00 O
+ATOM 84 NE2 GLN A 5 -6.532 -1.146 -6.152 0.00 0.00 N
+ATOM 85 H GLN A 5 -5.327 0.318 -1.763 0.00 0.00 H
+ATOM 86 HA GLN A 5 -4.517 -2.162 -2.940 0.00 0.00 H
+ATOM 87 1HB GLN A 5 -5.238 0.191 -3.969 0.00 0.00 H
+ATOM 88 2HB GLN A 5 -3.492 0.429 -4.053 0.00 0.00 H
+ATOM 89 1HG GLN A 5 -3.993 -0.539 -6.120 0.00 0.00 H
+ATOM 90 2HG GLN A 5 -3.458 -1.923 -5.205 0.00 0.00 H
+ATOM 91 1HE2 GLN A 5 -6.389 -0.184 -6.408 0.00 0.00 H
+ATOM 92 2HE2 GLN A 5 -7.392 -1.635 -6.335 0.00 0.00 H
+ATOM 93 N TRP A 6 -2.074 -0.459 -1.528 0.00 0.00 N
+ATOM 94 CA TRP A 6 -0.716 -0.631 -0.993 0.00 0.00 C
+ATOM 95 C TRP A 6 -0.631 -1.766 0.044 0.00 0.00 C
+ATOM 96 O TRP A 6 0.295 -2.579 -0.004 0.00 0.00 O
+ATOM 97 CB TRP A 6 -0.221 0.703 -0.417 0.00 0.00 C
+ATOM 98 CG TRP A 6 1.148 0.652 0.194 0.00 0.00 C
+ATOM 99 CD1 TRP A 6 2.319 0.664 -0.482 0.00 0.00 C
+ATOM 100 CD2 TRP A 6 1.508 0.564 1.606 0.00 0.00 C
+ATOM 101 NE1 TRP A 6 3.371 0.560 0.411 0.00 0.00 N
+ATOM 102 CE2 TRP A 6 2.928 0.515 1.710 0.00 0.00 C
+ATOM 103 CE3 TRP A 6 0.779 0.524 2.812 0.00 0.00 C
+ATOM 104 CZ2 TRP A 6 3.599 0.445 2.938 0.00 0.00 C
+ATOM 105 CZ3 TRP A 6 1.439 0.433 4.053 0.00 0.00 C
+ATOM 106 CH2 TRP A 6 2.842 0.407 4.120 0.00 0.00 C
+ATOM 107 H TRP A 6 -2.624 0.343 -1.242 0.00 0.00 H
+ATOM 108 HA TRP A 6 -0.052 -0.908 -1.813 0.00 0.00 H
+ATOM 109 1HB TRP A 6 -0.206 1.425 -1.211 0.00 0.00 H
+ATOM 110 2HB TRP A 6 -0.921 1.044 0.344 0.00 0.00 H
+ATOM 111 HD1 TRP A 6 2.412 0.733 -1.558 0.00 0.00 H
+ATOM 112 HE1 TRP A 6 4.360 0.536 0.156 0.00 0.00 H
+ATOM 113 HE3 TRP A 6 -0.299 0.571 2.773 0.00 0.00 H
+ATOM 114 HZ2 TRP A 6 4.679 0.418 2.961 0.00 0.00 H
+ATOM 115 HZ3 TRP A 6 0.862 0.400 4.966 0.00 0.00 H
+ATOM 116 HH2 TRP A 6 3.334 0.360 5.081 0.00 0.00 H
+ATOM 117 N LEU A 7 -1.600 -1.860 0.967 0.00 0.00 N
+ATOM 118 CA LEU A 7 -1.641 -2.932 1.963 0.00 0.00 C
+ATOM 119 C LEU A 7 -1.847 -4.319 1.342 0.00 0.00 C
+ATOM 120 O LEU A 7 -1.144 -5.248 1.742 0.00 0.00 O
+ATOM 121 CB LEU A 7 -2.710 -2.645 3.033 0.00 0.00 C
+ATOM 122 CG LEU A 7 -2.301 -1.579 4.069 0.00 0.00 C
+ATOM 123 CD1 LEU A 7 -3.475 -1.323 5.018 0.00 0.00 C
+ATOM 124 CD2 LEU A 7 -1.093 -2.007 4.914 0.00 0.00 C
+ATOM 125 H LEU A 7 -2.316 -1.137 0.994 0.00 0.00 H
+ATOM 126 HA LEU A 7 -0.666 -2.978 2.445 0.00 0.00 H
+ATOM 127 1HB LEU A 7 -3.600 -2.308 2.537 0.00 0.00 H
+ATOM 128 2HB LEU A 7 -2.921 -3.571 3.572 0.00 0.00 H
+ATOM 129 HG LEU A 7 -2.061 -0.649 3.560 0.00 0.00 H
+ATOM 130 1HD1 LEU A 7 -4.343 -0.992 4.449 0.00 0.00 H
+ATOM 131 2HD1 LEU A 7 -3.725 -2.237 5.560 0.00 0.00 H
+ATOM 132 3HD1 LEU A 7 -3.211 -0.549 5.739 0.00 0.00 H
+ATOM 133 1HD2 LEU A 7 -1.270 -2.989 5.354 0.00 0.00 H
+ATOM 134 2HD2 LEU A 7 -0.195 -2.045 4.300 0.00 0.00 H
+ATOM 135 3HD2 LEU A 7 -0.922 -1.286 5.712 0.00 0.00 H
+ATOM 136 N LYS A 8 -2.753 -4.481 0.360 0.00 0.00 N
+ATOM 137 CA LYS A 8 -3.024 -5.791 -0.269 0.00 0.00 C
+ATOM 138 C LYS A 8 -1.796 -6.427 -0.937 0.00 0.00 C
+ATOM 139 O LYS A 8 -1.719 -7.648 -1.030 0.00 0.00 O
+ATOM 140 CB LYS A 8 -4.224 -5.697 -1.232 0.00 0.00 C
+ATOM 141 CG LYS A 8 -3.930 -5.009 -2.577 0.00 0.00 C
+ATOM 142 CD LYS A 8 -3.682 -5.986 -3.736 0.00 0.00 C
+ATOM 143 CE LYS A 8 -3.494 -5.199 -5.039 0.00 0.00 C
+ATOM 144 NZ LYS A 8 -4.563 -5.483 -6.023 0.00 0.00 N
+ATOM 145 H LYS A 8 -3.321 -3.675 0.097 0.00 0.00 H
+ATOM 146 HA LYS A 8 -3.309 -6.478 0.529 0.00 0.00 H
+ATOM 147 1HB LYS A 8 -4.565 -6.694 -1.436 0.00 0.00 H
+ATOM 148 2HB LYS A 8 -5.019 -5.143 -0.731 0.00 0.00 H
+ATOM 149 1HG LYS A 8 -4.769 -4.390 -2.830 0.00 0.00 H
+ATOM 150 2HG LYS A 8 -3.062 -4.368 -2.469 0.00 0.00 H
+ATOM 151 1HD LYS A 8 -2.799 -6.562 -3.536 0.00 0.00 H
+ATOM 152 2HD LYS A 8 -4.524 -6.674 -3.818 0.00 0.00 H
+ATOM 153 1HE LYS A 8 -3.502 -4.150 -4.813 0.00 0.00 H
+ATOM 154 2HE LYS A 8 -2.511 -5.439 -5.457 0.00 0.00 H
+ATOM 155 1HZ LYS A 8 -4.621 -6.474 -6.211 0.00 0.00 H
+ATOM 156 2HZ LYS A 8 -5.442 -5.124 -5.657 0.00 0.00 H
+ATOM 157 3HZ LYS A 8 -4.382 -4.983 -6.881 0.00 0.00 H
+ATOM 158 N ASP A 9 -0.828 -5.607 -1.355 0.00 0.00 N
+ATOM 159 CA ASP A 9 0.466 -6.016 -1.905 0.00 0.00 C
+ATOM 160 C ASP A 9 1.481 -6.464 -0.832 0.00 0.00 C
+ATOM 161 O ASP A 9 2.545 -6.971 -1.194 0.00 0.00 O
+ATOM 162 CB ASP A 9 1.033 -4.839 -2.724 0.00 0.00 C
+ATOM 163 CG ASP A 9 0.672 -4.906 -4.210 0.00 0.00 C
+ATOM 164 OD1 ASP A 9 -0.532 -5.051 -4.522 0.00 0.00 O
+ATOM 165 OD2 ASP A 9 1.627 -4.815 -5.017 0.00 0.00 O
+ATOM 166 H ASP A 9 -1.010 -4.616 -1.291 0.00 0.00 H
+ATOM 167 HA ASP A 9 0.319 -6.867 -2.574 0.00 0.00 H
+ATOM 168 1HB ASP A 9 0.644 -3.924 -2.320 0.00 0.00 H
+ATOM 169 2HB ASP A 9 2.116 -4.837 -2.650 0.00 0.00 H
+ATOM 170 N GLY A 10 1.185 -6.278 0.464 0.00 0.00 N
+ATOM 171 CA GLY A 10 2.060 -6.618 1.593 0.00 0.00 C
+ATOM 172 C GLY A 10 2.628 -5.412 2.353 0.00 0.00 C
+ATOM 173 O GLY A 10 3.496 -5.594 3.208 0.00 0.00 O
+ATOM 174 H GLY A 10 0.265 -5.908 0.693 0.00 0.00 H
+ATOM 175 1HA GLY A 10 1.486 -7.214 2.304 0.00 0.00 H
+ATOM 176 2HA GLY A 10 2.897 -7.228 1.252 0.00 0.00 H
+ATOM 177 N GLY A 11 2.172 -4.187 2.055 0.00 0.00 N
+ATOM 178 CA GLY A 11 2.626 -2.967 2.723 0.00 0.00 C
+ATOM 179 C GLY A 11 4.157 -2.802 2.654 0.00 0.00 C
+ATOM 180 O GLY A 11 4.710 -2.829 1.551 0.00 0.00 O
+ATOM 181 H GLY A 11 1.481 -4.089 1.319 0.00 0.00 H
+ATOM 182 1HA GLY A 11 2.164 -2.109 2.237 0.00 0.00 H
+ATOM 183 2HA GLY A 11 2.280 -2.997 3.753 0.00 0.00 H
+ATOM 184 N PRO A 12 4.871 -2.651 3.794 0.00 0.00 N
+ATOM 185 CA PRO A 12 6.333 -2.533 3.806 0.00 0.00 C
+ATOM 186 C PRO A 12 7.058 -3.729 3.165 0.00 0.00 C
+ATOM 187 O PRO A 12 8.139 -3.562 2.601 0.00 0.00 O
+ATOM 188 CB PRO A 12 6.740 -2.387 5.279 0.00 0.00 C
+ATOM 189 CG PRO A 12 5.460 -1.952 5.987 0.00 0.00 C
+ATOM 190 CD PRO A 12 4.362 -2.615 5.160 0.00 0.00 C
+ATOM 191 HA PRO A 12 6.611 -1.626 3.267 0.00 0.00 H
+ATOM 192 1HB PRO A 12 7.091 -3.323 5.670 0.00 0.00 H
+ATOM 193 2HB PRO A 12 7.531 -1.647 5.403 0.00 0.00 H
+ATOM 194 1HG PRO A 12 5.443 -2.302 7.001 0.00 0.00 H
+ATOM 195 2HG PRO A 12 5.358 -0.867 5.929 0.00 0.00 H
+ATOM 196 1HD PRO A 12 4.173 -3.609 5.516 0.00 0.00 H
+ATOM 197 2HD PRO A 12 3.440 -2.042 5.246 0.00 0.00 H
+ATOM 198 N SER A 13 6.463 -4.929 3.205 0.00 0.00 N
+ATOM 199 CA SER A 13 7.049 -6.179 2.704 0.00 0.00 C
+ATOM 200 C SER A 13 6.897 -6.369 1.185 0.00 0.00 C
+ATOM 201 O SER A 13 7.025 -7.488 0.697 0.00 0.00 O
+ATOM 202 CB SER A 13 6.458 -7.371 3.472 0.00 0.00 C
+ATOM 203 OG SER A 13 6.763 -7.264 4.850 0.00 0.00 O
+ATOM 204 H SER A 13 5.535 -4.999 3.613 0.00 0.00 H
+ATOM 205 HA SER A 13 8.121 -6.159 2.903 0.00 0.00 H
+ATOM 206 1HB SER A 13 5.393 -7.382 3.344 0.00 0.00 H
+ATOM 207 2HB SER A 13 6.880 -8.302 3.093 0.00 0.00 H
+ATOM 208 HG SER A 13 7.707 -7.394 4.970 0.00 0.00 H
+ATOM 209 N SER A 14 6.637 -5.290 0.434 0.00 0.00 N
+ATOM 210 CA SER A 14 6.389 -5.315 -1.015 0.00 0.00 C
+ATOM 211 C SER A 14 7.332 -4.405 -1.823 0.00 0.00 C
+ATOM 212 O SER A 14 7.082 -4.123 -2.993 0.00 0.00 O
+ATOM 213 CB SER A 14 4.914 -4.993 -1.265 0.00 0.00 C
+ATOM 214 OG SER A 14 4.431 -5.743 -2.358 0.00 0.00 O
+ATOM 215 H SER A 14 6.509 -4.415 0.930 0.00 0.00 H
+ATOM 216 HA SER A 14 6.562 -6.329 -1.378 0.00 0.00 H
+ATOM 217 1HB SER A 14 4.344 -5.236 -0.389 0.00 0.00 H
+ATOM 218 2HB SER A 14 4.778 -3.934 -1.457 0.00 0.00 H
+ATOM 219 HG SER A 14 3.714 -6.324 -1.987 0.00 0.00 H
+ATOM 220 N GLY A 15 8.419 -3.920 -1.202 0.00 0.00 N
+ATOM 221 CA GLY A 15 9.451 -3.116 -1.870 0.00 0.00 C
+ATOM 222 C GLY A 15 8.984 -1.725 -2.316 0.00 0.00 C
+ATOM 223 O GLY A 15 9.539 -1.177 -3.267 0.00 0.00 O
+ATOM 224 H GLY A 15 8.573 -4.210 -0.246 0.00 0.00 H
+ATOM 225 1HA GLY A 15 10.297 -2.987 -1.194 0.00 0.00 H
+ATOM 226 2HA GLY A 15 9.805 -3.652 -2.752 0.00 0.00 H
+ATOM 227 N ARG A 16 7.956 -1.164 -1.660 0.00 0.00 N
+ATOM 228 CA ARG A 16 7.289 0.084 -2.054 0.00 0.00 C
+ATOM 229 C ARG A 16 6.855 0.916 -0.829 0.00 0.00 C
+ATOM 230 O ARG A 16 6.222 0.366 0.076 0.00 0.00 O
+ATOM 231 CB ARG A 16 6.110 -0.243 -2.994 0.00 0.00 C
+ATOM 232 CG ARG A 16 5.046 -1.171 -2.378 0.00 0.00 C
+ATOM 233 CD ARG A 16 3.923 -1.592 -3.338 0.00 0.00 C
+ATOM 234 NE ARG A 16 4.251 -2.811 -4.100 0.00 0.00 N
+ATOM 235 CZ ARG A 16 4.859 -2.914 -5.274 0.00 0.00 C
+ATOM 236 NH1 ARG A 16 5.289 -1.864 -5.937 0.00 0.00 N
+ATOM 237 NH2 ARG A 16 5.035 -4.095 -5.809 0.00 0.00 N
+ATOM 238 H ARG A 16 7.579 -1.676 -0.874 0.00 0.00 H
+ATOM 239 HA ARG A 16 8.009 0.663 -2.630 0.00 0.00 H
+ATOM 240 1HB ARG A 16 5.634 0.678 -3.269 0.00 0.00 H
+ATOM 241 2HB ARG A 16 6.524 -0.720 -3.880 0.00 0.00 H
+ATOM 242 1HG ARG A 16 5.538 -2.059 -2.031 0.00 0.00 H
+ATOM 243 2HG ARG A 16 4.579 -0.652 -1.549 0.00 0.00 H
+ATOM 244 1HD ARG A 16 3.033 -1.774 -2.766 0.00 0.00 H
+ATOM 245 2HD ARG A 16 3.669 -0.765 -4.003 0.00 0.00 H
+ATOM 246 HE ARG A 16 3.963 -3.694 -3.698 0.00 0.00 H
+ATOM 247 1HH1 ARG A 16 5.150 -0.962 -5.521 0.00 0.00 H
+ATOM 248 2HH1 ARG A 16 5.761 -1.962 -6.815 0.00 0.00 H
+ATOM 249 1HH2 ARG A 16 4.649 -4.894 -5.327 0.00 0.00 H
+ATOM 250 2HH2 ARG A 16 5.508 -4.205 -6.684 0.00 0.00 H
+ATOM 251 N PRO A 17 7.156 2.230 -0.780 0.00 0.00 N
+ATOM 252 CA PRO A 17 6.782 3.088 0.345 0.00 0.00 C
+ATOM 253 C PRO A 17 5.261 3.331 0.395 0.00 0.00 C
+ATOM 254 O PRO A 17 4.586 3.165 -0.624 0.00 0.00 O
+ATOM 255 CB PRO A 17 7.554 4.394 0.119 0.00 0.00 C
+ATOM 256 CG PRO A 17 7.677 4.474 -1.401 0.00 0.00 C
+ATOM 257 CD PRO A 17 7.820 3.010 -1.816 0.00 0.00 C
+ATOM 258 HA PRO A 17 7.107 2.628 1.279 0.00 0.00 H
+ATOM 259 1HB PRO A 17 7.009 5.234 0.505 0.00 0.00 H
+ATOM 260 2HB PRO A 17 8.548 4.308 0.561 0.00 0.00 H
+ATOM 261 1HG PRO A 17 6.800 4.914 -1.836 0.00 0.00 H
+ATOM 262 2HG PRO A 17 8.540 5.066 -1.707 0.00 0.00 H
+ATOM 263 1HD PRO A 17 7.349 2.844 -2.766 0.00 0.00 H
+ATOM 264 2HD PRO A 17 8.876 2.739 -1.855 0.00 0.00 H
+ATOM 265 N PRO A 18 4.710 3.739 1.555 0.00 0.00 N
+ATOM 266 CA PRO A 18 3.287 4.031 1.686 0.00 0.00 C
+ATOM 267 C PRO A 18 2.901 5.305 0.913 0.00 0.00 C
+ATOM 268 O PRO A 18 3.684 6.256 0.871 0.00 0.00 O
+ATOM 269 CB PRO A 18 3.035 4.190 3.187 0.00 0.00 C
+ATOM 270 CG PRO A 18 4.385 4.655 3.729 0.00 0.00 C
+ATOM 271 CD PRO A 18 5.393 3.949 2.823 0.00 0.00 C
+ATOM 272 HA PRO A 18 2.719 3.181 1.316 0.00 0.00 H
+ATOM 273 1HB PRO A 18 2.274 4.924 3.372 0.00 0.00 H
+ATOM 274 2HB PRO A 18 2.781 3.223 3.618 0.00 0.00 H
+ATOM 275 1HG PRO A 18 4.482 5.721 3.654 0.00 0.00 H
+ATOM 276 2HG PRO A 18 4.518 4.377 4.775 0.00 0.00 H
+ATOM 277 1HD PRO A 18 6.262 4.562 2.682 0.00 0.00 H
+ATOM 278 2HD PRO A 18 5.662 2.983 3.253 0.00 0.00 H
+ATOM 279 N PRO A 19 1.688 5.360 0.336 0.00 0.00 N
+ATOM 280 CA PRO A 19 1.185 6.543 -0.353 0.00 0.00 C
+ATOM 281 C PRO A 19 0.715 7.607 0.655 0.00 0.00 C
+ATOM 282 O PRO A 19 -0.124 7.324 1.513 0.00 0.00 O
+ATOM 283 CB PRO A 19 0.048 6.014 -1.229 0.00 0.00 C
+ATOM 284 CG PRO A 19 -0.519 4.852 -0.412 0.00 0.00 C
+ATOM 285 CD PRO A 19 0.716 4.275 0.272 0.00 0.00 C
+ATOM 286 HA PRO A 19 1.961 6.966 -0.991 0.00 0.00 H
+ATOM 287 1HB PRO A 19 -0.697 6.770 -1.389 0.00 0.00 H
+ATOM 288 2HB PRO A 19 0.463 5.630 -2.162 0.00 0.00 H
+ATOM 289 1HG PRO A 19 -1.232 5.201 0.310 0.00 0.00 H
+ATOM 290 2HG PRO A 19 -1.019 4.114 -1.041 0.00 0.00 H
+ATOM 291 1HD PRO A 19 0.470 3.937 1.260 0.00 0.00 H
+ATOM 292 2HD PRO A 19 1.121 3.461 -0.329 0.00 0.00 H
+ATOM 293 N SER A 20 1.271 8.822 0.549 0.00 0.00 N
+ATOM 294 CA SER A 20 0.852 10.027 1.285 0.00 0.00 C
+ATOM 295 C SER A 20 -0.406 10.657 0.683 0.00 0.00 C
+ATOM 296 O SER A 20 -0.387 10.916 -0.540 0.00 0.00 O
+ATOM 297 CB SER A 20 1.972 11.071 1.284 0.00 0.00 C
+ATOM 298 OG SER A 20 3.120 10.541 1.911 0.00 0.00 O
+ATOM 299 OXT SER A 20 -1.341 10.903 1.473 0.00 0.00 O
+ATOM 300 H SER A 20 1.969 8.961 -0.165 0.00 0.00 H
+ATOM 301 HA SER A 20 0.601 9.760 2.310 0.00 0.00 H
+ATOM 302 1HB SER A 20 2.210 11.338 0.272 0.00 0.00 H
+ATOM 303 2HB SER A 20 1.636 11.959 1.824 0.00 0.00 H
+ATOM 304 HG SER A 20 2.831 10.040 2.676 0.00 0.00 H
+TER 305 SER A 20
+END
--- /dev/null
+1L2Y with Berendsen thermostat in ff_1l2y MD simulation
+SEED=-3059743 PDBREF MD EXTCONF RESCALE_MODE=2 RESPA
+nstep=200000 ntwe=10 ntwx=10000 dt=0.20 damax=10.0 lang=0 tbf &
+tau_bath=1.0 t_bath=300 reset_vel=0 respa ntime_split=1 maxtime_split=512
+WLONG=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
+1L2Y.pdb
+22
+ D ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER SER GLY ARG PRO PRO PRO
+ SER D
+ 0
+ 0
--- /dev/null
+1L2Y with Langevin thermostat in ff_1l2y MD simulation
+SEED=-3059743 PDBREF MD EXTCONF RESCALE_MODE=2 RESPA
+nstep=200000 ntwe=10 ntwx=10000 dt=0.20 damax=10.0 lang=1 &
+t_bath=300 reset_vel=0 respa ntime_split=1 maxtime_split=512
+WLONG=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
+1L2Y.pdb
+22
+ D ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER SER GLY ARG PRO PRO PRO
+ SER D
+ 0
+ 0
--- /dev/null
+1L2Y with Nose-Hoover thermostat in ff_1l2y
+SEED=-3059743 PDBREF MD EXTCONF RESCALE_MODE=2 RESPA
+nstep=200000 ntwe=10 ntwx=10000 dt=0.10 damax=10.0 lang=0 &
+t_bath=300 reset_vel=0 NOSEHOOVER96 Q_NP=1.0
+WLONG=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
+1L2Y.pdb
+22
+ D ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER SER GLY ARG PRO PRO PRO
+ SER D
+ 0
+ 0
--- /dev/null
+1L2Y clustering
+nres=22 n_ene=18 ncut=1 cutoff=-58.0 pdbref rescale=2 PRINT_CART PDBOUT=1 &
+iopt=1 temper=280 one_letter
+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
+XNLYIQWLKDGGPSSGRPPPSX
+ 0
+1L2Y.pdb
--- /dev/null
+1L2Y small remd test
+SEED=-6086648 RE pdbref refstr ONE_LETTER rescale_mode=2 out1file extconf
+nstep=200000 ntwe=100 ntwx=1000 lang=0 tbf t_bath=300 tau_bath=1.0 &
+dt=0.10 reset_moment=1000 reset_vel=1000 damax=4.0 restart
+nrep=8 nstex=1000 tlist mlist traj1file rest1file sync nsyn=1000
+ 240 260 280 300 320 340 360 390
+ 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
+1L2Y.pdb
+22
+XNLYIQWLKDGGPSSGRPPPSX
+0
+0
--- /dev/null
+SEED=-3059743 n_ene=19 isampl=1 nparmset=1 nq=1 einicheck=1 &
+rescale=2 ensembles=0 nslice=1 delta=0.02 refstr pdbref classify cxfile
+nres=22 one_letter
+XNLYIQWLKDGGPSSGRPPPSX
+0
+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= 240.0 FI= 0.00000 0.00000 0.00000 0.00000 0.00000
+KH= 0.0 Q0= 0.0
+NR=1 TEMP= 260.0 FI= 0.00000 0.00000 0.00000 0.00000 0.00000
+KH= 0.0 Q0= 0.0
+NR=1 TEMP= 280.0 FI= 0.00000 0.00000 0.00000 0.00000 0.00000
+KH= 0.0 Q0= 0.0
+NR=1 TEMP= 300.0 FI= 0.00000 0.00000 0.00000 0.00000 0.00000
+KH= 0.0 Q0= 0.0
+NR=1 TEMP= 320.0 FI= 0.00000 0.00000 0.00000 0.00000 0.00000
+KH= 0.0 Q0= 0.0
+NR=1 TEMP= 340.0 FI= 0.00000 0.00000 0.00000 0.00000 0.00000
+KH= 0.0 Q0= 0.0
+NR=1 TEMP= 360.0 FI= 0.00000 0.00000 0.00000 0.00000 0.00000
+KH= 0.0 Q0= 0.0
+NR=1 TEMP= 390.0 FI= 0.00000 0.00000 0.00000 0.00000 0.00000
+KH= 0.0 Q0= 0.0
+nfile_cx=1 rec_start=11 rec_end=200 totraj=8
+1L2Y_remd_MD000
+CUTOFF_UP=8.0 CUTOFF_LOW=4.0 NLEVEL=-2 PDBREF &
+SPLIT_BET=1 NC_FRAC_HEL=0.7 NC_FRAC_BET=0.5 NC_FRAC_PAIR=0.5 NSHIFT_PAIR=3 &
+CONT_PAIR=1 NC_FRAC_PAIR=0.5 RMS_PAIR=0
+1L2Y.pdb
--- /dev/null
+ATOM 1 N VAL A 389 66.802 120.401 46.176 1.00 41.56 N
+ATOM 2 CA VAL A 389 65.777 121.306 46.779 1.00 41.78 C
+ATOM 3 C VAL A 389 65.253 122.357 45.800 1.00 41.02 C
+ATOM 4 O VAL A 389 64.058 122.636 45.764 1.00 39.90 O
+ATOM 5 CB VAL A 389 66.329 121.964 48.013 1.00 39.87 C
+ATOM 6 N LEU A 390 66.143 122.957 45.023 1.00 41.11 N
+ATOM 7 CA LEU A 390 65.714 123.947 44.045 1.00 44.28 C
+ATOM 8 C LEU A 390 65.207 123.185 42.818 1.00 44.82 C
+ATOM 9 O LEU A 390 64.273 123.614 42.142 1.00 45.78 O
+ATOM 10 CB LEU A 390 66.884 124.862 43.673 1.00 46.75 C
+ATOM 11 CG LEU A 390 66.593 126.287 43.194 1.00 48.49 C
+ATOM 12 CD1 LEU A 390 67.884 127.093 43.241 1.00 47.83 C
+ATOM 13 CD2 LEU A 390 65.990 126.295 41.790 1.00 50.58 C
+ATOM 14 N LEU A 391 65.813 122.031 42.562 1.00 44.73 N
+ATOM 15 CA LEU A 391 65.434 121.192 41.436 1.00 44.44 C
+ATOM 16 C LEU A 391 65.396 119.728 41.862 1.00 42.78 C
+ATOM 17 O LEU A 391 65.798 119.386 42.979 1.00 44.32 O
+ATOM 18 CB LEU A 391 66.417 121.384 40.291 1.00 46.46 C
+ATOM 19 N LEU A 392 64.891 118.882 40.972 1.00 41.38 N
+ATOM 20 CA LEU A 392 64.778 117.442 41.198 1.00 39.49 C
+ATOM 21 C LEU A 392 65.043 116.715 39.892 1.00 38.29 C
+ATOM 22 O LEU A 392 64.561 117.144 38.840 1.00 39.82 O
+ATOM 23 CB LEU A 392 63.358 117.070 41.653 1.00 39.37 C
+ATOM 24 CG LEU A 392 62.921 117.208 43.115 1.00 41.05 C
+ATOM 25 CD1 LEU A 392 61.500 116.713 43.260 1.00 39.05 C
+ATOM 26 CD2 LEU A 392 63.840 116.404 44.020 1.00 42.81 C
+ATOM 27 N ASP A 393 65.845 115.655 39.940 1.00 37.58 N
+ATOM 28 CA ASP A 393 66.110 114.854 38.743 1.00 37.73 C
+ATOM 29 C ASP A 393 64.936 113.879 38.702 1.00 35.53 C
+ATOM 30 O ASP A 393 64.737 113.105 39.644 1.00 34.50 O
+ATOM 31 CB ASP A 393 67.406 114.054 38.888 1.00 43.79 C
+ATOM 32 CG ASP A 393 68.618 114.928 39.144 1.00 51.76 C
+ATOM 33 OD1 ASP A 393 68.601 115.723 40.114 1.00 57.00 O
+ATOM 34 OD2 ASP A 393 69.603 114.793 38.389 1.00 54.82 O
+ATOM 35 N VAL A 394 64.130 113.933 37.652 1.00 33.56 N
+ATOM 36 CA VAL A 394 62.982 113.037 37.571 1.00 32.50 C
+ATOM 37 C VAL A 394 62.840 112.339 36.228 1.00 32.81 C
+ATOM 38 O VAL A 394 63.392 112.788 35.219 1.00 33.51 O
+ATOM 39 CB VAL A 394 61.657 113.783 37.859 1.00 31.45 C
+ATOM 40 CG1 VAL A 394 61.667 114.355 39.263 1.00 30.02 C
+ATOM 41 CG2 VAL A 394 61.438 114.884 36.831 1.00 31.87 C
+ATOM 42 N THR A 395 62.133 111.212 36.235 1.00 30.90 N
+ATOM 43 CA THR A 395 61.870 110.458 35.021 1.00 26.98 C
+ATOM 44 C THR A 395 60.657 111.114 34.374 1.00 24.98 C
+ATOM 45 O THR A 395 59.589 111.180 34.967 1.00 26.02 O
+ATOM 46 CB THR A 395 61.548 108.963 35.330 1.00 29.07 C
+ATOM 47 OG1 THR A 395 60.572 108.869 36.388 1.00 28.48 O
+ATOM 48 CG2 THR A 395 62.807 108.225 35.737 1.00 26.54 C
+ATOM 49 N PRO A 396 60.814 111.643 33.162 1.00 23.61 N
+ATOM 50 CA PRO A 396 59.695 112.289 32.485 1.00 20.47 C
+ATOM 51 C PRO A 396 58.544 111.358 32.104 1.00 20.74 C
+ATOM 52 O PRO A 396 57.381 111.764 32.132 1.00 20.33 O
+ATOM 53 CB PRO A 396 60.356 112.894 31.250 1.00 23.24 C
+ATOM 54 CG PRO A 396 61.504 111.971 30.984 1.00 23.30 C
+ATOM 55 CD PRO A 396 62.046 111.738 32.360 1.00 23.04 C
+ATOM 56 N LEU A 397 58.866 110.126 31.726 1.00 18.68 N
+ATOM 57 CA LEU A 397 57.857 109.143 31.317 1.00 17.41 C
+ATOM 58 C LEU A 397 58.069 107.825 32.059 1.00 15.99 C
+ATOM 59 O LEU A 397 59.146 107.577 32.613 1.00 13.79 O
+ATOM 60 CB LEU A 397 57.972 108.871 29.819 1.00 16.09 C
+ATOM 61 CG LEU A 397 57.756 110.042 28.861 1.00 20.40 C
+ATOM 62 CD1 LEU A 397 58.199 109.663 27.460 1.00 17.52 C
+ATOM 63 CD2 LEU A 397 56.292 110.471 28.886 1.00 15.98 C
+ATOM 64 N SER A 398 57.052 106.973 32.036 1.00 16.06 N
+ATOM 65 CA SER A 398 57.121 105.673 32.685 1.00 16.55 C
+ATOM 66 C SER A 398 58.120 104.749 31.958 1.00 15.71 C
+ATOM 67 O SER A 398 58.355 104.877 30.744 1.00 13.62 O
+ATOM 68 CB SER A 398 55.733 105.026 32.713 1.00 18.19 C
+ATOM 69 OG SER A 398 54.820 105.780 33.492 1.00 22.62 O
+ATOM 70 N LEU A 399 58.725 103.849 32.724 1.00 15.69 N
+ATOM 71 CA LEU A 399 59.700 102.881 32.202 1.00 14.76 C
+ATOM 72 C LEU A 399 59.206 101.487 32.601 1.00 12.15 C
+ATOM 73 O LEU A 399 58.778 101.284 33.747 1.00 10.59 O
+ATOM 74 CB LEU A 399 61.082 103.131 32.823 1.00 12.03 C
+ATOM 75 CG LEU A 399 61.747 104.453 32.435 1.00 12.23 C
+ATOM 76 CD1 LEU A 399 62.966 104.713 33.295 1.00 11.64 C
+ATOM 77 CD2 LEU A 399 62.118 104.409 30.961 1.00 11.18 C
+ATOM 78 N GLY A 400 59.239 100.542 31.667 1.00 10.84 N
+ATOM 79 CA GLY A 400 58.770 99.204 31.989 1.00 9.25 C
+ATOM 80 C GLY A 400 59.089 98.218 30.897 1.00 9.67 C
+ATOM 81 O GLY A 400 59.953 98.483 30.066 1.00 10.03 O
+ATOM 82 N ILE A 401 58.383 97.092 30.871 1.00 8.21 N
+ATOM 83 CA ILE A 401 58.655 96.082 29.850 1.00 9.91 C
+ATOM 84 C ILE A 401 57.394 95.592 29.184 1.00 8.71 C
+ATOM 85 O ILE A 401 56.280 95.892 29.633 1.00 11.06 O
+ATOM 86 CB ILE A 401 59.398 94.858 30.434 1.00 8.37 C
+ATOM 87 CG1 ILE A 401 58.536 94.169 31.503 1.00 12.17 C
+ATOM 88 CG2 ILE A 401 60.751 95.279 30.991 1.00 10.44 C
+ATOM 89 CD1 ILE A 401 59.088 92.816 31.959 1.00 9.69 C
+ATOM 90 N GLU A 402 57.563 94.872 28.086 1.00 8.45 N
+ATOM 91 CA GLU A 402 56.418 94.330 27.399 1.00 7.95 C
+ATOM 92 C GLU A 402 56.050 92.962 27.968 1.00 11.41 C
+ATOM 93 O GLU A 402 56.903 92.077 28.075 1.00 11.33 O
+ATOM 94 CB GLU A 402 56.700 94.189 25.917 1.00 7.95 C
+ATOM 95 CG GLU A 402 55.536 93.564 25.185 1.00 14.85 C
+ATOM 96 CD GLU A 402 55.736 93.497 23.699 1.00 21.61 C
+ATOM 97 OE1 GLU A 402 56.767 93.998 23.196 1.00 22.57 O
+ATOM 98 OE2 GLU A 402 54.837 92.953 23.028 1.00 22.87 O
+ATOM 99 N THR A 403 54.785 92.800 28.343 1.00 11.89 N
+ATOM 100 CA THR A 403 54.304 91.528 28.856 1.00 10.43 C
+ATOM 101 C THR A 403 53.280 90.934 27.877 1.00 10.97 C
+ATOM 102 O THR A 403 52.814 91.614 26.946 1.00 9.54 O
+ATOM 103 CB THR A 403 53.726 91.666 30.277 1.00 6.79 C
+ATOM 104 OG1 THR A 403 52.708 92.678 30.295 1.00 12.17 O
+ATOM 105 CG2 THR A 403 54.824 92.035 31.257 1.00 4.52 C
+ATOM 106 N MET A 404 52.954 89.660 28.080 1.00 11.93 N
+ATOM 107 CA MET A 404 52.016 88.922 27.234 1.00 12.96 C
+ATOM 108 C MET A 404 50.735 89.689 26.908 1.00 11.37 C
+ATOM 109 O MET A 404 50.009 90.122 27.806 1.00 10.74 O
+ATOM 110 CB MET A 404 51.686 87.573 27.876 1.00 12.49 C
+ATOM 111 CG MET A 404 50.795 86.699 27.042 1.00 18.77 C
+ATOM 112 SD MET A 404 50.531 85.155 27.894 1.00 24.43 S
+ATOM 113 CE MET A 404 49.002 85.427 28.684 1.00 25.73 C
+ATOM 114 N GLY A 405 50.452 89.801 25.614 1.00 9.34 N
+ATOM 115 CA GLY A 405 49.294 90.540 25.151 1.00 12.51 C
+ATOM 116 C GLY A 405 49.763 91.833 24.487 1.00 16.11 C
+ATOM 117 O GLY A 405 48.956 92.613 23.984 1.00 15.45 O
+ATOM 118 N GLY A 406 51.077 92.054 24.476 1.00 16.41 N
+ATOM 119 CA GLY A 406 51.631 93.257 23.870 1.00 18.11 C
+ATOM 120 C GLY A 406 51.307 94.518 24.656 1.00 17.99 C
+ATOM 121 O GLY A 406 51.162 95.602 24.090 1.00 16.57 O
+ATOM 122 N VAL A 407 51.251 94.390 25.973 1.00 17.23 N
+ATOM 123 CA VAL A 407 50.920 95.521 26.827 1.00 19.49 C
+ATOM 124 C VAL A 407 52.169 95.992 27.563 1.00 19.92 C
+ATOM 125 O VAL A 407 53.065 95.189 27.839 1.00 19.84 O
+ATOM 126 CB VAL A 407 49.830 95.108 27.846 1.00 19.90 C
+ATOM 127 CG1 VAL A 407 50.353 94.017 28.768 1.00 22.99 C
+ATOM 128 CG2 VAL A 407 49.345 96.306 28.634 1.00 23.54 C
+ATOM 129 N MET A 408 52.264 97.291 27.839 1.00 17.66 N
+ATOM 130 CA MET A 408 53.421 97.781 28.572 1.00 15.92 C
+ATOM 131 C MET A 408 53.141 97.680 30.052 1.00 15.87 C
+ATOM 132 O MET A 408 52.107 98.153 30.523 1.00 16.93 O
+ATOM 133 CB MET A 408 53.773 99.235 28.238 1.00 16.80 C
+ATOM 134 CG MET A 408 54.873 99.820 29.160 1.00 20.57 C
+ATOM 135 SD MET A 408 55.368 101.540 28.812 1.00 20.16 S
+ATOM 136 CE MET A 408 56.196 101.989 30.304 1.00 16.81 C
+ATOM 137 N THR A 409 54.044 97.016 30.764 1.00 14.10 N
+ATOM 138 CA THR A 409 53.949 96.882 32.198 1.00 13.16 C
+ATOM 139 C THR A 409 55.027 97.787 32.783 1.00 14.78 C
+ATOM 140 O THR A 409 56.213 97.636 32.490 1.00 14.06 O
+ATOM 141 CB THR A 409 54.121 95.420 32.663 1.00 11.10 C
+ATOM 142 OG1 THR A 409 53.025 94.639 32.152 1.00 8.04 O
+ATOM 143 CG2 THR A 409 54.107 95.341 34.196 1.00 10.13 C
+ATOM 144 N THR A 410 54.588 98.754 33.582 1.00 14.80 N
+ATOM 145 CA THR A 410 55.474 99.726 34.197 1.00 13.89 C
+ATOM 146 C THR A 410 56.242 99.215 35.401 1.00 13.38 C
+ATOM 147 O THR A 410 55.669 98.566 36.274 1.00 12.16 O
+ATOM 148 CB THR A 410 54.663 100.969 34.621 1.00 14.10 C
+ATOM 149 OG1 THR A 410 54.024 101.521 33.468 1.00 13.11 O
+ATOM 150 CG2 THR A 410 55.572 102.027 35.248 1.00 13.01 C
+ATOM 151 N LEU A 411 57.546 99.482 35.413 1.00 11.80 N
+ATOM 152 CA LEU A 411 58.410 99.117 36.528 1.00 16.13 C
+ATOM 153 C LEU A 411 58.706 100.395 37.328 1.00 18.37 C
+ATOM 154 O LEU A 411 58.712 100.373 38.565 1.00 18.72 O
+ATOM 155 CB LEU A 411 59.710 98.475 36.037 1.00 15.48 C
+ATOM 156 CG LEU A 411 59.746 96.942 35.846 1.00 15.57 C
+ATOM 157 CD1 LEU A 411 59.718 96.267 37.205 1.00 16.13 C
+ATOM 158 CD2 LEU A 411 58.611 96.448 34.964 1.00 5.82 C
+ATOM 159 N ILE A 412 58.954 101.503 36.619 1.00 18.85 N
+ATOM 160 CA ILE A 412 59.214 102.797 37.264 1.00 17.72 C
+ATOM 161 C ILE A 412 58.268 103.844 36.680 1.00 17.54 C
+ATOM 162 O ILE A 412 58.315 104.165 35.492 1.00 14.35 O
+ATOM 163 CB ILE A 412 60.701 103.240 37.133 1.00 16.52 C
+ATOM 164 CG1 ILE A 412 61.594 102.233 37.886 1.00 13.92 C
+ATOM 165 CG2 ILE A 412 60.899 104.680 37.707 1.00 16.75 C
+ATOM 166 CD1 ILE A 412 63.045 102.556 37.869 1.00 12.03 C
+ATOM 167 N ALA A 413 57.404 104.364 37.545 1.00 18.91 N
+ATOM 168 CA ALA A 413 56.392 105.341 37.161 1.00 17.66 C
+ATOM 169 C ALA A 413 56.924 106.705 36.770 1.00 18.18 C
+ATOM 170 O ALA A 413 58.031 107.102 37.136 1.00 17.15 O
+ATOM 171 CB ALA A 413 55.377 105.496 38.270 1.00 15.49 C
+ATOM 172 N LYS A 414 56.114 107.395 35.981 1.00 20.59 N
+ATOM 173 CA LYS A 414 56.382 108.743 35.505 1.00 21.53 C
+ATOM 174 C LYS A 414 56.621 109.667 36.694 1.00 20.07 C
+ATOM 175 O LYS A 414 56.027 109.501 37.750 1.00 18.51 O
+ATOM 176 CB LYS A 414 55.153 109.206 34.727 1.00 25.08 C
+ATOM 177 CG LYS A 414 55.048 110.673 34.389 1.00 30.47 C
+ATOM 178 CD LYS A 414 53.819 110.887 33.510 1.00 33.46 C
+ATOM 179 CE LYS A 414 53.612 112.346 33.156 1.00 39.48 C
+ATOM 180 NZ LYS A 414 53.148 113.134 34.333 1.00 44.57 N
+ATOM 181 N ASN A 415 57.512 110.629 36.515 1.00 22.84 N
+ATOM 182 CA ASN A 415 57.822 111.611 37.547 1.00 21.61 C
+ATOM 183 C ASN A 415 58.380 111.024 38.822 1.00 23.19 C
+ATOM 184 O ASN A 415 58.092 111.496 39.917 1.00 24.54 O
+ATOM 185 CB ASN A 415 56.604 112.492 37.833 1.00 21.79 C
+ATOM 186 CG ASN A 415 56.214 113.327 36.634 1.00 25.98 C
+ATOM 187 OD1 ASN A 415 55.044 113.385 36.249 1.00 26.39 O
+ATOM 188 ND2 ASN A 415 57.206 113.941 35.999 1.00 26.69 N
+ATOM 189 N THR A 416 59.186 109.984 38.684 1.00 23.58 N
+ATOM 190 CA THR A 416 59.804 109.382 39.849 1.00 24.31 C
+ATOM 191 C THR A 416 61.166 110.054 39.911 1.00 24.51 C
+ATOM 192 O THR A 416 61.769 110.338 38.868 1.00 23.99 O
+ATOM 193 CB THR A 416 59.944 107.843 39.685 1.00 25.54 C
+ATOM 194 OG1 THR A 416 58.639 107.269 39.557 1.00 21.39 O
+ATOM 195 CG2 THR A 416 60.663 107.214 40.885 1.00 21.56 C
+ATOM 196 N THR A 417 61.619 110.371 41.116 1.00 24.36 N
+ATOM 197 CA THR A 417 62.903 111.025 41.279 1.00 26.52 C
+ATOM 198 C THR A 417 63.982 109.963 41.344 1.00 28.73 C
+ATOM 199 O THR A 417 63.783 108.915 41.969 1.00 30.83 O
+ATOM 200 CB THR A 417 62.922 111.872 42.555 1.00 28.66 C
+ATOM 201 OG1 THR A 417 62.785 111.022 43.701 1.00 32.67 O
+ATOM 202 CG2 THR A 417 61.750 112.853 42.538 1.00 26.79 C
+ATOM 203 N ILE A 418 65.108 110.206 40.679 1.00 29.04 N
+ATOM 204 CA ILE A 418 66.204 109.242 40.680 1.00 28.96 C
+ATOM 205 C ILE A 418 67.332 109.728 41.578 1.00 28.42 C
+ATOM 206 O ILE A 418 67.393 110.908 41.908 1.00 28.60 O
+ATOM 207 CB ILE A 418 66.720 108.960 39.247 1.00 29.51 C
+ATOM 208 CG1 ILE A 418 67.172 110.252 38.569 1.00 29.89 C
+ATOM 209 CG2 ILE A 418 65.622 108.292 38.430 1.00 32.48 C
+ATOM 210 CD1 ILE A 418 67.527 110.080 37.094 1.00 29.98 C
+ATOM 211 N PRO A 419 68.204 108.815 42.044 1.00 28.69 N
+ATOM 212 CA PRO A 419 68.231 107.368 41.802 1.00 25.76 C
+ATOM 213 C PRO A 419 67.046 106.597 42.388 1.00 25.14 C
+ATOM 214 O PRO A 419 66.499 106.955 43.444 1.00 22.39 O
+ATOM 215 CB PRO A 419 69.537 106.947 42.469 1.00 26.64 C
+ATOM 216 CG PRO A 419 69.626 107.878 43.619 1.00 27.03 C
+ATOM 217 CD PRO A 419 69.284 109.197 42.971 1.00 26.88 C
+ATOM 218 N THR A 420 66.686 105.513 41.710 1.00 25.10 N
+ATOM 219 CA THR A 420 65.576 104.663 42.126 1.00 24.18 C
+ATOM 220 C THR A 420 65.779 103.235 41.598 1.00 23.09 C
+ATOM 221 O THR A 420 66.352 103.031 40.530 1.00 24.81 O
+ATOM 222 CB THR A 420 64.226 105.236 41.624 1.00 24.71 C
+ATOM 223 OG1 THR A 420 63.142 104.421 42.096 1.00 28.31 O
+ATOM 224 CG2 THR A 420 64.205 105.305 40.107 1.00 24.49 C
+ATOM 225 N LYS A 421 65.323 102.254 42.363 1.00 21.76 N
+ATOM 226 CA LYS A 421 65.455 100.853 41.987 1.00 22.47 C
+ATOM 227 C LYS A 421 64.149 100.129 42.310 1.00 20.75 C
+ATOM 228 O LYS A 421 63.688 100.148 43.451 1.00 23.41 O
+ATOM 229 CB LYS A 421 66.618 100.221 42.765 1.00 23.33 C
+ATOM 230 CG LYS A 421 66.883 98.738 42.501 1.00 25.89 C
+ATOM 231 CD LYS A 421 68.139 98.278 43.249 1.00 29.75 C
+ATOM 232 CE LYS A 421 68.287 96.759 43.241 1.00 37.86 C
+ATOM 233 NZ LYS A 421 69.589 96.292 43.838 1.00 45.14 N
+ATOM 234 N HIS A 422 63.519 99.557 41.292 1.00 18.18 N
+ATOM 235 CA HIS A 422 62.275 98.815 41.474 1.00 17.13 C
+ATOM 236 C HIS A 422 62.412 97.460 40.785 1.00 17.39 C
+ATOM 237 O HIS A 422 63.183 97.315 39.830 1.00 14.28 O
+ATOM 238 CB HIS A 422 61.081 99.577 40.890 1.00 21.39 C
+ATOM 239 CG HIS A 422 60.766 100.860 41.604 1.00 27.67 C
+ATOM 240 ND1 HIS A 422 60.012 101.861 41.033 1.00 32.47 N
+ATOM 241 CD2 HIS A 422 61.105 101.305 42.837 1.00 29.53 C
+ATOM 242 CE1 HIS A 422 59.900 102.870 41.879 1.00 29.44 C
+ATOM 243 NE2 HIS A 422 60.554 102.557 42.981 1.00 31.55 N
+ATOM 244 N SER A 423 61.683 96.469 41.297 1.00 15.06 N
+ATOM 245 CA SER A 423 61.700 95.126 40.751 1.00 11.62 C
+ATOM 246 C SER A 423 60.320 94.480 40.757 1.00 12.51 C
+ATOM 247 O SER A 423 59.406 94.931 41.448 1.00 11.09 O
+ATOM 248 CB SER A 423 62.658 94.273 41.563 1.00 9.00 C
+ATOM 249 OG SER A 423 63.951 94.857 41.541 1.00 24.06 O
+ATOM 250 N GLN A 424 60.158 93.451 39.935 1.00 13.35 N
+ATOM 251 CA GLN A 424 58.911 92.695 39.878 1.00 14.06 C
+ATOM 252 C GLN A 424 59.264 91.342 39.270 1.00 11.40 C
+ATOM 253 O GLN A 424 60.202 91.246 38.481 1.00 11.05 O
+ATOM 254 CB GLN A 424 57.859 93.412 39.029 1.00 14.96 C
+ATOM 255 CG GLN A 424 56.540 92.689 38.983 1.00 20.11 C
+ATOM 256 CD GLN A 424 55.426 93.493 38.351 1.00 25.34 C
+ATOM 257 OE1 GLN A 424 54.387 92.932 37.996 1.00 30.61 O
+ATOM 258 NE2 GLN A 424 55.617 94.806 38.221 1.00 20.73 N
+ATOM 259 N VAL A 425 58.576 90.294 39.706 1.00 10.18 N
+ATOM 260 CA VAL A 425 58.829 88.952 39.192 1.00 8.33 C
+ATOM 261 C VAL A 425 57.794 88.615 38.132 1.00 7.89 C
+ATOM 262 O VAL A 425 56.605 88.909 38.289 1.00 9.02 O
+ATOM 263 CB VAL A 425 58.787 87.892 40.313 1.00 6.98 C
+ATOM 264 CG1 VAL A 425 58.993 86.491 39.745 1.00 6.62 C
+ATOM 265 CG2 VAL A 425 59.872 88.171 41.317 1.00 13.22 C
+ATOM 266 N PHE A 426 58.276 88.075 37.017 1.00 10.04 N
+ATOM 267 CA PHE A 426 57.427 87.661 35.908 1.00 7.96 C
+ATOM 268 C PHE A 426 57.672 86.171 35.691 1.00 10.67 C
+ATOM 269 O PHE A 426 58.504 85.559 36.377 1.00 7.43 O
+ATOM 270 CB PHE A 426 57.786 88.424 34.635 1.00 7.53 C
+ATOM 271 CG PHE A 426 57.647 89.905 34.771 1.00 9.29 C
+ATOM 272 CD1 PHE A 426 58.675 90.661 35.337 1.00 6.40 C
+ATOM 273 CD2 PHE A 426 56.461 90.537 34.417 1.00 6.17 C
+ATOM 274 CE1 PHE A 426 58.511 92.030 35.562 1.00 8.24 C
+ATOM 275 CE2 PHE A 426 56.291 91.902 34.638 1.00 10.63 C
+ATOM 276 CZ PHE A 426 57.319 92.649 35.214 1.00 9.18 C
+ATOM 277 N SER A 427 56.972 85.602 34.723 1.00 12.13 N
+ATOM 278 CA SER A 427 57.120 84.186 34.419 1.00 13.88 C
+ATOM 279 C SER A 427 56.950 83.936 32.924 1.00 13.74 C
+ATOM 280 O SER A 427 56.724 84.866 32.141 1.00 13.14 O
+ATOM 281 CB SER A 427 56.115 83.359 35.226 1.00 14.23 C
+ATOM 282 OG SER A 427 56.395 81.974 35.123 1.00 16.58 O
+ATOM 283 N THR A 428 57.045 82.672 32.539 1.00 10.10 N
+ATOM 284 CA THR A 428 56.934 82.270 31.154 1.00 9.89 C
+ATOM 285 C THR A 428 55.486 82.143 30.699 1.00 9.58 C
+ATOM 286 O THR A 428 54.625 81.724 31.469 1.00 10.73 O
+ATOM 287 CB THR A 428 57.641 80.922 30.950 1.00 7.43 C
+ATOM 288 OG1 THR A 428 57.137 79.983 31.908 1.00 8.81 O
+ATOM 289 CG2 THR A 428 59.123 81.088 31.164 1.00 7.80 C
+ATOM 290 N ALA A 429 55.239 82.473 29.435 1.00 10.07 N
+ATOM 291 CA ALA A 429 53.898 82.384 28.872 1.00 12.15 C
+ATOM 292 C ALA A 429 53.564 80.983 28.370 1.00 14.59 C
+ATOM 293 O ALA A 429 52.389 80.627 28.270 1.00 16.23 O
+ATOM 294 CB ALA A 429 53.749 83.381 27.720 1.00 10.07 C
+ATOM 295 N GLU A 430 54.587 80.189 28.053 1.00 17.52 N
+ATOM 296 CA GLU A 430 54.390 78.840 27.508 1.00 16.86 C
+ATOM 297 C GLU A 430 55.124 77.746 28.279 1.00 18.04 C
+ATOM 298 O GLU A 430 56.199 77.993 28.840 1.00 16.68 O
+ATOM 299 CB GLU A 430 54.848 78.814 26.038 1.00 14.43 C
+ATOM 300 N ASP A 431 54.566 76.528 28.237 1.00 17.18 N
+ATOM 301 CA ASP A 431 55.146 75.362 28.902 1.00 15.57 C
+ATOM 302 C ASP A 431 56.484 75.062 28.274 1.00 13.47 C
+ATOM 303 O ASP A 431 56.638 75.174 27.058 1.00 14.51 O
+ATOM 304 CB ASP A 431 54.267 74.112 28.726 1.00 19.02 C
+ATOM 305 CG ASP A 431 52.948 74.190 29.477 1.00 25.04 C
+ATOM 306 OD1 ASP A 431 52.830 74.923 30.474 1.00 23.97 O
+ATOM 307 OD2 ASP A 431 51.987 73.521 29.055 1.00 32.17 O
+ATOM 308 N ASN A 432 57.462 74.721 29.107 1.00 14.82 N
+ATOM 309 CA ASN A 432 58.804 74.371 28.643 1.00 15.76 C
+ATOM 310 C ASN A 432 59.527 75.517 27.935 1.00 16.11 C
+ATOM 311 O ASN A 432 60.479 75.280 27.185 1.00 16.39 O
+ATOM 312 CB ASN A 432 58.721 73.138 27.717 1.00 19.52 C
+ATOM 313 CG ASN A 432 60.063 72.478 27.484 1.00 20.42 C
+ATOM 314 OD1 ASN A 432 60.890 72.411 28.379 1.00 24.71 O
+ATOM 315 ND2 ASN A 432 60.277 71.969 26.280 1.00 21.78 N
+ATOM 316 N GLN A 433 59.103 76.757 28.186 1.00 14.05 N
+ATOM 317 CA GLN A 433 59.739 77.922 27.550 1.00 12.48 C
+ATOM 318 C GLN A 433 61.156 78.027 28.086 1.00 11.79 C
+ATOM 319 O GLN A 433 61.354 78.060 29.300 1.00 14.24 O
+ATOM 320 CB GLN A 433 58.952 79.198 27.867 1.00 12.34 C
+ATOM 321 CG GLN A 433 59.344 80.435 27.040 1.00 13.59 C
+ATOM 322 CD GLN A 433 58.410 81.618 27.304 1.00 12.02 C
+ATOM 323 OE1 GLN A 433 57.200 81.439 27.424 1.00 11.84 O
+ATOM 324 NE2 GLN A 433 58.967 82.822 27.396 1.00 8.54 N
+ATOM 325 N SER A 434 62.133 78.126 27.190 1.00 12.10 N
+ATOM 326 CA SER A 434 63.534 78.166 27.595 1.00 13.39 C
+ATOM 327 C SER A 434 64.153 79.546 27.714 1.00 14.28 C
+ATOM 328 O SER A 434 65.289 79.674 28.168 1.00 14.50 O
+ATOM 329 CB SER A 434 64.381 77.322 26.649 1.00 13.31 C
+ATOM 330 OG SER A 434 64.452 77.915 25.361 1.00 19.35 O
+ATOM 331 N ALA A 435 63.433 80.570 27.280 1.00 14.54 N
+ATOM 332 CA ALA A 435 63.951 81.936 27.358 1.00 14.68 C
+ATOM 333 C ALA A 435 62.812 82.947 27.354 1.00 14.21 C
+ATOM 334 O ALA A 435 61.692 82.644 26.912 1.00 10.12 O
+ATOM 335 CB ALA A 435 64.900 82.222 26.177 1.00 10.81 C
+ATOM 336 N VAL A 436 63.097 84.131 27.895 1.00 11.95 N
+ATOM 337 CA VAL A 436 62.139 85.228 27.922 1.00 11.64 C
+ATOM 338 C VAL A 436 62.855 86.402 27.284 1.00 11.42 C
+ATOM 339 O VAL A 436 64.095 86.500 27.360 1.00 8.50 O
+ATOM 340 CB VAL A 436 61.706 85.633 29.372 1.00 9.06 C
+ATOM 341 CG1 VAL A 436 60.902 84.522 30.018 1.00 15.67 C
+ATOM 342 CG2 VAL A 436 62.909 85.942 30.220 1.00 8.10 C
+ATOM 343 N SER A 437 62.098 87.216 26.554 1.00 13.13 N
+ATOM 344 CA SER A 437 62.654 88.418 25.924 1.00 14.74 C
+ATOM 345 C SER A 437 62.221 89.623 26.766 1.00 13.83 C
+ATOM 346 O SER A 437 61.047 89.752 27.135 1.00 12.93 O
+ATOM 347 CB SER A 437 62.144 88.563 24.490 1.00 16.34 C
+ATOM 348 OG SER A 437 62.450 87.392 23.754 1.00 14.28 O
+ATOM 349 N ILE A 438 63.186 90.457 27.127 1.00 15.00 N
+ATOM 350 CA ILE A 438 62.916 91.644 27.933 1.00 12.80 C
+ATOM 351 C ILE A 438 62.983 92.826 26.984 1.00 12.73 C
+ATOM 352 O ILE A 438 64.051 93.158 26.471 1.00 11.25 O
+ATOM 353 CB ILE A 438 63.961 91.824 29.054 1.00 12.22 C
+ATOM 354 CG1 ILE A 438 63.994 90.585 29.958 1.00 11.06 C
+ATOM 355 CG2 ILE A 438 63.633 93.057 29.903 1.00 13.49 C
+ATOM 356 CD1 ILE A 438 62.702 90.329 30.723 1.00 13.39 C
+ATOM 357 N HIS A 439 61.822 93.390 26.677 1.00 13.43 N
+ATOM 358 CA HIS A 439 61.747 94.530 25.775 1.00 14.48 C
+ATOM 359 C HIS A 439 61.481 95.766 26.638 1.00 12.92 C
+ATOM 360 O HIS A 439 60.375 95.951 27.164 1.00 9.78 O
+ATOM 361 CB HIS A 439 60.648 94.302 24.735 1.00 15.94 C
+ATOM 362 CG HIS A 439 60.520 95.405 23.727 1.00 24.67 C
+ATOM 363 ND1 HIS A 439 59.388 95.583 22.958 1.00 24.89 N
+ATOM 364 CD2 HIS A 439 61.385 96.379 23.355 1.00 23.80 C
+ATOM 365 CE1 HIS A 439 59.563 96.615 22.152 1.00 24.10 C
+ATOM 366 NE2 HIS A 439 60.767 97.115 22.374 1.00 24.13 N
+ATOM 367 N VAL A 440 62.523 96.573 26.824 1.00 13.20 N
+ATOM 368 CA VAL A 440 62.427 97.786 27.640 1.00 14.26 C
+ATOM 369 C VAL A 440 61.654 98.903 26.929 1.00 13.79 C
+ATOM 370 O VAL A 440 61.915 99.221 25.766 1.00 11.88 O
+ATOM 371 CB VAL A 440 63.824 98.267 28.083 1.00 14.63 C
+ATOM 372 CG1 VAL A 440 63.699 99.403 29.104 1.00 8.57 C
+ATOM 373 CG2 VAL A 440 64.599 97.096 28.675 1.00 7.93 C
+ATOM 374 N LEU A 441 60.725 99.521 27.644 1.00 13.56 N
+ATOM 375 CA LEU A 441 59.887 100.550 27.051 1.00 13.65 C
+ATOM 376 C LEU A 441 59.816 101.829 27.870 1.00 14.13 C
+ATOM 377 O LEU A 441 59.875 101.794 29.105 1.00 13.65 O
+ATOM 378 CB LEU A 441 58.460 100.009 26.896 1.00 13.29 C
+ATOM 379 CG LEU A 441 58.189 98.693 26.150 1.00 8.24 C
+ATOM 380 CD1 LEU A 441 56.842 98.150 26.579 1.00 11.87 C
+ATOM 381 CD2 LEU A 441 58.228 98.886 24.660 1.00 6.76 C
+ATOM 382 N GLN A 442 59.699 102.956 27.171 1.00 12.71 N
+ATOM 383 CA GLN A 442 59.557 104.267 27.811 1.00 13.03 C
+ATOM 384 C GLN A 442 58.280 104.877 27.225 1.00 10.54 C
+ATOM 385 O GLN A 442 58.120 104.923 26.009 1.00 12.26 O
+ATOM 386 CB GLN A 442 60.755 105.176 27.495 1.00 9.71 C
+ATOM 387 CG GLN A 442 60.667 106.537 28.177 1.00 15.82 C
+ATOM 388 CD GLN A 442 61.711 107.544 27.702 1.00 17.30 C
+ATOM 389 OE1 GLN A 442 61.967 107.674 26.502 1.00 18.88 O
+ATOM 390 NE2 GLN A 442 62.281 108.293 28.642 1.00 14.70 N
+ATOM 391 N GLY A 443 57.353 105.310 28.070 1.00 13.43 N
+ATOM 392 CA GLY A 443 56.140 105.914 27.545 1.00 14.05 C
+ATOM 393 C GLY A 443 54.951 105.758 28.471 1.00 16.58 C
+ATOM 394 O GLY A 443 55.047 105.069 29.494 1.00 16.73 O
+ATOM 395 N GLU A 444 53.814 106.329 28.073 1.00 15.05 N
+ATOM 396 CA GLU A 444 52.596 106.292 28.892 1.00 17.52 C
+ATOM 397 C GLU A 444 51.451 105.506 28.287 1.00 16.68 C
+ATOM 398 O GLU A 444 50.338 105.497 28.834 1.00 19.22 O
+ATOM 399 CB GLU A 444 52.102 107.718 29.150 1.00 18.82 C
+ATOM 400 CG GLU A 444 53.064 108.556 29.941 1.00 16.64 C
+ATOM 401 CD GLU A 444 53.346 107.956 31.282 1.00 16.62 C
+ATOM 402 OE1 GLU A 444 52.404 107.750 32.067 1.00 25.29 O
+ATOM 403 OE2 GLU A 444 54.519 107.701 31.567 1.00 19.25 O
+ATOM 404 N ARG A 445 51.707 104.889 27.141 1.00 18.04 N
+ATOM 405 CA ARG A 445 50.698 104.104 26.420 1.00 18.94 C
+ATOM 406 C ARG A 445 50.529 102.690 26.988 1.00 16.02 C
+ATOM 407 O ARG A 445 51.450 102.143 27.591 1.00 12.94 O
+ATOM 408 CB ARG A 445 51.073 104.045 24.938 1.00 20.30 C
+ATOM 409 CG ARG A 445 51.384 105.417 24.351 1.00 25.36 C
+ATOM 410 CD ARG A 445 50.133 106.305 24.221 1.00 26.65 C
+ATOM 411 NE ARG A 445 49.486 106.076 22.935 1.00 28.47 N
+ATOM 412 CZ ARG A 445 48.235 105.670 22.801 1.00 27.14 C
+ATOM 413 NH1 ARG A 445 47.505 105.480 23.876 1.00 31.50 N
+ATOM 414 NH2 ARG A 445 47.755 105.352 21.607 1.00 28.78 N
+ATOM 415 N LYS A 446 49.336 102.126 26.833 1.00 17.01 N
+ATOM 416 CA LYS A 446 49.063 100.785 27.334 1.00 19.65 C
+ATOM 417 C LYS A 446 49.576 99.738 26.354 1.00 19.50 C
+ATOM 418 O LYS A 446 49.998 98.648 26.753 1.00 17.95 O
+ATOM 419 CB LYS A 446 47.574 100.609 27.633 1.00 19.82 C
+ATOM 420 CG LYS A 446 47.060 101.622 28.657 1.00 26.33 C
+ATOM 421 CD LYS A 446 47.786 101.509 29.998 1.00 31.41 C
+ATOM 422 CE LYS A 446 47.709 102.806 30.793 1.00 32.23 C
+ATOM 423 NZ LYS A 446 48.514 103.886 30.145 1.00 39.76 N
+ATOM 424 N ARG A 447 49.579 100.088 25.074 1.00 19.52 N
+ATOM 425 CA ARG A 447 50.090 99.192 24.051 1.00 19.78 C
+ATOM 426 C ARG A 447 51.608 99.380 24.011 1.00 19.42 C
+ATOM 427 O ARG A 447 52.107 100.496 23.870 1.00 17.44 O
+ATOM 428 CB ARG A 447 49.481 99.529 22.689 1.00 21.82 C
+ATOM 429 CG ARG A 447 49.502 98.376 21.710 1.00 29.62 C
+ATOM 430 CD ARG A 447 48.851 98.730 20.376 1.00 31.19 C
+ATOM 431 NE ARG A 447 47.428 99.073 20.472 1.00 30.45 N
+ATOM 432 CZ ARG A 447 46.427 98.243 20.178 1.00 30.88 C
+ATOM 433 NH1 ARG A 447 46.687 97.001 19.787 1.00 30.02 N
+ATOM 434 NH2 ARG A 447 45.168 98.679 20.183 1.00 26.32 N
+ATOM 435 N ALA A 448 52.347 98.297 24.206 1.00 17.43 N
+ATOM 436 CA ALA A 448 53.798 98.353 24.178 1.00 15.79 C
+ATOM 437 C ALA A 448 54.318 98.989 22.889 1.00 16.31 C
+ATOM 438 O ALA A 448 55.266 99.771 22.924 1.00 17.69 O
+ATOM 439 CB ALA A 448 54.373 96.945 24.329 1.00 16.65 C
+ATOM 440 N ALA A 449 53.685 98.666 21.762 1.00 13.73 N
+ATOM 441 CA ALA A 449 54.100 99.174 20.457 1.00 16.36 C
+ATOM 442 C ALA A 449 54.001 100.697 20.309 1.00 19.16 C
+ATOM 443 O ALA A 449 54.694 101.289 19.479 1.00 20.23 O
+ATOM 444 CB ALA A 449 53.299 98.484 19.349 1.00 15.52 C
+ATOM 445 N ASP A 450 53.144 101.321 21.112 1.00 19.48 N
+ATOM 446 CA ASP A 450 52.947 102.766 21.053 1.00 19.98 C
+ATOM 447 C ASP A 450 53.927 103.514 21.950 1.00 21.32 C
+ATOM 448 O ASP A 450 53.852 104.736 22.095 1.00 23.98 O
+ATOM 449 CB ASP A 450 51.505 103.105 21.450 1.00 19.13 C
+ATOM 450 CG ASP A 450 50.485 102.534 20.485 1.00 18.79 C
+ATOM 451 OD1 ASP A 450 50.839 102.321 19.311 1.00 18.21 O
+ATOM 452 OD2 ASP A 450 49.321 102.306 20.888 1.00 20.85 O
+ATOM 453 N ASN A 451 54.852 102.780 22.552 1.00 18.41 N
+ATOM 454 CA ASN A 451 55.817 103.387 23.444 1.00 16.55 C
+ATOM 455 C ASN A 451 57.175 103.406 22.794 1.00 13.65 C
+ATOM 456 O ASN A 451 57.362 102.834 21.729 1.00 14.21 O
+ATOM 457 CB ASN A 451 55.862 102.654 24.790 1.00 14.56 C
+ATOM 458 CG ASN A 451 54.583 102.831 25.585 1.00 19.32 C
+ATOM 459 OD1 ASN A 451 54.323 103.904 26.125 1.00 15.66 O
+ATOM 460 ND2 ASN A 451 53.758 101.790 25.631 1.00 18.15 N
+ATOM 461 N LYS A 452 58.103 104.127 23.404 1.00 14.23 N
+ATOM 462 CA LYS A 452 59.449 104.221 22.875 1.00 14.44 C
+ATOM 463 C LYS A 452 60.241 102.995 23.306 1.00 15.79 C
+ATOM 464 O LYS A 452 60.340 102.686 24.490 1.00 14.96 O
+ATOM 465 CB LYS A 452 60.116 105.492 23.372 1.00 11.04 C
+ATOM 466 CG LYS A 452 61.612 105.564 23.157 1.00 17.41 C
+ATOM 467 CD LYS A 452 61.979 105.577 21.685 1.00 22.69 C
+ATOM 468 CE LYS A 452 63.461 105.876 21.496 1.00 22.34 C
+ATOM 469 NZ LYS A 452 63.803 105.823 20.057 1.00 24.57 N
+ATOM 470 N SER A 453 60.778 102.277 22.333 1.00 18.15 N
+ATOM 471 CA SER A 453 61.564 101.096 22.638 1.00 17.53 C
+ATOM 472 C SER A 453 62.982 101.507 22.989 1.00 16.09 C
+ATOM 473 O SER A 453 63.659 102.170 22.199 1.00 19.51 O
+ATOM 474 CB SER A 453 61.572 100.150 21.449 1.00 16.75 C
+ATOM 475 OG SER A 453 62.535 99.134 21.652 1.00 24.36 O
+ATOM 476 N LEU A 454 63.431 101.146 24.182 1.00 14.22 N
+ATOM 477 CA LEU A 454 64.786 101.487 24.592 1.00 14.90 C
+ATOM 478 C LEU A 454 65.785 100.387 24.259 1.00 14.80 C
+ATOM 479 O LEU A 454 66.993 100.601 24.332 1.00 16.22 O
+ATOM 480 CB LEU A 454 64.831 101.820 26.083 1.00 14.89 C
+ATOM 481 CG LEU A 454 64.027 103.063 26.493 1.00 17.20 C
+ATOM 482 CD1 LEU A 454 63.992 103.197 28.016 1.00 10.63 C
+ATOM 483 CD2 LEU A 454 64.633 104.304 25.856 1.00 11.70 C
+ATOM 484 N GLY A 455 65.276 99.219 23.879 1.00 14.73 N
+ATOM 485 CA GLY A 455 66.133 98.093 23.540 1.00 14.05 C
+ATOM 486 C GLY A 455 65.555 96.790 24.078 1.00 15.34 C
+ATOM 487 O GLY A 455 64.476 96.786 24.713 1.00 13.36 O
+ATOM 488 N GLN A 456 66.229 95.678 23.784 1.00 12.93 N
+ATOM 489 CA GLN A 456 65.789 94.372 24.270 1.00 12.80 C
+ATOM 490 C GLN A 456 66.929 93.396 24.337 1.00 13.30 C
+ATOM 491 O GLN A 456 67.979 93.599 23.712 1.00 12.62 O
+ATOM 492 CB GLN A 456 64.635 93.793 23.437 1.00 14.53 C
+ATOM 493 CG GLN A 456 64.971 93.109 22.114 1.00 23.29 C
+ATOM 494 CD GLN A 456 63.703 92.589 21.426 1.00 29.80 C
+ATOM 495 OE1 GLN A 456 62.597 92.739 21.953 1.00 34.08 O
+ATOM 496 NE2 GLN A 456 63.855 91.989 20.257 1.00 29.06 N
+ATOM 497 N PHE A 457 66.743 92.368 25.153 1.00 14.97 N
+ATOM 498 CA PHE A 457 67.742 91.309 25.329 1.00 13.65 C
+ATOM 499 C PHE A 457 66.997 90.070 25.825 1.00 13.62 C
+ATOM 500 O PHE A 457 65.842 90.160 26.274 1.00 12.08 O
+ATOM 501 CB PHE A 457 68.825 91.735 26.337 1.00 11.87 C
+ATOM 502 CG PHE A 457 68.316 91.909 27.742 1.00 8.91 C
+ATOM 503 CD1 PHE A 457 67.640 93.070 28.115 1.00 12.90 C
+ATOM 504 CD2 PHE A 457 68.489 90.899 28.691 1.00 8.56 C
+ATOM 505 CE1 PHE A 457 67.134 93.223 29.423 1.00 11.62 C
+ATOM 506 CE2 PHE A 457 67.994 91.034 29.986 1.00 8.11 C
+ATOM 507 CZ PHE A 457 67.314 92.200 30.358 1.00 13.83 C
+ATOM 508 N ASN A 458 67.645 88.918 25.732 1.00 14.19 N
+ATOM 509 CA ASN A 458 67.024 87.667 26.165 1.00 14.76 C
+ATOM 510 C ASN A 458 67.722 87.094 27.383 1.00 11.69 C
+ATOM 511 O ASN A 458 68.898 87.383 27.640 1.00 9.44 O
+ATOM 512 CB ASN A 458 67.137 86.581 25.078 1.00 15.86 C
+ATOM 513 CG ASN A 458 66.479 86.963 23.779 1.00 19.81 C
+ATOM 514 OD1 ASN A 458 67.007 86.673 22.704 1.00 27.44 O
+ATOM 515 ND2 ASN A 458 65.319 87.584 23.854 1.00 22.23 N
+ATOM 516 N LEU A 459 66.972 86.309 28.146 1.00 10.65 N
+ATOM 517 CA LEU A 459 67.527 85.580 29.277 1.00 11.81 C
+ATOM 518 C LEU A 459 67.174 84.131 28.891 1.00 12.42 C
+ATOM 519 O LEU A 459 65.999 83.826 28.691 1.00 9.59 O
+ATOM 520 CB LEU A 459 66.846 85.945 30.605 1.00 11.29 C
+ATOM 521 CG LEU A 459 67.260 85.016 31.768 1.00 10.65 C
+ATOM 522 CD1 LEU A 459 68.761 85.094 31.999 1.00 11.16 C
+ATOM 523 CD2 LEU A 459 66.503 85.336 33.039 1.00 6.22 C
+ATOM 524 N ASP A 460 68.180 83.287 28.661 1.00 14.64 N
+ATOM 525 CA ASP A 460 67.912 81.892 28.309 1.00 18.46 C
+ATOM 526 C ASP A 460 68.342 80.926 29.426 1.00 18.08 C
+ATOM 527 O ASP A 460 68.667 81.349 30.546 1.00 18.20 O
+ATOM 528 CB ASP A 460 68.523 81.516 26.925 1.00 22.97 C
+ATOM 529 CG ASP A 460 70.047 81.349 26.947 1.00 28.32 C
+ATOM 530 OD1 ASP A 460 70.686 81.610 27.988 1.00 35.64 O
+ATOM 531 OD2 ASP A 460 70.625 80.929 25.910 1.00 31.91 O
+ATOM 532 N GLY A 461 68.247 79.632 29.157 1.00 17.48 N
+ATOM 533 CA GLY A 461 68.633 78.640 30.149 1.00 14.64 C
+ATOM 534 C GLY A 461 67.545 78.300 31.153 1.00 14.37 C
+ATOM 535 O GLY A 461 67.823 77.658 32.173 1.00 13.00 O
+ATOM 536 N ILE A 462 66.314 78.745 30.897 1.00 11.24 N
+ATOM 537 CA ILE A 462 65.219 78.468 31.805 1.00 9.81 C
+ATOM 538 C ILE A 462 64.905 76.972 31.656 1.00 14.99 C
+ATOM 539 O ILE A 462 64.709 76.476 30.545 1.00 13.71 O
+ATOM 540 CB ILE A 462 63.991 79.350 31.487 1.00 10.90 C
+ATOM 541 CG1 ILE A 462 64.380 80.833 31.581 1.00 7.22 C
+ATOM 542 CG2 ILE A 462 62.855 79.086 32.476 1.00 5.99 C
+ATOM 543 CD1 ILE A 462 63.321 81.764 31.036 1.00 9.22 C
+ATOM 544 N ASN A 463 64.951 76.254 32.775 1.00 15.96 N
+ATOM 545 CA ASN A 463 64.709 74.811 32.799 1.00 16.40 C
+ATOM 546 C ASN A 463 63.254 74.485 32.560 1.00 15.65 C
+ATOM 547 O ASN A 463 62.377 75.279 32.905 1.00 16.06 O
+ATOM 548 CB ASN A 463 65.158 74.215 34.142 1.00 15.65 C
+ATOM 549 CG ASN A 463 66.664 74.314 34.354 1.00 17.94 C
+ATOM 550 OD1 ASN A 463 67.121 74.739 35.410 1.00 24.45 O
+ATOM 551 ND2 ASN A 463 67.438 73.951 33.340 1.00 11.62 N
+ATOM 552 N PRO A 464 62.971 73.297 31.985 1.00 17.97 N
+ATOM 553 CA PRO A 464 61.604 72.848 31.693 1.00 16.55 C
+ATOM 554 C PRO A 464 60.667 72.951 32.888 1.00 15.79 C
+ATOM 555 O PRO A 464 60.966 72.466 33.980 1.00 13.53 O
+ATOM 556 CB PRO A 464 61.804 71.400 31.227 1.00 16.73 C
+ATOM 557 CG PRO A 464 63.151 71.016 31.789 1.00 17.77 C
+ATOM 558 CD PRO A 464 63.945 72.265 31.589 1.00 16.44 C
+ATOM 559 N ALA A 465 59.538 73.621 32.675 1.00 15.68 N
+ATOM 560 CA ALA A 465 58.559 73.831 33.736 1.00 13.01 C
+ATOM 561 C ALA A 465 57.234 74.257 33.153 1.00 11.36 C
+ATOM 562 O ALA A 465 57.167 74.726 32.013 1.00 11.74 O
+ATOM 563 CB ALA A 465 59.048 74.910 34.701 1.00 12.79 C
+ATOM 564 N PRO A 466 56.145 74.023 33.890 1.00 9.53 N
+ATOM 565 CA PRO A 466 54.845 74.429 33.375 1.00 10.46 C
+ATOM 566 C PRO A 466 54.871 75.952 33.215 1.00 13.60 C
+ATOM 567 O PRO A 466 55.627 76.643 33.900 1.00 15.01 O
+ATOM 568 CB PRO A 466 53.897 74.027 34.502 1.00 10.38 C
+ATOM 569 CG PRO A 466 54.561 72.841 35.092 1.00 10.19 C
+ATOM 570 CD PRO A 466 56.002 73.249 35.138 1.00 11.09 C
+ATOM 571 N ARG A 467 54.061 76.472 32.310 1.00 11.58 N
+ATOM 572 CA ARG A 467 53.988 77.909 32.098 1.00 14.67 C
+ATOM 573 C ARG A 467 53.558 78.601 33.405 1.00 14.39 C
+ATOM 574 O ARG A 467 52.734 78.067 34.168 1.00 12.28 O
+ATOM 575 CB ARG A 467 53.007 78.201 30.950 1.00 15.27 C
+ATOM 576 CG ARG A 467 52.027 79.319 31.186 1.00 26.52 C
+ATOM 577 CD ARG A 467 50.714 78.794 31.708 1.00 32.97 C
+ATOM 578 NE ARG A 467 49.671 79.819 31.745 1.00 38.01 N
+ATOM 579 CZ ARG A 467 49.172 80.440 30.676 1.00 39.71 C
+ATOM 580 NH1 ARG A 467 49.618 80.168 29.453 1.00 40.17 N
+ATOM 581 NH2 ARG A 467 48.193 81.318 30.830 1.00 43.12 N
+ATOM 582 N GLY A 468 54.154 79.754 33.691 1.00 12.30 N
+ATOM 583 CA GLY A 468 53.780 80.487 34.886 1.00 13.22 C
+ATOM 584 C GLY A 468 54.484 80.068 36.161 1.00 13.24 C
+ATOM 585 O GLY A 468 54.252 80.643 37.226 1.00 16.18 O
+ATOM 586 N MET A 469 55.357 79.074 36.070 1.00 13.95 N
+ATOM 587 CA MET A 469 56.066 78.613 37.248 1.00 9.80 C
+ATOM 588 C MET A 469 57.419 79.270 37.432 1.00 7.30 C
+ATOM 589 O MET A 469 57.776 79.628 38.560 1.00 11.24 O
+ATOM 590 CB MET A 469 56.210 77.090 37.235 1.00 14.57 C
+ATOM 591 CG MET A 469 54.886 76.349 37.252 1.00 11.74 C
+ATOM 592 SD MET A 469 53.964 76.624 38.773 1.00 16.63 S
+ATOM 593 CE MET A 469 55.032 75.788 40.004 1.00 16.22 C
+ATOM 594 N PRO A 470 58.197 79.451 36.344 1.00 6.43 N
+ATOM 595 CA PRO A 470 59.512 80.084 36.498 1.00 6.36 C
+ATOM 596 C PRO A 470 59.396 81.471 37.126 1.00 7.96 C
+ATOM 597 O PRO A 470 58.376 82.144 36.964 1.00 8.42 O
+ATOM 598 CB PRO A 470 60.020 80.182 35.058 1.00 2.01 C
+ATOM 599 CG PRO A 470 59.389 79.016 34.407 1.00 6.74 C
+ATOM 600 CD PRO A 470 57.981 79.049 34.942 1.00 2.87 C
+ATOM 601 N GLN A 471 60.427 81.878 37.854 1.00 8.89 N
+ATOM 602 CA GLN A 471 60.474 83.192 38.501 1.00 9.20 C
+ATOM 603 C GLN A 471 61.597 84.033 37.899 1.00 8.16 C
+ATOM 604 O GLN A 471 62.773 83.866 38.237 1.00 10.02 O
+ATOM 605 CB GLN A 471 60.717 83.039 39.995 1.00 9.60 C
+ATOM 606 CG GLN A 471 59.567 82.423 40.734 1.00 10.12 C
+ATOM 607 CD GLN A 471 59.960 82.060 42.130 1.00 13.38 C
+ATOM 608 OE1 GLN A 471 60.435 82.909 42.887 1.00 11.80 O
+ATOM 609 NE2 GLN A 471 59.823 80.787 42.473 1.00 13.04 N
+TER
+ATOM 1586 N ASN B 1 50.916 87.960 38.874 1.00 44.00 N
+ATOM 1587 CA ASN B 1 51.409 86.848 38.000 1.00 43.84 C
+ATOM 1588 C ASN B 1 51.328 87.322 36.535 1.00 42.11 C
+ATOM 1589 O ASN B 1 50.291 87.181 35.873 1.00 44.48 O
+ATOM 1590 CB ASN B 1 50.546 85.588 38.191 1.00 46.01 C
+ATOM 1591 CG ASN B 1 50.629 85.004 39.602 1.00 45.80 C
+ATOM 1592 OD1 ASN B 1 51.524 84.210 39.887 1.00 44.67 O
+ATOM 1593 ND2 ASN B 1 49.735 85.350 40.509 1.00 46.09 N
+ATOM 1594 N ARG B 2 52.433 87.890 36.064 1.00 35.57 N
+ATOM 1595 CA ARG B 2 52.535 88.441 34.691 1.00 29.49 C
+ATOM 1596 C ARG B 2 53.571 87.642 33.875 1.00 23.83 C
+ATOM 1597 O ARG B 2 54.701 87.412 34.329 1.00 20.77 O
+ATOM 1598 CB ARG B 2 52.938 89.913 34.774 1.00 32.62 C
+ATOM 1599 CG ARG B 2 52.247 90.788 33.732 1.00 37.00 C
+ATOM 1600 CD ARG B 2 50.750 91.002 33.987 1.00 39.40 C
+ATOM 1601 NE ARG B 2 50.110 91.674 32.852 1.00 45.26 N
+ATOM 1602 CZ ARG B 2 48.830 92.052 32.796 1.00 43.75 C
+ATOM 1603 NH1 ARG B 2 47.998 91.839 33.821 1.00 46.56 N
+ATOM 1604 NH2 ARG B 2 48.287 92.657 31.730 1.00 38.31 N
+ATOM 1605 N LEU B 3 53.154 87.253 32.671 1.00 20.24 N
+ATOM 1606 CA LEU B 3 53.957 86.385 31.774 1.00 16.52 C
+ATOM 1607 C LEU B 3 54.680 87.156 30.650 1.00 18.18 C
+ATOM 1608 O LEU B 3 54.230 88.217 30.195 1.00 19.10 O
+ATOM 1609 CB LEU B 3 53.047 85.356 31.102 1.00 16.15 C
+ATOM 1610 CG LEU B 3 52.039 84.721 32.065 1.00 19.50 C
+ATOM 1611 CD1 LEU B 3 51.282 83.547 31.437 1.00 14.28 C
+ATOM 1612 CD2 LEU B 3 52.692 84.170 33.335 1.00 15.93 C
+ATOM 1613 N LEU B 4 55.792 86.554 30.231 1.00 16.47 N
+ATOM 1614 CA LEU B 4 56.663 87.085 29.164 1.00 19.43 C
+ATOM 1615 C LEU B 4 56.831 86.065 28.033 1.00 23.19 C
+ATOM 1616 O LEU B 4 56.990 84.860 28.276 1.00 22.82 O
+ATOM 1617 CB LEU B 4 58.079 87.341 29.693 1.00 19.12 C
+ATOM 1618 CG LEU B 4 58.180 88.456 30.733 1.00 17.73 C
+ATOM 1619 CD1 LEU B 4 59.559 88.501 31.405 1.00 12.55 C
+ATOM 1620 CD2 LEU B 4 57.957 89.847 30.140 1.00 17.88 C
+ATOM 1621 N LEU B 5 56.802 86.577 26.816 1.00 24.60 N
+ATOM 1622 CA LEU B 5 56.996 85.756 25.610 1.00 28.12 C
+ATOM 1623 C LEU B 5 58.500 85.546 25.375 1.00 29.59 C
+ATOM 1624 O LEU B 5 59.340 86.110 26.084 1.00 25.36 O
+ATOM 1625 CB LEU B 5 56.427 86.462 24.374 1.00 28.78 C
+ATOM 1626 CG LEU B 5 54.953 86.856 24.493 1.00 34.00 C
+ATOM 1627 CD1 LEU B 5 54.418 87.505 23.212 1.00 39.31 C
+ATOM 1628 CD2 LEU B 5 54.035 85.668 24.776 1.00 35.03 C
+ATOM 1629 N THR B 6 58.789 84.739 24.375 1.00 36.94 N
+ATOM 1630 CA THR B 6 60.168 84.413 23.938 1.00 46.93 C
+ATOM 1631 C THR B 6 60.429 84.992 22.530 1.00 53.45 C
+ATOM 1632 O THR B 6 60.035 84.497 21.525 1.00 55.77 O
+ATOM 1633 CB THR B 6 60.274 82.890 23.673 1.00 47.77 C
+ATOM 1634 OG1 THR B 6 59.175 82.194 24.254 1.00 50.02 O
+ATOM 1635 CG2 THR B 6 61.554 82.237 24.171 1.00 47.99 C
+ATOM 1636 N GLY B 7 61.060 86.100 22.224 1.00 57.31 N
+ATOM 1637 CA GLY B 7 61.287 86.364 20.727 1.00 59.28 C
+ATOM 1638 C GLY B 7 62.799 86.350 20.621 1.00 61.25 C
+ATOM 1639 O GLY B 7 63.375 85.252 20.478 1.00 61.03 O
+ATOM 1640 OXT GLY B 7 62.159 83.147 19.227 1.00 65.40 O
--- /dev/null
+REMARK 1DKZ 1st domain with substrate ENERGY -3.32121E+02
+SHEET 1 B1 2 VAL 37 THR 40 0
+SHEET 2 B1 2 ASN 85 LEU 88 1 N ASN 85 O VAL 37
+SHEET 1 B2 2 ASP 5 THR 7 0
+SHEET 2 B2 2 THR 28 ILE 30 -1 N ILE 30 O ASP 5
+SHEET 1 B3 2 LEU 9 LEU 11 0
+SHEET 2 B3 2 ALA 25 ASN 27 -1 N ASN 27 O LEU 9
+SHEET 1 B4 2 SER 10 GLU 14 0
+SHEET 2 B4 2 HIS 51 GLY 55 -1 N GLY 55 O SER 10
+SHEET 1 B5 2 GLY 12 THR 15 0
+SHEET 2 B5 2 VAL 19 THR 22 -1 N THR 22 O GLY 12
+SHEET 1 B6 2 SER 46 HIS 51 0
+SHEET 2 B6 2 GLN 68 GLY 73 -1 N GLY 73 O SER 46
+ATOM 1 CA VAL A 1 -1.453 -1.710 -3.275 0.000
+ATOM 2 CB VAL A 1 -2.904 -1.873 -3.572 0.000
+ATOM 3 CA LEU A 2 -0.107 -2.245 -6.784 0.000
+ATOM 4 CB LEU A 2 1.932 -1.838 -6.677 0.000
+ATOM 5 CA LEU A 3 -3.268 -4.155 -7.656 0.000
+ATOM 6 CB LEU A 3 -3.198 -5.880 -8.109 0.000
+ATOM 7 CA LEU A 4 -5.271 -0.916 -7.604 0.000
+ATOM 8 CB LEU A 4 -5.656 1.061 -7.097 0.000
+ATOM 9 CA ASP A 5 -7.662 -2.034 -10.362 0.000
+ATOM 10 CB ASP A 5 -7.037 -3.950 -10.134 0.000
+ATOM 11 CA VAL A 6 -10.077 0.814 -9.307 0.000
+ATOM 12 CB VAL A 6 -9.960 2.239 -8.912 0.000
+ATOM 13 CA THR A 7 -13.459 0.219 -10.944 0.000
+ATOM 14 CB THR A 7 -14.046 -0.472 -9.773 0.000
+ATOM 15 CA PRO A 8 -15.282 3.599 -11.068 0.000
+ATOM 16 CB PRO A 8 -13.959 3.984 -11.417 0.000
+ATOM 17 CA LEU A 9 -18.745 4.063 -12.558 0.000
+ATOM 18 CB LEU A 9 -19.601 3.660 -14.415 0.000
+ATOM 19 CA SER A 10 -20.656 1.052 -11.302 0.000
+ATOM 20 CB SER A 10 -21.314 0.405 -12.234 0.000
+ATOM 21 CA LEU A 11 -17.815 -1.126 -12.705 0.000
+ATOM 22 CB LEU A 11 -16.385 0.030 -13.685 0.000
+ATOM 23 CA GLY A 12 -19.262 -4.650 -12.963 0.000
+ATOM 24 CA ILE A 13 -18.391 -8.425 -13.473 0.000
+ATOM 25 CB ILE A 13 -18.483 -9.591 -11.966 0.000
+ATOM 26 CA GLU A 14 -19.687 -8.923 -17.105 0.000
+ATOM 27 CB GLU A 14 -18.340 -10.472 -18.983 0.000
+ATOM 28 CA THR A 15 -20.450 -12.604 -16.684 0.000
+ATOM 29 CB THR A 15 -20.554 -12.534 -15.219 0.000
+ATOM 30 CA MET A 16 -23.404 -14.645 -17.910 0.000
+ATOM 31 CB MET A 16 -24.566 -16.674 -17.032 0.000
+ATOM 32 CA GLY A 17 -21.668 -14.295 -21.258 0.000
+ATOM 33 CA GLY A 18 -22.155 -10.509 -20.998 0.000
+ATOM 34 CA VAL A 19 -25.091 -10.548 -18.438 0.000
+ATOM 35 CB VAL A 19 -25.950 -11.732 -18.703 0.000
+ATOM 36 CA MET A 20 -23.745 -8.842 -15.255 0.000
+ATOM 37 CB MET A 20 -22.472 -6.734 -15.609 0.000
+ATOM 38 CA THR A 21 -22.686 -8.793 -11.555 0.000
+ATOM 39 CB THR A 21 -22.618 -10.148 -10.972 0.000
+ATOM 40 CA THR A 22 -21.077 -6.212 -9.188 0.000
+ATOM 41 CB THR A 22 -21.516 -4.876 -8.740 0.000
+ATOM 42 CA LEU A 23 -17.760 -7.660 -7.965 0.000
+ATOM 43 CB LEU A 23 -16.625 -9.139 -7.023 0.000
+ATOM 44 CA ILE A 24 -15.657 -4.736 -9.079 0.000
+ATOM 45 CB ILE A 24 -15.527 -4.499 -10.963 0.000
+ATOM 46 CA ALA A 25 -18.036 -2.240 -7.442 0.000
+ATOM 47 CB ALA A 25 -18.289 -2.455 -6.742 0.000
+ATOM 48 CA LYS A 26 -19.778 1.149 -7.325 0.000
+ATOM 49 CB LYS A 26 -22.728 0.437 -7.805 0.000
+ATOM 50 CA ASN A 27 -16.671 3.274 -6.958 0.000
+ATOM 51 CB ASN A 27 -15.548 4.883 -7.380 0.000
+ATOM 52 CA THR A 28 -14.496 0.454 -5.530 0.000
+ATOM 53 CB THR A 28 -15.474 -0.131 -4.589 0.000
+ATOM 54 CA THR A 29 -11.322 -1.538 -6.081 0.000
+ATOM 55 CB THR A 29 -10.022 -1.223 -5.448 0.000
+ATOM 56 CA ILE A 30 -11.172 -4.710 -8.240 0.000
+ATOM 57 CB ILE A 30 -11.150 -4.404 -10.140 0.000
+ATOM 58 CA PRO A 31 -8.842 -5.660 -5.216 0.000
+ATOM 59 CB PRO A 31 -7.851 -4.814 -5.790 0.000
+ATOM 60 CA THR A 32 -12.097 -5.207 -3.198 0.000
+ATOM 61 CB THR A 32 -13.172 -4.531 -3.964 0.000
+ATOM 62 CA LYS A 33 -13.053 -8.439 -5.081 0.000
+ATOM 63 CB LYS A 33 -10.875 -8.766 -7.235 0.000
+ATOM 64 CA HIS A 34 -16.226 -8.899 -2.914 0.000
+ATOM 65 CB HIS A 34 -17.141 -6.324 -3.062 0.000
+ATOM 66 CA SER A 35 -18.237 -11.906 -4.123 0.000
+ATOM 67 CB SER A 35 -18.134 -13.087 -4.686 0.000
+ATOM 68 CA GLN A 36 -21.198 -11.226 -1.735 0.000
+ATOM 69 CB GLN A 36 -20.795 -8.511 -2.143 0.000
+ATOM 70 CA VAL A 37 -22.758 -14.350 -3.187 0.000
+ATOM 71 CB VAL A 37 -23.605 -15.558 -3.005 0.000
+ATOM 72 CA PHE A 38 -21.893 -13.501 -6.816 0.000
+ATOM 73 CB PHE A 38 -21.412 -10.578 -6.429 0.000
+ATOM 74 CA SER A 39 -22.390 -17.177 -7.720 0.000
+ATOM 75 CB SER A 39 -23.505 -17.837 -7.527 0.000
+ATOM 76 CA THR A 40 -21.045 -19.809 -10.081 0.000
+ATOM 77 CB THR A 40 -20.723 -21.059 -9.363 0.000
+ATOM 78 CA ALA A 41 -23.574 -20.063 -12.895 0.000
+ATOM 79 CB ALA A 41 -23.498 -19.324 -13.132 0.000
+ATOM 80 CA GLU A 42 -23.421 -23.316 -14.816 0.000
+ATOM 81 CB GLU A 42 -23.169 -22.004 -16.482 0.000
+ATOM 82 CA ASP A 43 -24.155 -26.995 -14.326 0.000
+ATOM 83 CB ASP A 43 -25.390 -28.601 -14.445 0.000
+ATOM 84 CA ASN A 44 -21.288 -27.257 -11.865 0.000
+ATOM 85 CB ASN A 44 -19.958 -28.582 -12.574 0.000
+ATOM 86 CA GLN A 45 -19.028 -24.534 -13.403 0.000
+ATOM 87 CB GLN A 45 -19.696 -21.842 -13.289 0.000
+ATOM 88 CA SER A 46 -17.011 -23.508 -10.334 0.000
+ATOM 89 CB SER A 46 -16.822 -23.597 -9.041 0.000
+ATOM 90 CA ALA A 47 -14.161 -22.148 -12.477 0.000
+ATOM 91 CB ALA A 47 -14.222 -22.407 -13.206 0.000
+ATOM 92 CA VAL A 48 -16.358 -19.032 -12.966 0.000
+ATOM 93 CB VAL A 48 -16.826 -18.904 -11.565 0.000
+ATOM 94 CA SER A 49 -14.833 -17.081 -15.949 0.000
+ATOM 95 CB SER A 49 -15.138 -17.536 -17.139 0.000
+ATOM 96 CA ILE A 50 -16.196 -13.533 -16.524 0.000
+ATOM 97 CB ILE A 50 -16.393 -13.508 -14.896 0.000
+ATOM 98 CA HIS A 51 -15.259 -10.067 -17.944 0.000
+ATOM 99 CB HIS A 51 -14.140 -8.537 -19.915 0.000
+ATOM 100 CA VAL A 52 -14.566 -7.213 -15.436 0.000
+ATOM 101 CB VAL A 52 -13.101 -7.162 -15.152 0.000
+ATOM 102 CA LEU A 53 -16.880 -4.450 -16.967 0.000
+ATOM 103 CB LEU A 53 -18.061 -5.511 -18.314 0.000
+ATOM 104 CA GLN A 54 -17.660 -0.720 -17.313 0.000
+ATOM 105 CB GLN A 54 -17.092 1.929 -17.917 0.000
+ATOM 106 CA GLY A 55 -21.381 -0.616 -16.418 0.000
+ATOM 107 CA GLU A 56 -23.697 -2.941 -14.427 0.000
+ATOM 108 CB GLU A 56 -24.024 -3.885 -12.551 0.000
+ATOM 109 CA ARG A 57 -26.365 -4.272 -16.832 0.000
+ATOM 110 CB ARG A 57 -24.498 -2.067 -18.680 0.000
+ATOM 111 CA LYS A 58 -27.970 -7.094 -18.812 0.000
+ATOM 112 CB LYS A 58 -28.763 -8.962 -17.025 0.000
+ATOM 113 CA ARG A 59 -26.085 -6.142 -21.980 0.000
+ATOM 114 CB ARG A 59 -27.098 -4.531 -24.830 0.000
+ATOM 115 CA ALA A 60 -22.946 -5.294 -19.961 0.000
+ATOM 116 CB ALA A 60 -22.942 -6.026 -19.693 0.000
+ATOM 117 CA ALA A 61 -21.096 -6.516 -23.015 0.000
+ATOM 118 CB ALA A 61 -20.822 -7.204 -23.250 0.000
+ATOM 119 CA ASP A 62 -22.413 -3.298 -24.631 0.000
+ATOM 120 CB ASP A 62 -23.736 -2.987 -23.122 0.000
+ATOM 121 CA ASN A 63 -20.130 -1.329 -22.308 0.000
+ATOM 122 CB ASN A 63 -20.501 -2.163 -20.519 0.000
+ATOM 123 CA LYS A 64 -16.399 -1.126 -21.591 0.000
+ATOM 124 CB LYS A 64 -14.327 0.039 -20.297 0.000
+ATOM 125 CA SER A 65 -15.504 -4.847 -21.005 0.000
+ATOM 126 CB SER A 65 -15.876 -5.228 -22.203 0.000
+ATOM 127 CA LEU A 66 -12.126 -4.616 -19.183 0.000
+ATOM 128 CB LEU A 66 -12.711 -3.350 -17.630 0.000
+ATOM 129 CA GLY A 67 -10.371 -7.975 -18.688 0.000
+ATOM 130 CA GLN A 68 -11.098 -11.227 -16.806 0.000
+ATOM 131 CB GLN A 68 -11.795 -13.905 -17.010 0.000
+ATOM 132 CA PHE A 69 -12.783 -12.134 -13.477 0.000
+ATOM 133 CB PHE A 69 -13.267 -9.980 -11.459 0.000
+ATOM 134 CA ASN A 70 -11.735 -15.827 -13.363 0.000
+ATOM 135 CB ASN A 70 -10.770 -17.575 -13.517 0.000
+ATOM 136 CA LEU A 71 -13.694 -16.622 -10.146 0.000
+ATOM 137 CB LEU A 71 -14.731 -15.230 -8.982 0.000
+ATOM 138 CA ASP A 72 -12.151 -20.050 -9.315 0.000
+ATOM 139 CB ASP A 72 -10.253 -19.574 -9.845 0.000
+ATOM 140 CA GLY A 73 -14.470 -20.732 -6.339 0.000
+ATOM 141 CA ILE A 74 -18.265 -20.688 -5.620 0.000
+ATOM 142 CB ILE A 74 -19.069 -18.955 -5.565 0.000
+ATOM 143 CA ASN A 75 -20.642 -23.661 -5.571 0.000
+ATOM 144 CB ASN A 75 -20.174 -24.194 -3.695 0.000
+ATOM 145 CA PRO A 76 -22.944 -24.799 -8.392 0.000
+ATOM 146 CB PRO A 76 -22.699 -25.996 -7.666 0.000
+ATOM 147 CA ALA A 77 -26.095 -22.868 -9.184 0.000
+ATOM 148 CB ALA A 77 -25.839 -22.134 -9.095 0.000
+ATOM 149 CA PRO A 78 -28.813 -22.490 -11.812 0.000
+ATOM 150 CB PRO A 78 -29.557 -23.176 -10.813 0.000
+ATOM 151 CA ARG A 79 -27.722 -18.929 -12.407 0.000
+ATOM 152 CB ARG A 79 -28.049 -16.171 -14.385 0.000
+ATOM 153 CA GLY A 80 -27.848 -18.193 -8.638 0.000
+ATOM 154 CA MET A 81 -26.917 -19.675 -5.247 0.000
+ATOM 155 CB MET A 81 -28.120 -21.363 -5.688 0.000
+ATOM 156 CA PRO A 82 -23.544 -20.636 -3.689 0.000
+ATOM 157 CB PRO A 82 -23.406 -21.224 -4.976 0.000
+ATOM 158 CA GLN A 83 -20.719 -18.825 -1.892 0.000
+ATOM 159 CB GLN A 83 -19.546 -16.326 -1.595 0.000
+TER
+ATOM 160 CA ASN B 1 -27.604 -13.231 -5.657 0.000
+ATOM 161 CB ASN B 1 -29.388 -12.377 -5.991 0.000
+ATOM 162 CA ARG B 2 -25.919 -12.951 -9.077 0.000
+ATOM 163 CB ARG B 2 -26.217 -10.466 -11.431 0.000
+ATOM 164 CA LEU B 3 -24.068 -15.184 -11.618 0.000
+ATOM 165 CB LEU B 3 -24.504 -13.935 -13.223 0.000
+ATOM 166 CA LEU B 4 -20.316 -15.681 -12.429 0.000
+ATOM 167 CB LEU B 4 -19.867 -15.354 -10.418 0.000
+ATOM 168 CA LEU B 5 -20.397 -17.985 -15.523 0.000
+ATOM 169 CB LEU B 5 -19.741 -16.763 -17.079 0.000
+ATOM 170 CA THR B 6 -18.507 -20.799 -17.405 0.000
+ATOM 171 CB THR B 6 -19.135 -22.129 -17.204 0.000
+ATOM 172 CA GLY B 7 -17.462 -18.963 -20.609 0.000
+TER
+CONECT 1 3 2
+CONECT 3 5 4
+CONECT 5 7 6
+CONECT 7 9 8
+CONECT 9 11 10
+CONECT 11 13 12
+CONECT 13 15 14
+CONECT 15 17 16
+CONECT 17 19 18
+CONECT 19 21 20
+CONECT 21 23 22
+CONECT 23 24
+CONECT 24 26 25
+CONECT 26 28 27
+CONECT 28 30 29
+CONECT 30 32 31
+CONECT 32 33
+CONECT 33 34
+CONECT 34 36 35
+CONECT 36 38 37
+CONECT 38 40 39
+CONECT 40 42 41
+CONECT 42 44 43
+CONECT 44 46 45
+CONECT 46 48 47
+CONECT 48 50 49
+CONECT 50 52 51
+CONECT 52 54 53
+CONECT 54 56 55
+CONECT 56 58 57
+CONECT 58 60 59
+CONECT 60 62 61
+CONECT 62 64 63
+CONECT 64 66 65
+CONECT 66 68 67
+CONECT 68 70 69
+CONECT 70 72 71
+CONECT 72 74 73
+CONECT 74 76 75
+CONECT 76 78 77
+CONECT 78 80 79
+CONECT 80 82 81
+CONECT 82 84 83
+CONECT 84 86 85
+CONECT 86 88 87
+CONECT 88 90 89
+CONECT 90 92 91
+CONECT 92 94 93
+CONECT 94 96 95
+CONECT 96 98 97
+CONECT 98 100 99
+CONECT 100 102 101
+CONECT 102 104 103
+CONECT 104 106 105
+CONECT 106 107
+CONECT 107 109 108
+CONECT 109 111 110
+CONECT 111 113 112
+CONECT 113 115 114
+CONECT 115 117 116
+CONECT 117 119 118
+CONECT 119 121 120
+CONECT 121 123 122
+CONECT 123 125 124
+CONECT 125 127 126
+CONECT 127 129 128
+CONECT 129 130
+CONECT 130 132 131
+CONECT 132 134 133
+CONECT 134 136 135
+CONECT 136 138 137
+CONECT 138 140 139
+CONECT 140 141
+CONECT 141 143 142
+CONECT 143 145 144
+CONECT 145 147 146
+CONECT 147 149 148
+CONECT 149 151 150
+CONECT 151 153 152
+CONECT 153 154
+CONECT 154 156 155
+CONECT 156 158 157
+CONECT 158 159
+CONECT 160 162 161
+CONECT 162 164 163
+CONECT 164 166 165
+CONECT 166 168 167
+CONECT 168 170 169
+CONECT 170 172 171
+ENDMDL
--- /dev/null
+HEADER CELL CYCLE 23-FEB-00 1EI0
+TITLE NMR STRUCTURE OF THE ALPHA-HELICAL HAIRPIN OF P8MTCP1
+COMPND MOL_ID: 1;
+COMPND 2 MOLECULE: P8MTCP1;
+COMPND 3 CHAIN: A;
+COMPND 4 FRAGMENT: ALPHA-HELICAL HAIRPIN MOTIF OF P8MTCP1;
+COMPND 5 SYNONYM: MATURE T-CELL PROLIFERATION-1 TYPE A;
+COMPND 6 ENGINEERED: YES
+SOURCE MOL_ID: 1;
+SOURCE 2 SYNTHETIC: YES;
+SOURCE 3 OTHER_DETAILS: THE SEQUENCE IS FOUND NATURALLY IN HOMO
+SOURCE 4 SAPIENS (HUMANS).
+KEYWDS HELIX-TURN-HELIX, DISULFIDE BRIDGES
+EXPDTA NMR, MINIMIZED AVERAGE STRUCTURE
+AUTHOR P.BARTHE,S.ROCHETTE,C.VITA,C.ROUMESTAND
+REVDAT 1 23-FEB-01 1EI0 0
+JRNL AUTH P.BARTHE,S.ROCHETTE,C.VITA,C.ROUMESTAND
+JRNL TITL SYNTHESIS AND NMR SOLUTION STRUCTURE OF AN
+JRNL TITL 2 ALPHA-HELICAL HAIRPIN STAPLED WITH TWO DISULFIDE
+JRNL TITL 3 BRIDGES.
+JRNL REF PROTEIN SCI. V. 9 942 2000
+JRNL REFN ASTM PRCIEI US ISSN 0961-8368
+REMARK 1
+REMARK 2
+REMARK 2 RESOLUTION. NOT APPLICABLE.
+REMARK 3
+REMARK 3 REFINEMENT.
+REMARK 3 PROGRAM : AMBER 4.1
+REMARK 3 AUTHORS : PEARLMAN
+REMARK 3
+REMARK 3 OTHER REFINEMENT REMARKS: THE STRUCTURES ARE BASED ON A
+REMARK 3 TOTAL OF 322 RESTRAINTS, 285 ARE NOE-DERIVED DISTANCE
+REMARK 3 CONSTRAINTS, 29 DIHEDRAL ANGLE RESTRAINTS, NO DISTANCE
+REMARK 3 RESTRAINTS FROM HYDROGEN BONDS.
+REMARK 4
+REMARK 4 1EI0 COMPLIES WITH FORMAT V. 2.3, 09-JULY-1998
+REMARK 100
+REMARK 100 THIS ENTRY HAS BEEN PROCESSED BY RCSB ON 25-FEB-2000.
+REMARK 100 THE RCSB ID CODE IS RCSB010592.
+REMARK 210
+REMARK 210 EXPERIMENTAL DETAILS
+REMARK 210 EXPERIMENT TYPE : NMR
+REMARK 210 TEMPERATURE (KELVIN) : 293.00
+REMARK 210 PH : 5.50
+REMARK 210 IONIC STRENGTH : 0
+REMARK 210 PRESSURE : AMBIENT
+REMARK 210 SAMPLE CONTENTS : 2MM ALPHA2-P8
+REMARK 210
+REMARK 210 NMR EXPERIMENTS CONDUCTED : 2D NOESY
+REMARK 210 SPECTROMETER FIELD STRENGTH : 600 MHZ
+REMARK 210 SPECTROMETER MODEL : AMX
+REMARK 210 SPECTROMETER MANUFACTURER : BRUKER
+REMARK 210
+REMARK 210 STRUCTURE DETERMINATION.
+REMARK 210 SOFTWARE USED : UXNMR 94, GIFA 4.2,
+REMARK 210 DIANA 2.1
+REMARK 210 METHOD USED : DISTANCE GEOMETRY,
+REMARK 210 MOLECULAR DYNAMICS
+REMARK 210
+REMARK 210 CONFORMERS, NUMBER CALCULATED : NULL
+REMARK 210 CONFORMERS, NUMBER SUBMITTED : NULL
+REMARK 210 CONFORMERS, SELECTION CRITERIA : NULL
+REMARK 210
+REMARK 210 BEST REPRESENTATIVE CONFORMER IN THIS ENSEMBLE : NULL
+REMARK 210
+REMARK 210 REMARK: THIS STRUCTURE WAS DETERMINED USING STANDARD 2D
+REMARK 210 HOMONUCLEAR TECHNIQUES.
+REMARK 215
+REMARK 215 NMR STUDY
+REMARK 215 THE COORDINATES IN THIS ENTRY WERE GENERATED FROM SOLUTION
+REMARK 215 NMR DATA. PROTEIN DATA BANK CONVENTIONS REQUIRE THAT
+REMARK 215 CRYST1 AND SCALE RECORDS BE INCLUDED, BUT THE VALUES ON
+REMARK 215 THESE RECORDS ARE MEANINGLESS.
+REMARK 900
+REMARK 900 RELATED ENTRIES
+REMARK 900 RELATED ID: 1HP8 RELATED DB: PDB
+REMARK 900 AVERAGE NMR STRUCTURE OF P8MTCP1
+REMARK 900 RELATED ID: 2HP8 RELATED DB: PDB
+REMARK 900 30 BEST NMR STRUCTURES OF P8MTCP1
+REMARK 999
+REMARK 999 SEQUENCE
+REMARK 999 THE 4 MUTATIONS ARE DUE TO SYNTHESIS PROCEDURES.
+DBREF 1EI0 A 1 38 SWS P56277 MTC1_HUMAN 5 42
+SEQADV 1EI0 ALA A 8 SWS P56277 CYS 12 SEE REMARK 999
+SEQADV 1EI0 LEU A 20 SWS P56277 MET 24 SEE REMARK 999
+SEQADV 1EI0 LYS A 32 SWS P56277 ARG 36 SEE REMARK 999
+SEQADV 1EI0 ALA A 35 SWS P56277 CYS 39 SEE REMARK 999
+SEQRES 1 A 38 ASP PRO CYS GLN LYS GLN ALA ALA GLU ILE GLN LYS CYS
+SEQRES 2 A 38 LEU GLN ALA ASN SER TYR LEU GLU SER LYS CYS GLN ALA
+SEQRES 3 A 38 VAL ILE GLN GLU LEU LYS LYS CYS ALA ALA GLN TYR
+HELIX 1 1 CYS A 3 ASN A 17 1 15
+HELIX 2 2 LEU A 20 LYS A 23 5 4
+HELIX 3 3 CYS A 24 TYR A 38 1 15
+SSBOND 1 CYS A 3 CYS A 34
+SSBOND 2 CYS A 13 CYS A 24
+CRYST1 1.000 1.000 1.000 90.00 90.00 90.00 P 1 1
+ORIGX1 1.000000 0.000000 0.000000 0.00000
+ORIGX2 0.000000 1.000000 0.000000 0.00000
+ORIGX3 0.000000 0.000000 1.000000 0.00000
+SCALE1 1.000000 0.000000 0.000000 0.00000
+SCALE2 0.000000 1.000000 0.000000 0.00000
+SCALE3 0.000000 0.000000 1.000000 0.00000
+ATOM 1 N ASP A 1 6.608 13.604 0.992 1.00 0.00 N
+ATOM 2 CA ASP A 1 5.940 13.464 -0.292 1.00 0.00 C
+ATOM 3 C ASP A 1 4.484 13.008 -0.040 1.00 0.00 C
+ATOM 4 O ASP A 1 4.148 12.816 1.128 1.00 0.00 O
+ATOM 5 CB ASP A 1 6.784 12.556 -1.212 1.00 0.00 C
+ATOM 6 CG ASP A 1 6.704 11.044 -0.956 1.00 0.00 C
+ATOM 7 OD1 ASP A 1 7.788 10.412 -0.976 1.00 0.00 O
+ATOM 8 OD2 ASP A 1 5.580 10.500 -0.848 1.00 0.00 O
+ATOM 9 H ASP A 1 5.952 13.416 1.748 1.00 0.00 H
+ATOM 10 HA ASP A 1 5.904 14.456 -0.740 1.00 0.00 H
+ATOM 11 1HB ASP A 1 6.508 12.732 -2.248 1.00 0.00 H
+ATOM 12 2HB ASP A 1 7.828 12.864 -1.124 1.00 0.00 H
+ATOM 13 N PRO A 2 3.620 12.868 -1.072 1.00 0.00 N
+ATOM 14 CA PRO A 2 2.256 12.356 -0.936 1.00 0.00 C
+ATOM 15 C PRO A 2 2.176 11.032 -0.164 1.00 0.00 C
+ATOM 16 O PRO A 2 1.832 11.036 1.016 1.00 0.00 O
+ATOM 17 CB PRO A 2 1.692 12.280 -2.372 1.00 0.00 C
+ATOM 18 CG PRO A 2 2.504 13.328 -3.120 1.00 0.00 C
+ATOM 19 CD PRO A 2 3.876 13.212 -2.460 1.00 0.00 C
+ATOM 20 HA PRO A 2 1.636 13.076 -0.400 1.00 0.00 H
+ATOM 21 1HB PRO A 2 1.876 11.308 -2.832 1.00 0.00 H
+ATOM 22 2HB PRO A 2 0.628 12.504 -2.396 1.00 0.00 H
+ATOM 23 1HG PRO A 2 2.552 13.116 -4.188 1.00 0.00 H
+ATOM 24 2HG PRO A 2 2.092 14.320 -2.940 1.00 0.00 H
+ATOM 25 1HD PRO A 2 4.428 12.396 -2.936 1.00 0.00 H
+ATOM 26 2HD PRO A 2 4.420 14.148 -2.556 1.00 0.00 H
+ATOM 27 N CYS A 3 2.452 9.896 -0.824 1.00 0.00 N
+ATOM 28 CA CYS A 3 2.116 8.568 -0.308 1.00 0.00 C
+ATOM 29 C CYS A 3 3.120 7.480 -0.708 1.00 0.00 C
+ATOM 30 O CYS A 3 2.744 6.308 -0.804 1.00 0.00 O
+ATOM 31 CB CYS A 3 0.708 8.204 -0.792 1.00 0.00 C
+ATOM 32 SG CYS A 3 -0.540 9.516 -0.716 1.00 0.00 S
+ATOM 33 H CYS A 3 2.764 9.964 -1.780 1.00 0.00 H
+ATOM 34 HA CYS A 3 2.088 8.600 0.776 1.00 0.00 H
+ATOM 35 1HB CYS A 3 0.772 7.856 -1.820 1.00 0.00 H
+ATOM 36 2HB CYS A 3 0.360 7.384 -0.160 1.00 0.00 H
+ATOM 37 N GLN A 4 4.380 7.832 -0.980 1.00 0.00 N
+ATOM 38 CA GLN A 4 5.376 6.840 -1.396 1.00 0.00 C
+ATOM 39 C GLN A 4 5.576 5.760 -0.316 1.00 0.00 C
+ATOM 40 O GLN A 4 5.764 4.596 -0.664 1.00 0.00 O
+ATOM 41 CB GLN A 4 6.696 7.536 -1.748 1.00 0.00 C
+ATOM 42 CG GLN A 4 7.684 6.600 -2.460 1.00 0.00 C
+ATOM 43 CD GLN A 4 9.016 7.252 -2.856 1.00 0.00 C
+ATOM 44 OE1 GLN A 4 9.844 6.612 -3.492 1.00 0.00 O
+ATOM 45 NE2 GLN A 4 9.280 8.508 -2.508 1.00 0.00 N
+ATOM 46 H GLN A 4 4.668 8.804 -0.892 1.00 0.00 H
+ATOM 47 HA GLN A 4 5.000 6.352 -2.296 1.00 0.00 H
+ATOM 48 1HB GLN A 4 6.480 8.376 -2.412 1.00 0.00 H
+ATOM 49 2HB GLN A 4 7.152 7.908 -0.828 1.00 0.00 H
+ATOM 50 1HG GLN A 4 7.908 5.752 -1.816 1.00 0.00 H
+ATOM 51 2HG GLN A 4 7.212 6.220 -3.368 1.00 0.00 H
+ATOM 52 1HE2 GLN A 4 10.176 8.864 -2.796 1.00 0.00 H
+ATOM 53 2HE2 GLN A 4 8.648 9.088 -1.956 1.00 0.00 H
+ATOM 54 N LYS A 5 5.472 6.116 0.972 1.00 0.00 N
+ATOM 55 CA LYS A 5 5.468 5.148 2.068 1.00 0.00 C
+ATOM 56 C LYS A 5 4.340 4.148 1.888 1.00 0.00 C
+ATOM 57 O LYS A 5 4.592 2.952 1.932 1.00 0.00 O
+ATOM 58 CB LYS A 5 5.344 5.836 3.436 1.00 0.00 C
+ATOM 59 CG LYS A 5 6.712 6.016 4.116 1.00 0.00 C
+ATOM 60 CD LYS A 5 7.036 7.480 4.420 1.00 0.00 C
+ATOM 61 CE LYS A 5 6.264 8.016 5.628 1.00 0.00 C
+ATOM 62 NZ LYS A 5 5.060 8.772 5.236 1.00 0.00 N
+ATOM 63 H LYS A 5 5.300 7.088 1.184 1.00 0.00 H
+ATOM 64 HA LYS A 5 6.392 4.568 2.020 1.00 0.00 H
+ATOM 65 1HB LYS A 5 4.828 6.792 3.320 1.00 0.00 H
+ATOM 66 2HB LYS A 5 4.732 5.220 4.096 1.00 0.00 H
+ATOM 67 1HG LYS A 5 6.728 5.440 5.044 1.00 0.00 H
+ATOM 68 2HG LYS A 5 7.504 5.624 3.484 1.00 0.00 H
+ATOM 69 1HD LYS A 5 8.100 7.536 4.652 1.00 0.00 H
+ATOM 70 2HD LYS A 5 6.836 8.080 3.532 1.00 0.00 H
+ATOM 71 1HE LYS A 5 5.980 7.184 6.276 1.00 0.00 H
+ATOM 72 2HE LYS A 5 6.920 8.680 6.192 1.00 0.00 H
+ATOM 73 1HZ LYS A 5 5.328 9.560 4.668 1.00 0.00 H
+ATOM 74 2HZ LYS A 5 4.436 8.176 4.712 1.00 0.00 H
+ATOM 75 3HZ LYS A 5 4.584 9.104 6.060 1.00 0.00 H
+ATOM 76 N GLN A 6 3.112 4.620 1.676 1.00 0.00 N
+ATOM 77 CA GLN A 6 1.976 3.744 1.448 1.00 0.00 C
+ATOM 78 C GLN A 6 2.232 2.868 0.228 1.00 0.00 C
+ATOM 79 O GLN A 6 2.004 1.672 0.316 1.00 0.00 O
+ATOM 80 CB GLN A 6 0.648 4.496 1.272 1.00 0.00 C
+ATOM 81 CG GLN A 6 0.144 5.176 2.552 1.00 0.00 C
+ATOM 82 CD GLN A 6 0.724 6.564 2.820 1.00 0.00 C
+ATOM 83 OE1 GLN A 6 1.836 6.904 2.432 1.00 0.00 O
+ATOM 84 NE2 GLN A 6 -0.040 7.404 3.500 1.00 0.00 N
+ATOM 85 H GLN A 6 2.964 5.628 1.700 1.00 0.00 H
+ATOM 86 HA GLN A 6 1.880 3.080 2.308 1.00 0.00 H
+ATOM 87 1HB GLN A 6 0.712 5.208 0.452 1.00 0.00 H
+ATOM 88 2HB GLN A 6 -0.100 3.752 1.000 1.00 0.00 H
+ATOM 89 1HG GLN A 6 -0.936 5.280 2.440 1.00 0.00 H
+ATOM 90 2HG GLN A 6 0.328 4.532 3.412 1.00 0.00 H
+ATOM 91 1HE2 GLN A 6 0.276 8.356 3.596 1.00 0.00 H
+ATOM 92 2HE2 GLN A 6 -0.944 7.088 3.848 1.00 0.00 H
+ATOM 93 N ALA A 7 2.728 3.428 -0.880 1.00 0.00 N
+ATOM 94 CA ALA A 7 3.024 2.640 -2.080 1.00 0.00 C
+ATOM 95 C ALA A 7 4.036 1.528 -1.768 1.00 0.00 C
+ATOM 96 O ALA A 7 3.820 0.372 -2.136 1.00 0.00 O
+ATOM 97 CB ALA A 7 3.520 3.560 -3.200 1.00 0.00 C
+ATOM 98 H ALA A 7 2.908 4.432 -0.872 1.00 0.00 H
+ATOM 99 HA ALA A 7 2.100 2.168 -2.412 1.00 0.00 H
+ATOM 100 1HB ALA A 7 2.776 4.332 -3.400 1.00 0.00 H
+ATOM 101 2HB ALA A 7 4.464 4.028 -2.920 1.00 0.00 H
+ATOM 102 3HB ALA A 7 3.672 2.972 -4.108 1.00 0.00 H
+ATOM 103 N ALA A 8 5.116 1.868 -1.056 1.00 0.00 N
+ATOM 104 CA ALA A 8 6.124 0.916 -0.612 1.00 0.00 C
+ATOM 105 C ALA A 8 5.520 -0.128 0.328 1.00 0.00 C
+ATOM 106 O ALA A 8 5.764 -1.316 0.148 1.00 0.00 O
+ATOM 107 CB ALA A 8 7.288 1.656 0.052 1.00 0.00 C
+ATOM 108 H ALA A 8 5.236 2.848 -0.800 1.00 0.00 H
+ATOM 109 HA ALA A 8 6.508 0.396 -1.492 1.00 0.00 H
+ATOM 110 1HB ALA A 8 7.720 2.372 -0.648 1.00 0.00 H
+ATOM 111 2HB ALA A 8 6.944 2.188 0.940 1.00 0.00 H
+ATOM 112 3HB ALA A 8 8.056 0.940 0.344 1.00 0.00 H
+ATOM 113 N GLU A 9 4.720 0.280 1.316 1.00 0.00 N
+ATOM 114 CA GLU A 9 4.080 -0.620 2.264 1.00 0.00 C
+ATOM 115 C GLU A 9 3.008 -1.488 1.600 1.00 0.00 C
+ATOM 116 O GLU A 9 2.816 -2.620 2.020 1.00 0.00 O
+ATOM 117 CB GLU A 9 3.504 0.164 3.452 1.00 0.00 C
+ATOM 118 CG GLU A 9 4.616 0.676 4.376 1.00 0.00 C
+ATOM 119 CD GLU A 9 4.052 1.464 5.552 1.00 0.00 C
+ATOM 120 OE1 GLU A 9 4.304 2.688 5.600 1.00 0.00 O
+ATOM 121 OE2 GLU A 9 3.380 0.828 6.392 1.00 0.00 O
+ATOM 122 H GLU A 9 4.584 1.280 1.432 1.00 0.00 H
+ATOM 123 HA GLU A 9 4.836 -1.300 2.656 1.00 0.00 H
+ATOM 124 1HB GLU A 9 2.900 0.996 3.088 1.00 0.00 H
+ATOM 125 2HB GLU A 9 2.856 -0.500 4.028 1.00 0.00 H
+ATOM 126 1HG GLU A 9 5.184 -0.172 4.756 1.00 0.00 H
+ATOM 127 2HG GLU A 9 5.304 1.308 3.816 1.00 0.00 H
+ATOM 128 N ILE A 10 2.344 -1.000 0.544 1.00 0.00 N
+ATOM 129 CA ILE A 10 1.428 -1.776 -0.288 1.00 0.00 C
+ATOM 130 C ILE A 10 2.224 -2.868 -0.996 1.00 0.00 C
+ATOM 131 O ILE A 10 1.828 -4.032 -0.920 1.00 0.00 O
+ATOM 132 CB ILE A 10 0.636 -0.856 -1.240 1.00 0.00 C
+ATOM 133 CG1 ILE A 10 -0.444 -0.184 -0.376 1.00 0.00 C
+ATOM 134 CG2 ILE A 10 -0.036 -1.612 -2.400 1.00 0.00 C
+ATOM 135 CD1 ILE A 10 -0.980 1.100 -0.968 1.00 0.00 C
+ATOM 136 H ILE A 10 2.488 -0.024 0.300 1.00 0.00 H
+ATOM 137 HA ILE A 10 0.684 -2.232 0.368 1.00 0.00 H
+ATOM 138 HB ILE A 10 1.304 -0.100 -1.656 1.00 0.00 H
+ATOM 139 1HG1 ILE A 10 -1.268 -0.876 -0.216 1.00 0.00 H
+ATOM 140 2HG1 ILE A 10 -0.032 0.080 0.596 1.00 0.00 H
+ATOM 141 1HG2 ILE A 10 0.720 -2.056 -3.048 1.00 0.00 H
+ATOM 142 2HG2 ILE A 10 -0.688 -2.396 -2.016 1.00 0.00 H
+ATOM 143 3HG2 ILE A 10 -0.624 -0.924 -3.008 1.00 0.00 H
+ATOM 144 1HD1 ILE A 10 -0.184 1.836 -1.064 1.00 0.00 H
+ATOM 145 2HD1 ILE A 10 -1.440 0.896 -1.928 1.00 0.00 H
+ATOM 146 3HD1 ILE A 10 -1.724 1.484 -0.276 1.00 0.00 H
+ATOM 147 N GLN A 11 3.356 -2.520 -1.628 1.00 0.00 N
+ATOM 148 CA GLN A 11 4.272 -3.504 -2.212 1.00 0.00 C
+ATOM 149 C GLN A 11 4.692 -4.524 -1.152 1.00 0.00 C
+ATOM 150 O GLN A 11 4.560 -5.720 -1.376 1.00 0.00 O
+ATOM 151 CB GLN A 11 5.528 -2.844 -2.820 1.00 0.00 C
+ATOM 152 CG GLN A 11 5.340 -2.256 -4.228 1.00 0.00 C
+ATOM 153 CD GLN A 11 5.100 -3.304 -5.316 1.00 0.00 C
+ATOM 154 OE1 GLN A 11 5.012 -4.504 -5.072 1.00 0.00 O
+ATOM 155 NE2 GLN A 11 4.996 -2.872 -6.564 1.00 0.00 N
+ATOM 156 H GLN A 11 3.616 -1.536 -1.644 1.00 0.00 H
+ATOM 157 HA GLN A 11 3.740 -4.048 -2.988 1.00 0.00 H
+ATOM 158 1HB GLN A 11 5.876 -2.044 -2.172 1.00 0.00 H
+ATOM 159 2HB GLN A 11 6.328 -3.584 -2.872 1.00 0.00 H
+ATOM 160 1HG GLN A 11 4.516 -1.544 -4.212 1.00 0.00 H
+ATOM 161 2HG GLN A 11 6.252 -1.716 -4.480 1.00 0.00 H
+ATOM 162 1HE2 GLN A 11 4.848 -3.568 -7.276 1.00 0.00 H
+ATOM 163 2HE2 GLN A 11 5.072 -1.892 -6.788 1.00 0.00 H
+ATOM 164 N LYS A 12 5.172 -4.052 0.008 1.00 0.00 N
+ATOM 165 CA LYS A 12 5.644 -4.872 1.120 1.00 0.00 C
+ATOM 166 C LYS A 12 4.552 -5.840 1.572 1.00 0.00 C
+ATOM 167 O LYS A 12 4.792 -7.040 1.700 1.00 0.00 O
+ATOM 168 CB LYS A 12 6.084 -3.948 2.272 1.00 0.00 C
+ATOM 169 CG LYS A 12 7.404 -4.352 2.924 1.00 0.00 C
+ATOM 170 CD LYS A 12 7.824 -3.244 3.908 1.00 0.00 C
+ATOM 171 CE LYS A 12 9.056 -3.612 4.736 1.00 0.00 C
+ATOM 172 NZ LYS A 12 10.248 -3.828 3.896 1.00 0.00 N
+ATOM 173 H LYS A 12 5.240 -3.040 0.100 1.00 0.00 H
+ATOM 174 HA LYS A 12 6.496 -5.456 0.772 1.00 0.00 H
+ATOM 175 1HB LYS A 12 6.216 -2.940 1.896 1.00 0.00 H
+ATOM 176 2HB LYS A 12 5.304 -3.904 3.036 1.00 0.00 H
+ATOM 177 1HG LYS A 12 7.284 -5.300 3.452 1.00 0.00 H
+ATOM 178 2HG LYS A 12 8.168 -4.460 2.152 1.00 0.00 H
+ATOM 179 1HD LYS A 12 8.028 -2.324 3.352 1.00 0.00 H
+ATOM 180 2HD LYS A 12 7.000 -3.048 4.596 1.00 0.00 H
+ATOM 181 1HE LYS A 12 9.260 -2.800 5.432 1.00 0.00 H
+ATOM 182 2HE LYS A 12 8.844 -4.516 5.300 1.00 0.00 H
+ATOM 183 1HZ LYS A 12 10.084 -4.600 3.264 1.00 0.00 H
+ATOM 184 2HZ LYS A 12 10.444 -2.996 3.360 1.00 0.00 H
+ATOM 185 3HZ LYS A 12 11.044 -4.040 4.484 1.00 0.00 H
+ATOM 186 N CYS A 13 3.348 -5.304 1.784 1.00 0.00 N
+ATOM 187 CA CYS A 13 2.176 -6.060 2.172 1.00 0.00 C
+ATOM 188 C CYS A 13 1.888 -7.116 1.116 1.00 0.00 C
+ATOM 189 O CYS A 13 1.744 -8.284 1.468 1.00 0.00 O
+ATOM 190 CB CYS A 13 0.988 -5.120 2.408 1.00 0.00 C
+ATOM 191 SG CYS A 13 -0.512 -5.964 2.968 1.00 0.00 S
+ATOM 192 H CYS A 13 3.240 -4.300 1.652 1.00 0.00 H
+ATOM 193 HA CYS A 13 2.392 -6.564 3.112 1.00 0.00 H
+ATOM 194 1HB CYS A 13 1.272 -4.400 3.180 1.00 0.00 H
+ATOM 195 2HB CYS A 13 0.764 -4.568 1.496 1.00 0.00 H
+ATOM 196 N LEU A 14 1.804 -6.736 -0.164 1.00 0.00 N
+ATOM 197 CA LEU A 14 1.508 -7.684 -1.228 1.00 0.00 C
+ATOM 198 C LEU A 14 2.568 -8.768 -1.280 1.00 0.00 C
+ATOM 199 O LEU A 14 2.216 -9.940 -1.320 1.00 0.00 O
+ATOM 200 CB LEU A 14 1.356 -7.016 -2.608 1.00 0.00 C
+ATOM 201 CG LEU A 14 -0.132 -6.892 -2.988 1.00 0.00 C
+ATOM 202 CD1 LEU A 14 -0.720 -5.640 -2.328 1.00 0.00 C
+ATOM 203 CD2 LEU A 14 -0.348 -6.736 -4.500 1.00 0.00 C
+ATOM 204 H LEU A 14 1.940 -5.748 -0.392 1.00 0.00 H
+ATOM 205 HA LEU A 14 0.572 -8.184 -0.960 1.00 0.00 H
+ATOM 206 1HB LEU A 14 1.852 -6.044 -2.636 1.00 0.00 H
+ATOM 207 2HB LEU A 14 1.840 -7.648 -3.344 1.00 0.00 H
+ATOM 208 HG LEU A 14 -0.636 -7.808 -2.644 1.00 0.00 H
+ATOM 209 1HD1 LEU A 14 -0.504 -5.652 -1.264 1.00 0.00 H
+ATOM 210 2HD1 LEU A 14 -0.252 -4.748 -2.748 1.00 0.00 H
+ATOM 211 3HD1 LEU A 14 -1.788 -5.584 -2.496 1.00 0.00 H
+ATOM 212 1HD2 LEU A 14 0.236 -5.896 -4.880 1.00 0.00 H
+ATOM 213 2HD2 LEU A 14 -0.064 -7.636 -5.028 1.00 0.00 H
+ATOM 214 3HD2 LEU A 14 -1.400 -6.560 -4.708 1.00 0.00 H
+ATOM 215 N GLN A 15 3.844 -8.396 -1.236 1.00 0.00 N
+ATOM 216 CA GLN A 15 4.976 -9.316 -1.200 1.00 0.00 C
+ATOM 217 C GLN A 15 4.804 -10.344 -0.080 1.00 0.00 C
+ATOM 218 O GLN A 15 4.968 -11.536 -0.328 1.00 0.00 O
+ATOM 219 CB GLN A 15 6.284 -8.524 -1.020 1.00 0.00 C
+ATOM 220 CG GLN A 15 7.000 -8.232 -2.348 1.00 0.00 C
+ATOM 221 CD GLN A 15 8.108 -9.240 -2.676 1.00 0.00 C
+ATOM 222 OE1 GLN A 15 9.164 -8.868 -3.172 1.00 0.00 O
+ATOM 223 NE2 GLN A 15 7.924 -10.528 -2.396 1.00 0.00 N
+ATOM 224 H GLN A 15 4.016 -7.396 -1.188 1.00 0.00 H
+ATOM 225 HA GLN A 15 4.984 -9.864 -2.148 1.00 0.00 H
+ATOM 226 1HB GLN A 15 6.076 -7.584 -0.520 1.00 0.00 H
+ATOM 227 2HB GLN A 15 6.964 -9.068 -0.364 1.00 0.00 H
+ATOM 228 1HG GLN A 15 6.284 -8.192 -3.168 1.00 0.00 H
+ATOM 229 2HG GLN A 15 7.460 -7.244 -2.272 1.00 0.00 H
+ATOM 230 1HE2 GLN A 15 8.704 -11.136 -2.588 1.00 0.00 H
+ATOM 231 2HE2 GLN A 15 7.084 -10.872 -1.956 1.00 0.00 H
+ATOM 232 N ALA A 16 4.452 -9.880 1.124 1.00 0.00 N
+ATOM 233 CA ALA A 16 4.224 -10.736 2.288 1.00 0.00 C
+ATOM 234 C ALA A 16 2.944 -11.588 2.184 1.00 0.00 C
+ATOM 235 O ALA A 16 2.772 -12.512 2.972 1.00 0.00 O
+ATOM 236 CB ALA A 16 4.192 -9.864 3.544 1.00 0.00 C
+ATOM 237 H ALA A 16 4.356 -8.868 1.232 1.00 0.00 H
+ATOM 238 HA ALA A 16 5.068 -11.424 2.372 1.00 0.00 H
+ATOM 239 1HB ALA A 16 5.116 -9.292 3.624 1.00 0.00 H
+ATOM 240 2HB ALA A 16 3.348 -9.176 3.500 1.00 0.00 H
+ATOM 241 3HB ALA A 16 4.088 -10.496 4.424 1.00 0.00 H
+ATOM 242 N ASN A 17 2.056 -11.292 1.232 1.00 0.00 N
+ATOM 243 CA ASN A 17 0.748 -11.912 1.028 1.00 0.00 C
+ATOM 244 C ASN A 17 0.640 -12.476 -0.400 1.00 0.00 C
+ATOM 245 O ASN A 17 -0.464 -12.644 -0.916 1.00 0.00 O
+ATOM 246 CB ASN A 17 -0.344 -10.896 1.376 1.00 0.00 C
+ATOM 247 CG ASN A 17 -0.380 -10.620 2.880 1.00 0.00 C
+ATOM 248 OD1 ASN A 17 -0.896 -11.408 3.660 1.00 0.00 O
+ATOM 249 ND2 ASN A 17 0.172 -9.508 3.328 1.00 0.00 N
+ATOM 250 H ASN A 17 2.236 -10.504 0.620 1.00 0.00 H
+ATOM 251 HA ASN A 17 0.604 -12.752 1.712 1.00 0.00 H
+ATOM 252 1HB ASN A 17 -0.200 -9.972 0.812 1.00 0.00 H
+ATOM 253 2HB ASN A 17 -1.300 -11.308 1.088 1.00 0.00 H
+ATOM 254 1HD2 ASN A 17 0.144 -9.320 4.316 1.00 0.00 H
+ATOM 255 2HD2 ASN A 17 0.688 -8.916 2.672 1.00 0.00 H
+ATOM 256 N SER A 18 1.772 -12.768 -1.056 1.00 0.00 N
+ATOM 257 CA SER A 18 1.852 -13.408 -2.372 1.00 0.00 C
+ATOM 258 C SER A 18 1.068 -12.652 -3.460 1.00 0.00 C
+ATOM 259 O SER A 18 0.488 -13.272 -4.348 1.00 0.00 O
+ATOM 260 CB SER A 18 1.436 -14.880 -2.252 1.00 0.00 C
+ATOM 261 OG SER A 18 2.204 -15.536 -1.264 1.00 0.00 O
+ATOM 262 H SER A 18 2.648 -12.536 -0.612 1.00 0.00 H
+ATOM 263 HA SER A 18 2.896 -13.392 -2.672 1.00 0.00 H
+ATOM 264 1HB SER A 18 0.376 -14.944 -1.992 1.00 0.00 H
+ATOM 265 2HB SER A 18 1.588 -15.380 -3.212 1.00 0.00 H
+ATOM 266 HG SER A 18 1.868 -16.428 -1.152 1.00 0.00 H
+ATOM 267 N TYR A 19 1.052 -11.316 -3.392 1.00 0.00 N
+ATOM 268 CA TYR A 19 0.328 -10.408 -4.276 1.00 0.00 C
+ATOM 269 C TYR A 19 -1.200 -10.536 -4.152 1.00 0.00 C
+ATOM 270 O TYR A 19 -1.928 -10.016 -5.000 1.00 0.00 O
+ATOM 271 CB TYR A 19 0.872 -10.452 -5.720 1.00 0.00 C
+ATOM 272 CG TYR A 19 2.356 -10.128 -5.836 1.00 0.00 C
+ATOM 273 CD1 TYR A 19 2.804 -8.804 -5.648 1.00 0.00 C
+ATOM 274 CD2 TYR A 19 3.292 -11.140 -6.116 1.00 0.00 C
+ATOM 275 CE1 TYR A 19 4.172 -8.500 -5.680 1.00 0.00 C
+ATOM 276 CE2 TYR A 19 4.668 -10.840 -6.184 1.00 0.00 C
+ATOM 277 CZ TYR A 19 5.116 -9.516 -5.944 1.00 0.00 C
+ATOM 278 OH TYR A 19 6.440 -9.208 -5.976 1.00 0.00 O
+ATOM 279 H TYR A 19 1.516 -10.860 -2.604 1.00 0.00 H
+ATOM 280 HA TYR A 19 0.560 -9.416 -3.904 1.00 0.00 H
+ATOM 281 1HB TYR A 19 0.676 -11.436 -6.156 1.00 0.00 H
+ATOM 282 2HB TYR A 19 0.324 -9.728 -6.324 1.00 0.00 H
+ATOM 283 HD1 TYR A 19 2.100 -8.008 -5.484 1.00 0.00 H
+ATOM 284 HD2 TYR A 19 2.956 -12.156 -6.284 1.00 0.00 H
+ATOM 285 HE1 TYR A 19 4.508 -7.484 -5.508 1.00 0.00 H
+ATOM 286 HE2 TYR A 19 5.368 -11.628 -6.412 1.00 0.00 H
+ATOM 287 HH TYR A 19 7.012 -9.944 -6.204 1.00 0.00 H
+ATOM 288 N LEU A 20 -1.704 -11.152 -3.072 1.00 0.00 N
+ATOM 289 CA LEU A 20 -3.132 -11.176 -2.772 1.00 0.00 C
+ATOM 290 C LEU A 20 -3.532 -9.820 -2.220 1.00 0.00 C
+ATOM 291 O LEU A 20 -3.556 -9.568 -1.016 1.00 0.00 O
+ATOM 292 CB LEU A 20 -3.544 -12.272 -1.792 1.00 0.00 C
+ATOM 293 CG LEU A 20 -3.484 -13.692 -2.380 1.00 0.00 C
+ATOM 294 CD1 LEU A 20 -3.624 -14.716 -1.244 1.00 0.00 C
+ATOM 295 CD2 LEU A 20 -4.600 -13.932 -3.408 1.00 0.00 C
+ATOM 296 H LEU A 20 -1.064 -11.472 -2.356 1.00 0.00 H
+ATOM 297 HA LEU A 20 -3.676 -11.340 -3.700 1.00 0.00 H
+ATOM 298 1HB LEU A 20 -2.920 -12.196 -0.904 1.00 0.00 H
+ATOM 299 2HB LEU A 20 -4.572 -12.056 -1.500 1.00 0.00 H
+ATOM 300 HG LEU A 20 -2.520 -13.832 -2.868 1.00 0.00 H
+ATOM 301 1HD1 LEU A 20 -2.800 -14.600 -0.540 1.00 0.00 H
+ATOM 302 2HD1 LEU A 20 -4.568 -14.568 -0.720 1.00 0.00 H
+ATOM 303 3HD1 LEU A 20 -3.592 -15.728 -1.652 1.00 0.00 H
+ATOM 304 1HD2 LEU A 20 -5.576 -13.728 -2.964 1.00 0.00 H
+ATOM 305 2HD2 LEU A 20 -4.460 -13.292 -4.276 1.00 0.00 H
+ATOM 306 3HD2 LEU A 20 -4.572 -14.968 -3.748 1.00 0.00 H
+ATOM 307 N GLU A 21 -3.876 -8.964 -3.168 1.00 0.00 N
+ATOM 308 CA GLU A 21 -4.308 -7.596 -2.984 1.00 0.00 C
+ATOM 309 C GLU A 21 -5.356 -7.468 -1.876 1.00 0.00 C
+ATOM 310 O GLU A 21 -5.304 -6.524 -1.092 1.00 0.00 O
+ATOM 311 CB GLU A 21 -4.844 -7.076 -4.324 1.00 0.00 C
+ATOM 312 CG GLU A 21 -4.616 -5.576 -4.408 1.00 0.00 C
+ATOM 313 CD GLU A 21 -5.504 -4.924 -5.460 1.00 0.00 C
+ATOM 314 OE1 GLU A 21 -6.536 -4.348 -5.040 1.00 0.00 O
+ATOM 315 OE2 GLU A 21 -5.152 -5.012 -6.656 1.00 0.00 O
+ATOM 316 H GLU A 21 -3.620 -9.276 -4.096 1.00 0.00 H
+ATOM 317 HA GLU A 21 -3.432 -7.020 -2.692 1.00 0.00 H
+ATOM 318 1HB GLU A 21 -4.320 -7.548 -5.156 1.00 0.00 H
+ATOM 319 2HB GLU A 21 -5.908 -7.304 -4.408 1.00 0.00 H
+ATOM 320 1HG GLU A 21 -4.828 -5.132 -3.436 1.00 0.00 H
+ATOM 321 2HG GLU A 21 -3.564 -5.416 -4.640 1.00 0.00 H
+ATOM 322 N SER A 22 -6.268 -8.440 -1.764 1.00 0.00 N
+ATOM 323 CA SER A 22 -7.320 -8.504 -0.760 1.00 0.00 C
+ATOM 324 C SER A 22 -6.796 -8.404 0.676 1.00 0.00 C
+ATOM 325 O SER A 22 -7.504 -7.872 1.532 1.00 0.00 O
+ATOM 326 CB SER A 22 -8.092 -9.820 -0.948 1.00 0.00 C
+ATOM 327 OG SER A 22 -8.300 -10.088 -2.324 1.00 0.00 O
+ATOM 328 H SER A 22 -6.304 -9.180 -2.456 1.00 0.00 H
+ATOM 329 HA SER A 22 -8.004 -7.676 -0.940 1.00 0.00 H
+ATOM 330 1HB SER A 22 -7.520 -10.640 -0.512 1.00 0.00 H
+ATOM 331 2HB SER A 22 -9.056 -9.748 -0.440 1.00 0.00 H
+ATOM 332 HG SER A 22 -8.876 -10.856 -2.408 1.00 0.00 H
+ATOM 333 N LYS A 23 -5.560 -8.844 0.952 1.00 0.00 N
+ATOM 334 CA LYS A 23 -4.976 -8.772 2.300 1.00 0.00 C
+ATOM 335 C LYS A 23 -4.380 -7.388 2.584 1.00 0.00 C
+ATOM 336 O LYS A 23 -4.052 -7.072 3.724 1.00 0.00 O
+ATOM 337 CB LYS A 23 -3.888 -9.848 2.468 1.00 0.00 C
+ATOM 338 CG LYS A 23 -4.404 -11.272 2.176 1.00 0.00 C
+ATOM 339 CD LYS A 23 -3.812 -12.344 3.096 1.00 0.00 C
+ATOM 340 CE LYS A 23 -4.688 -13.596 3.092 1.00 0.00 C
+ATOM 341 NZ LYS A 23 -4.052 -14.688 3.844 1.00 0.00 N
+ATOM 342 H LYS A 23 -4.972 -9.216 0.204 1.00 0.00 H
+ATOM 343 HA LYS A 23 -5.760 -8.952 3.036 1.00 0.00 H
+ATOM 344 1HB LYS A 23 -3.052 -9.628 1.804 1.00 0.00 H
+ATOM 345 2HB LYS A 23 -3.524 -9.792 3.496 1.00 0.00 H
+ATOM 346 1HG LYS A 23 -5.488 -11.288 2.288 1.00 0.00 H
+ATOM 347 2HG LYS A 23 -4.140 -11.536 1.148 1.00 0.00 H
+ATOM 348 1HD LYS A 23 -2.824 -12.608 2.732 1.00 0.00 H
+ATOM 349 2HD LYS A 23 -3.740 -11.968 4.116 1.00 0.00 H
+ATOM 350 1HE LYS A 23 -5.652 -13.352 3.548 1.00 0.00 H
+ATOM 351 2HE LYS A 23 -4.856 -13.912 2.060 1.00 0.00 H
+ATOM 352 1HZ LYS A 23 -3.180 -14.940 3.400 1.00 0.00 H
+ATOM 353 2HZ LYS A 23 -3.864 -14.384 4.788 1.00 0.00 H
+ATOM 354 3HZ LYS A 23 -4.664 -15.492 3.864 1.00 0.00 H
+ATOM 355 N CYS A 24 -4.264 -6.556 1.548 1.00 0.00 N
+ATOM 356 CA CYS A 24 -3.564 -5.276 1.528 1.00 0.00 C
+ATOM 357 C CYS A 24 -4.492 -4.148 1.072 1.00 0.00 C
+ATOM 358 O CYS A 24 -4.092 -2.988 1.044 1.00 0.00 O
+ATOM 359 CB CYS A 24 -2.344 -5.456 0.632 1.00 0.00 C
+ATOM 360 SG CYS A 24 -1.260 -6.764 1.256 1.00 0.00 S
+ATOM 361 H CYS A 24 -4.576 -6.888 0.640 1.00 0.00 H
+ATOM 362 HA CYS A 24 -3.204 -5.016 2.528 1.00 0.00 H
+ATOM 363 1HB CYS A 24 -2.664 -5.740 -0.376 1.00 0.00 H
+ATOM 364 2HB CYS A 24 -1.792 -4.520 0.580 1.00 0.00 H
+ATOM 365 N GLN A 25 -5.760 -4.464 0.788 1.00 0.00 N
+ATOM 366 CA GLN A 25 -6.788 -3.504 0.456 1.00 0.00 C
+ATOM 367 C GLN A 25 -6.972 -2.468 1.556 1.00 0.00 C
+ATOM 368 O GLN A 25 -7.136 -1.300 1.228 1.00 0.00 O
+ATOM 369 CB GLN A 25 -8.088 -4.240 0.084 1.00 0.00 C
+ATOM 370 CG GLN A 25 -8.228 -4.312 -1.448 1.00 0.00 C
+ATOM 371 CD GLN A 25 -8.488 -2.936 -2.076 1.00 0.00 C
+ATOM 372 OE1 GLN A 25 -9.036 -2.040 -1.444 1.00 0.00 O
+ATOM 373 NE2 GLN A 25 -8.076 -2.728 -3.320 1.00 0.00 N
+ATOM 374 H GLN A 25 -5.996 -5.448 0.720 1.00 0.00 H
+ATOM 375 HA GLN A 25 -6.444 -2.952 -0.412 1.00 0.00 H
+ATOM 376 1HB GLN A 25 -8.084 -5.248 0.496 1.00 0.00 H
+ATOM 377 2HB GLN A 25 -8.952 -3.716 0.500 1.00 0.00 H
+ATOM 378 1HG GLN A 25 -7.312 -4.736 -1.868 1.00 0.00 H
+ATOM 379 2HG GLN A 25 -9.064 -4.972 -1.696 1.00 0.00 H
+ATOM 380 1HE2 GLN A 25 -8.264 -1.824 -3.720 1.00 0.00 H
+ATOM 381 2HE2 GLN A 25 -7.592 -3.440 -3.872 1.00 0.00 H
+ATOM 382 N ALA A 26 -6.828 -2.832 2.836 1.00 0.00 N
+ATOM 383 CA ALA A 26 -6.820 -1.872 3.944 1.00 0.00 C
+ATOM 384 C ALA A 26 -5.688 -0.840 3.820 1.00 0.00 C
+ATOM 385 O ALA A 26 -5.844 0.304 4.248 1.00 0.00 O
+ATOM 386 CB ALA A 26 -6.700 -2.636 5.264 1.00 0.00 C
+ATOM 387 H ALA A 26 -6.680 -3.812 3.044 1.00 0.00 H
+ATOM 388 HA ALA A 26 -7.768 -1.336 3.940 1.00 0.00 H
+ATOM 389 1HB ALA A 26 -7.532 -3.332 5.368 1.00 0.00 H
+ATOM 390 2HB ALA A 26 -5.760 -3.184 5.300 1.00 0.00 H
+ATOM 391 3HB ALA A 26 -6.728 -1.928 6.092 1.00 0.00 H
+ATOM 392 N VAL A 27 -4.564 -1.208 3.196 1.00 0.00 N
+ATOM 393 CA VAL A 27 -3.412 -0.336 2.996 1.00 0.00 C
+ATOM 394 C VAL A 27 -3.676 0.532 1.756 1.00 0.00 C
+ATOM 395 O VAL A 27 -3.348 1.720 1.756 1.00 0.00 O
+ATOM 396 CB VAL A 27 -2.120 -1.184 2.840 1.00 0.00 C
+ATOM 397 CG1 VAL A 27 -0.884 -0.344 3.172 1.00 0.00 C
+ATOM 398 CG2 VAL A 27 -2.032 -2.432 3.736 1.00 0.00 C
+ATOM 399 H VAL A 27 -4.512 -2.128 2.768 1.00 0.00 H
+ATOM 400 HA VAL A 27 -3.312 0.308 3.872 1.00 0.00 H
+ATOM 401 HB VAL A 27 -2.044 -1.520 1.808 1.00 0.00 H
+ATOM 402 1HG1 VAL A 27 -0.892 0.580 2.604 1.00 0.00 H
+ATOM 403 2HG1 VAL A 27 -0.872 -0.112 4.236 1.00 0.00 H
+ATOM 404 3HG1 VAL A 27 0.004 -0.924 2.920 1.00 0.00 H
+ATOM 405 1HG2 VAL A 27 -2.068 -2.148 4.788 1.00 0.00 H
+ATOM 406 2HG2 VAL A 27 -2.848 -3.116 3.528 1.00 0.00 H
+ATOM 407 3HG2 VAL A 27 -1.092 -2.948 3.524 1.00 0.00 H
+ATOM 408 N ILE A 28 -4.336 -0.016 0.732 1.00 0.00 N
+ATOM 409 CA ILE A 28 -4.800 0.704 -0.456 1.00 0.00 C
+ATOM 410 C ILE A 28 -5.888 1.716 -0.080 1.00 0.00 C
+ATOM 411 O ILE A 28 -5.880 2.812 -0.636 1.00 0.00 O
+ATOM 412 CB ILE A 28 -5.248 -0.300 -1.544 1.00 0.00 C
+ATOM 413 CG1 ILE A 28 -4.056 -1.180 -1.984 1.00 0.00 C
+ATOM 414 CG2 ILE A 28 -5.848 0.416 -2.768 1.00 0.00 C
+ATOM 415 CD1 ILE A 28 -4.480 -2.460 -2.700 1.00 0.00 C
+ATOM 416 H ILE A 28 -4.544 -1.008 0.796 1.00 0.00 H
+ATOM 417 HA ILE A 28 -3.980 1.300 -0.848 1.00 0.00 H
+ATOM 418 HB ILE A 28 -6.024 -0.936 -1.120 1.00 0.00 H
+ATOM 419 1HG1 ILE A 28 -3.392 -0.608 -2.636 1.00 0.00 H
+ATOM 420 2HG1 ILE A 28 -3.480 -1.504 -1.120 1.00 0.00 H
+ATOM 421 1HG2 ILE A 28 -6.752 0.948 -2.476 1.00 0.00 H
+ATOM 422 2HG2 ILE A 28 -5.132 1.124 -3.180 1.00 0.00 H
+ATOM 423 3HG2 ILE A 28 -6.128 -0.304 -3.536 1.00 0.00 H
+ATOM 424 1HD1 ILE A 28 -5.120 -3.044 -2.044 1.00 0.00 H
+ATOM 425 2HD1 ILE A 28 -5.016 -2.232 -3.620 1.00 0.00 H
+ATOM 426 3HD1 ILE A 28 -3.592 -3.044 -2.944 1.00 0.00 H
+ATOM 427 N GLN A 29 -6.776 1.412 0.872 1.00 0.00 N
+ATOM 428 CA GLN A 29 -7.688 2.408 1.432 1.00 0.00 C
+ATOM 429 C GLN A 29 -6.884 3.576 2.008 1.00 0.00 C
+ATOM 430 O GLN A 29 -7.212 4.736 1.752 1.00 0.00 O
+ATOM 431 CB GLN A 29 -8.596 1.816 2.528 1.00 0.00 C
+ATOM 432 CG GLN A 29 -9.584 0.708 2.124 1.00 0.00 C
+ATOM 433 CD GLN A 29 -10.328 0.996 0.824 1.00 0.00 C
+ATOM 434 OE1 GLN A 29 -11.044 1.984 0.720 1.00 0.00 O
+ATOM 435 NE2 GLN A 29 -10.200 0.156 -0.196 1.00 0.00 N
+ATOM 436 H GLN A 29 -6.820 0.448 1.196 1.00 0.00 H
+ATOM 437 HA GLN A 29 -8.316 2.796 0.624 1.00 0.00 H
+ATOM 438 1HB GLN A 29 -7.984 1.452 3.352 1.00 0.00 H
+ATOM 439 2HB GLN A 29 -9.184 2.644 2.916 1.00 0.00 H
+ATOM 440 1HG GLN A 29 -9.072 -0.240 2.064 1.00 0.00 H
+ATOM 441 2HG GLN A 29 -10.320 0.612 2.924 1.00 0.00 H
+ATOM 442 1HE2 GLN A 29 -10.756 0.360 -1.008 1.00 0.00 H
+ATOM 443 2HE2 GLN A 29 -9.604 -0.672 -0.224 1.00 0.00 H
+ATOM 444 N GLU A 30 -5.812 3.280 2.756 1.00 0.00 N
+ATOM 445 CA GLU A 30 -4.920 4.288 3.324 1.00 0.00 C
+ATOM 446 C GLU A 30 -4.296 5.132 2.208 1.00 0.00 C
+ATOM 447 O GLU A 30 -4.360 6.356 2.272 1.00 0.00 O
+ATOM 448 CB GLU A 30 -3.864 3.616 4.232 1.00 0.00 C
+ATOM 449 CG GLU A 30 -3.656 4.324 5.580 1.00 0.00 C
+ATOM 450 CD GLU A 30 -2.808 5.604 5.560 1.00 0.00 C
+ATOM 451 OE1 GLU A 30 -2.648 6.180 6.660 1.00 0.00 O
+ATOM 452 OE2 GLU A 30 -2.308 5.996 4.484 1.00 0.00 O
+ATOM 453 H GLU A 30 -5.596 2.304 2.920 1.00 0.00 H
+ATOM 454 HA GLU A 30 -5.536 4.948 3.932 1.00 0.00 H
+ATOM 455 1HB GLU A 30 -4.204 2.604 4.468 1.00 0.00 H
+ATOM 456 2HB GLU A 30 -2.912 3.520 3.712 1.00 0.00 H
+ATOM 457 1HG GLU A 30 -4.628 4.548 6.016 1.00 0.00 H
+ATOM 458 2HG GLU A 30 -3.160 3.616 6.248 1.00 0.00 H
+ATOM 459 N LEU A 31 -3.756 4.500 1.156 1.00 0.00 N
+ATOM 460 CA LEU A 31 -3.228 5.192 -0.024 1.00 0.00 C
+ATOM 461 C LEU A 31 -4.296 6.052 -0.700 1.00 0.00 C
+ATOM 462 O LEU A 31 -4.008 7.192 -1.056 1.00 0.00 O
+ATOM 463 CB LEU A 31 -2.660 4.168 -1.020 1.00 0.00 C
+ATOM 464 CG LEU A 31 -2.172 4.736 -2.376 1.00 0.00 C
+ATOM 465 CD1 LEU A 31 -0.820 5.424 -2.216 1.00 0.00 C
+ATOM 466 CD2 LEU A 31 -2.056 3.632 -3.432 1.00 0.00 C
+ATOM 467 H LEU A 31 -3.720 3.480 1.192 1.00 0.00 H
+ATOM 468 HA LEU A 31 -2.436 5.868 0.324 1.00 0.00 H
+ATOM 469 1HB LEU A 31 -1.828 3.656 -0.540 1.00 0.00 H
+ATOM 470 2HB LEU A 31 -3.436 3.436 -1.228 1.00 0.00 H
+ATOM 471 HG LEU A 31 -2.888 5.460 -2.756 1.00 0.00 H
+ATOM 472 1HD1 LEU A 31 -0.920 6.212 -1.476 1.00 0.00 H
+ATOM 473 2HD1 LEU A 31 -0.060 4.712 -1.896 1.00 0.00 H
+ATOM 474 3HD1 LEU A 31 -0.516 5.872 -3.164 1.00 0.00 H
+ATOM 475 1HD2 LEU A 31 -1.300 2.904 -3.148 1.00 0.00 H
+ATOM 476 2HD2 LEU A 31 -3.016 3.132 -3.556 1.00 0.00 H
+ATOM 477 3HD2 LEU A 31 -1.776 4.076 -4.392 1.00 0.00 H
+ATOM 478 N LYS A 32 -5.520 5.544 -0.896 1.00 0.00 N
+ATOM 479 CA LYS A 32 -6.600 6.356 -1.468 1.00 0.00 C
+ATOM 480 C LYS A 32 -6.880 7.576 -0.596 1.00 0.00 C
+ATOM 481 O LYS A 32 -6.972 8.688 -1.116 1.00 0.00 O
+ATOM 482 CB LYS A 32 -7.876 5.528 -1.668 1.00 0.00 C
+ATOM 483 CG LYS A 32 -7.832 4.752 -2.988 1.00 0.00 C
+ATOM 484 CD LYS A 32 -9.172 4.056 -3.276 1.00 0.00 C
+ATOM 485 CE LYS A 32 -8.936 2.620 -3.744 1.00 0.00 C
+ATOM 486 NZ LYS A 32 -10.164 2.020 -4.288 1.00 0.00 N
+ATOM 487 H LYS A 32 -5.684 4.568 -0.648 1.00 0.00 H
+ATOM 488 HA LYS A 32 -6.268 6.736 -2.436 1.00 0.00 H
+ATOM 489 1HB LYS A 32 -8.016 4.840 -0.836 1.00 0.00 H
+ATOM 490 2HB LYS A 32 -8.732 6.208 -1.700 1.00 0.00 H
+ATOM 491 1HG LYS A 32 -7.624 5.444 -3.808 1.00 0.00 H
+ATOM 492 2HG LYS A 32 -7.020 4.020 -2.944 1.00 0.00 H
+ATOM 493 1HD LYS A 32 -9.792 4.032 -2.380 1.00 0.00 H
+ATOM 494 2HD LYS A 32 -9.700 4.616 -4.052 1.00 0.00 H
+ATOM 495 1HE LYS A 32 -8.164 2.616 -4.516 1.00 0.00 H
+ATOM 496 2HE LYS A 32 -8.588 2.032 -2.896 1.00 0.00 H
+ATOM 497 1HZ LYS A 32 -10.900 2.056 -3.592 1.00 0.00 H
+ATOM 498 2HZ LYS A 32 -10.460 2.532 -5.108 1.00 0.00 H
+ATOM 499 3HZ LYS A 32 -9.988 1.056 -4.544 1.00 0.00 H
+ATOM 500 N LYS A 33 -7.000 7.388 0.720 1.00 0.00 N
+ATOM 501 CA LYS A 33 -7.268 8.492 1.636 1.00 0.00 C
+ATOM 502 C LYS A 33 -6.104 9.488 1.628 1.00 0.00 C
+ATOM 503 O LYS A 33 -6.312 10.696 1.580 1.00 0.00 O
+ATOM 504 CB LYS A 33 -7.568 7.936 3.036 1.00 0.00 C
+ATOM 505 CG LYS A 33 -8.536 8.860 3.792 1.00 0.00 C
+ATOM 506 CD LYS A 33 -9.024 8.244 5.108 1.00 0.00 C
+ATOM 507 CE LYS A 33 -7.916 8.044 6.152 1.00 0.00 C
+ATOM 508 NZ LYS A 33 -7.272 9.312 6.528 1.00 0.00 N
+ATOM 509 H LYS A 33 -6.896 6.440 1.088 1.00 0.00 H
+ATOM 510 HA LYS A 33 -8.152 9.012 1.264 1.00 0.00 H
+ATOM 511 1HB LYS A 33 -8.048 6.960 2.944 1.00 0.00 H
+ATOM 512 2HB LYS A 33 -6.644 7.808 3.600 1.00 0.00 H
+ATOM 513 1HG LYS A 33 -8.060 9.824 3.980 1.00 0.00 H
+ATOM 514 2HG LYS A 33 -9.412 9.032 3.168 1.00 0.00 H
+ATOM 515 1HD LYS A 33 -9.792 8.888 5.536 1.00 0.00 H
+ATOM 516 2HD LYS A 33 -9.484 7.276 4.904 1.00 0.00 H
+ATOM 517 1HE LYS A 33 -8.360 7.592 7.040 1.00 0.00 H
+ATOM 518 2HE LYS A 33 -7.164 7.356 5.752 1.00 0.00 H
+ATOM 519 1HZ LYS A 33 -6.784 9.712 5.736 1.00 0.00 H
+ATOM 520 2HZ LYS A 33 -7.972 9.972 6.844 1.00 0.00 H
+ATOM 521 3HZ LYS A 33 -6.608 9.156 7.272 1.00 0.00 H
+ATOM 522 N CYS A 34 -4.872 8.972 1.580 1.00 0.00 N
+ATOM 523 CA CYS A 34 -3.648 9.736 1.432 1.00 0.00 C
+ATOM 524 C CYS A 34 -3.684 10.588 0.160 1.00 0.00 C
+ATOM 525 O CYS A 34 -3.404 11.784 0.208 1.00 0.00 O
+ATOM 526 CB CYS A 34 -2.472 8.764 1.372 1.00 0.00 C
+ATOM 527 SG CYS A 34 -0.904 9.632 1.276 1.00 0.00 S
+ATOM 528 H CYS A 34 -4.780 7.960 1.648 1.00 0.00 H
+ATOM 529 HA CYS A 34 -3.532 10.388 2.296 1.00 0.00 H
+ATOM 530 1HB CYS A 34 -2.496 8.068 2.204 1.00 0.00 H
+ATOM 531 2HB CYS A 34 -2.548 8.152 0.476 1.00 0.00 H
+ATOM 532 N ALA A 35 -4.020 9.964 -0.972 1.00 0.00 N
+ATOM 533 CA ALA A 35 -4.116 10.628 -2.264 1.00 0.00 C
+ATOM 534 C ALA A 35 -5.172 11.732 -2.220 1.00 0.00 C
+ATOM 535 O ALA A 35 -4.916 12.840 -2.696 1.00 0.00 O
+ATOM 536 CB ALA A 35 -4.416 9.600 -3.360 1.00 0.00 C
+ATOM 537 H ALA A 35 -4.168 8.960 -0.924 1.00 0.00 H
+ATOM 538 HA ALA A 35 -3.148 11.084 -2.476 1.00 0.00 H
+ATOM 539 1HB ALA A 35 -3.636 8.840 -3.380 1.00 0.00 H
+ATOM 540 2HB ALA A 35 -5.380 9.124 -3.176 1.00 0.00 H
+ATOM 541 3HB ALA A 35 -4.448 10.100 -4.328 1.00 0.00 H
+ATOM 542 N ALA A 36 -6.336 11.448 -1.620 1.00 0.00 N
+ATOM 543 CA ALA A 36 -7.408 12.424 -1.432 1.00 0.00 C
+ATOM 544 C ALA A 36 -6.964 13.612 -0.568 1.00 0.00 C
+ATOM 545 O ALA A 36 -7.444 14.724 -0.796 1.00 0.00 O
+ATOM 546 CB ALA A 36 -8.632 11.732 -0.824 1.00 0.00 C
+ATOM 547 H ALA A 36 -6.488 10.496 -1.292 1.00 0.00 H
+ATOM 548 HA ALA A 36 -7.688 12.808 -2.412 1.00 0.00 H
+ATOM 549 1HB ALA A 36 -8.948 10.904 -1.456 1.00 0.00 H
+ATOM 550 2HB ALA A 36 -8.400 11.356 0.172 1.00 0.00 H
+ATOM 551 3HB ALA A 36 -9.448 12.452 -0.744 1.00 0.00 H
+ATOM 552 N GLN A 37 -6.056 13.404 0.396 1.00 0.00 N
+ATOM 553 CA GLN A 37 -5.424 14.488 1.140 1.00 0.00 C
+ATOM 554 C GLN A 37 -4.424 15.236 0.252 1.00 0.00 C
+ATOM 555 O GLN A 37 -4.592 16.428 0.008 1.00 0.00 O
+ATOM 556 CB GLN A 37 -4.720 13.956 2.396 1.00 0.00 C
+ATOM 557 CG GLN A 37 -5.656 13.464 3.512 1.00 0.00 C
+ATOM 558 CD GLN A 37 -4.892 12.712 4.604 1.00 0.00 C
+ATOM 559 OE1 GLN A 37 -5.416 11.800 5.228 1.00 0.00 O
+ATOM 560 NE2 GLN A 37 -3.640 13.080 4.860 1.00 0.00 N
+ATOM 561 H GLN A 37 -5.764 12.452 0.580 1.00 0.00 H
+ATOM 562 HA GLN A 37 -6.184 15.200 1.444 1.00 0.00 H
+ATOM 563 1HB GLN A 37 -4.064 13.136 2.120 1.00 0.00 H
+ATOM 564 2HB GLN A 37 -4.104 14.760 2.800 1.00 0.00 H
+ATOM 565 1HG GLN A 37 -6.172 14.316 3.952 1.00 0.00 H
+ATOM 566 2HG GLN A 37 -6.404 12.792 3.088 1.00 0.00 H
+ATOM 567 1HE2 GLN A 37 -3.144 12.588 5.580 1.00 0.00 H
+ATOM 568 2HE2 GLN A 37 -3.208 13.812 4.316 1.00 0.00 H
+ATOM 569 N TYR A 38 -3.352 14.560 -0.188 1.00 0.00 N
+ATOM 570 CA TYR A 38 -2.284 15.172 -0.956 1.00 0.00 C
+ATOM 571 C TYR A 38 -2.708 15.184 -2.424 1.00 0.00 C
+ATOM 572 O TYR A 38 -1.928 15.548 -3.304 1.00 0.00 O
+ATOM 573 CB TYR A 38 -0.972 14.392 -0.740 1.00 0.00 C
+ATOM 574 CG TYR A 38 -0.316 14.600 0.616 1.00 0.00 C
+ATOM 575 CD1 TYR A 38 0.920 15.276 0.704 1.00 0.00 C
+ATOM 576 CD2 TYR A 38 -0.900 14.076 1.788 1.00 0.00 C
+ATOM 577 CE1 TYR A 38 1.568 15.416 1.944 1.00 0.00 C
+ATOM 578 CE2 TYR A 38 -0.280 14.244 3.036 1.00 0.00 C
+ATOM 579 CZ TYR A 38 0.964 14.908 3.120 1.00 0.00 C
+ATOM 580 OH TYR A 38 1.592 15.064 4.320 1.00 0.00 O
+ATOM 581 H TYR A 38 -3.252 13.568 0.020 1.00 0.00 H
+ATOM 582 HA TYR A 38 -2.140 16.192 -0.608 1.00 0.00 H
+ATOM 583 1HB TYR A 38 -1.160 13.328 -0.880 1.00 0.00 H
+ATOM 584 2HB TYR A 38 -0.268 14.700 -1.508 1.00 0.00 H
+ATOM 585 HD1 TYR A 38 1.396 15.660 -0.184 1.00 0.00 H
+ATOM 586 HD2 TYR A 38 -1.824 13.524 1.728 1.00 0.00 H
+ATOM 587 HE1 TYR A 38 2.532 15.900 2.004 1.00 0.00 H
+ATOM 588 HE2 TYR A 38 -0.744 13.840 3.920 1.00 0.00 H
+ATOM 589 HH TYR A 38 1.136 14.636 5.044 1.00 0.00 H
+TER 590 TYR A 38
+CONECT 32 527
+CONECT 191 360
+CONECT 360 191
+CONECT 527 32
+MASTER 59 0 0 3 0 0 0 6 589 1 4 3
+END
--- /dev/null
+1ei0
+SEED=-1111333 MINIMIZE pdbstart PDBREF PDBOUT OVERLAP NOSEARCHSC CART
+print_min_ini print_min_res print_min_stat MAXMIN=10000 MAXFUN=15000
+WLONG=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
+1ei0.pdb
+4 4 14 25 35
+2 4 35 14 25
+0
--- /dev/null
+1L2Y minimize internal coordinates
+SEED=-3059743 minimize pdbref refstr rescale_mode=2 overlap nosearchsc
+print_min_ini print_min_res print_min_stat MAXMIN=3000 MAXFUN=3500
+WLONG=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
+1L2Y.pdb
+22
+ D ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER SER GLY ARG PRO PRO PRO
+ SER D
+ 0
+ 0
+ 118.4740 91.7823 90.3404 89.3388 90.2688 90.5528 90.2608 91.8517
+ 91.2516 112.6457 114.2855 93.3110 94.0115 113.7225 94.1935 122.6596
+ 117.6789 115.7586 93.9337 117.7525
+ -102.4154 63.8918 53.6672 44.5801 45.7047 51.3142 45.4942 65.8300
+ -69.7204 -63.5184 -78.1774 56.7999 138.6359 -83.5800 61.1299 -80.0117
+ -107.6271 -138.3675 46.2456
+ 111.0437 140.0186 119.7331 146.2523 117.2478 139.8052 138.2821 132.6488
+ 141.1706 180.0000 180.0000 128.9951 136.7308 122.7588 180.0000 87.7280
+ 116.1119 141.5865 95.8012 143.6198
+ -86.0387 -46.9729 113.9184 -93.8597 -118.2335 49.5995 -148.0897 -135.5996
+ -121.1027 180.0000 180.0000 -152.5007 -154.1805 -145.3740 180.0000 -103.5827
+ -122.4221 -157.5917 -96.8194 -130.8054
--- /dev/null
+1L2Y regularize internal coordinates starting from pdb
+SEED=-3059743 minimize regular pdbstart pdbref refstr rescale_mode=2
+print_min_ini print_min_res print_min_stat MAXMIN=3000 MAXFUN=3500
+WLONG=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
+1L2Y.pdb
+ 0
+ 0
--- /dev/null
+1l2y
+nres=22 IOPT=1 ncut=2 cutoff=-10 9 pdbout=100 ecut=50
+ D ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER SER GLY ARG PRO PRO PRO
+ SER D
+ 0
+ 0
--- /dev/null
+1l2y
+SEED=-3059743 CSA MINIMIZE RESCALE_MODE=0 OVERLAP NOSEARCHSC
+MAXMIN=3000 MAXFUN=1000
+NCONF=50 NSTMAX=10000 N1=2 N2=2 N6=5 N3=0 N4=0 N8=0 IS1=1 IS2=25 NSEED=10 &
+NTOTAL=10000 CUT1=2.0 CUT2=5.0 ESTOP=-900000.0 IRESTART=0 NCONF_IN=0 &
+DELE=30.0 DIFCUT=720.0 IREF=0 RMSCUT=4.0 IZ_SC=1 PNCCUT=0.6 &
+IMAX=1 IUCUT=2 NBANKM=200
+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
+22
+ D ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER SER GLY ARG PRO PRO PRO
+ SER D
+0
+0
--- /dev/null
+1l2y
+SEED=-3059743 CSA MINIMIZE RESCALE_MODE=0 OVERLAP NOSEARCHSC
+MAXMIN=3000 MAXFUN=1000
+NCONF=50 NSTMAX=10000 N1=2 N2=2 N6=5 N3=0 N4=0 N8=0 IS1=1 IS2=25 NSEED=10 &
+NTOTAL=10000 CUT1=2.0 CUT2=5.0 ESTOP=-900000.0 IRESTART=0 NCONF_IN=0 &
+DELE=30.0 DIFCUT=720.0 IREF=0 RMSCUT=4.0 IZ_SC=1 PNCCUT=0.6 &
+ICMAX=1 IUCUT=2 NBANKM=200
+WLONG=1.00000 WSCP=2.73684 WELEC=0.06833 WANG=4.15526 WSCLOC=0.16761 &
+WTOR=2.99546 WTORD=2.89720 WCORRH=1.98989 WCORR5=0.00000 WCORR6=0.00000 &
+WEL_LOC=1.60072 WTURN3=2.36351 WTURN4=1.34051 WTURN6=0.00000 &
+WSCCOR=0.1 &
+CUTOFF=7.00000 WCORR4=0.00000
+22
+ D ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER SER GLY ARG PRO PRO PRO
+ SER D
+0
+0
--- /dev/null
+ 1 -88.12 0
+ 93.9902 91.4469 89.2500 89.4542 89.3747 89.3217 89.2616 88.6456
+ 91.0124 95.5919 130.9364 93.9890 94.6583 134.6164 116.7496 131.4564
+ 118.9415 119.2810 93.1354 93.2990
+ 118.5841 79.4877 52.1005 42.8230 48.1776 58.8031 58.4604 47.4555
+ 170.9677 99.7450 -52.6701 81.4239 -58.1706 -159.4000 174.1533 -83.1545
+ -109.4913 -138.8610 79.7320
+ 140.3256 147.3992 115.9863 166.9710 133.5272 120.5733 142.1945 116.8232
+ 137.5783 0.0000 0.0000 132.4104 118.7722 126.3170 0.0000 111.8467
+ 115.3030 109.9074 104.3783 111.2368
+ -7.3067 -18.8675 -64.2119 -160.5779 -105.2872 29.2218 -136.2515 -126.3564
+ -112.6687 0.0000 0.0000 -155.6389 -76.3490 -80.3374 0.0000 -127.2761
+ -120.6055 -109.1555 -114.5041 -78.0648
+ 2 -86.73 0
+ 93.8264 93.1351 123.7227 91.1937 90.3069 90.8640 90.0038 89.8922
+ 91.5887 108.5996 116.3948 92.3393 93.1117 93.1701 94.3960 131.6429
+ 116.8786 119.9894 93.9416 93.4577
+ 104.7923 126.1345 -90.0725 54.6430 38.8389 63.9795 49.2088 79.2056
+ 0.0039 -88.9865 -53.3900 74.4121 143.2272 -74.2856 52.9753 -78.6497
+ -106.3593 -152.7561 32.8427
+ 146.9881 140.5269 90.1725 146.3382 122.3463 119.1788 144.4238 83.9586
+ 137.7095 0.0000 0.0000 100.2833 113.0185 124.7544 0.0000 128.0725
+ 116.2917 116.9049 92.4935 114.0899
+ -19.1440 -27.5669 -93.6838 -117.5784 -96.9295 -19.5080 -56.5507 -79.0552
+ -123.7003 0.0000 0.0000 -95.9777 -76.9870 -139.5958 0.0000 -125.8518
+ -123.1940 -117.9103 -98.6180 -82.9282
+ 3 -90.85 0
+ 93.8566 91.4471 91.8640 91.0516 90.0027 90.9670 90.4631 91.6108
+ 90.4191 103.3142 98.7607 92.8574 94.3890 122.7358 94.7233 130.8755
+ 118.9745 118.4178 117.2106 121.7675
+ 122.3121 83.3590 44.2123 43.8889 42.8578 52.5801 46.0724 74.4374
+ -65.2135 -66.2906 -31.8696 104.2174 102.5413 -95.1843 81.0642 -69.0618
+ -107.7636 -139.2666 -118.1660
+ 148.5454 127.9291 92.8502 147.6677 119.5420 164.3717 131.7168 108.0904
+ 129.8115 0.0000 0.0000 139.9241 113.4868 119.9023 0.0000 129.4181
+ 109.6070 110.4780 127.2295 121.4859
+ -9.4499 -32.5550 -82.7440 -99.6459 -113.3781 10.8036 -166.4751 -102.9934
+ -137.8575 0.0000 0.0000 -168.5492 -77.1384 -77.6098 0.0000 -94.9719
+ -113.8581 -111.5267 -136.6577 -80.8672
+ 4 -86.50 0
+ 118.4277 122.3821 92.4604 90.5779 90.2299 91.4117 90.8951 92.3404
+ 92.5546 122.0425 130.4833 105.7084 91.8076 92.7746 123.8560 116.9756
+ 115.7741 119.0863 92.9954 93.4095
+ -106.7945 170.3854 75.5364 43.5388 48.4279 48.7319 39.5262 59.5160
+ -77.6810 -63.5364 -38.7582 -30.4840 100.1604 10.8206 -11.3805 -74.5173
+ -108.1280 -140.9410 71.1896
+ 152.1136 157.1172 141.7041 150.2172 117.7429 133.0099 137.8363 130.9514
+ 131.8837 0.0000 0.0000 91.5538 114.5515 105.6542 0.0000 91.4222
+ 118.1828 131.5571 98.8567 126.0498
+ -14.4691 -10.5106 88.1212 -94.6043 -67.2705 41.8301 -125.9425 -132.1059
+ -129.2152 0.0000 0.0000 -80.7196 -75.9275 -79.9810 0.0000 -59.1095
+ -121.7483 -140.7050 -98.0707 -130.9203
+ 5 -85.90 0
+ 93.9315 91.7145 91.8900 91.6278 90.9218 92.0555 90.9581 91.1594
+ 94.1106 93.6231 140.3889 94.0784 128.8612 128.8360 95.3715 129.7435
+ 118.6082 120.7002 93.5823 93.3141
+ 110.4392 77.7803 44.7669 38.4086 44.7896 45.9761 76.6563 18.9036
+ -112.7084 149.3736 -36.6258 87.0584 -114.2368 -83.4593 166.5451 -83.4728
+ -109.6409 -137.1206 73.6617
+ 142.8043 134.2269 99.8788 147.9882 116.4289 132.4891 135.7852 136.0228
+ 107.1017 0.0000 0.0000 88.0093 125.1720 122.0562 0.0000 130.1012
+ 119.0010 108.4031 124.9929 111.2705
+ -9.2863 -21.4114 -71.4233 -107.9855 -110.3641 100.9792 -121.3841 -122.2573
+ -79.2321 0.0000 0.0000 -85.4057 -82.8742 -80.2245 0.0000 -124.9264
+ -126.3971 -106.0690 -145.4114 -79.0056
+ 6 -84.13 0
+ 93.7244 92.8281 130.2870 92.2575 91.3336 92.3703 90.9714 91.9781
+ 92.6568 135.8259 92.5210 89.5078 88.4531 91.1366 94.4007 112.3055
+ 118.3764 120.0288 93.1052 93.3590
+ 96.0903 124.3863 -94.0371 53.6601 38.2155 50.1644 43.8119 68.7439
+ -117.3096 -69.5335 49.3731 49.3707 59.4962 37.7704 70.3685 -58.7966
+ -106.6223 -140.6563 54.9968
+ 150.8322 140.8897 91.6108 148.8532 113.9407 155.2712 139.9497 140.0939
+ 139.1268 0.0000 0.0000 98.5776 108.5641 116.0705 0.0000 131.5888
+ 117.8762 112.6456 93.9092 111.8000
+ -27.3208 -44.1735 -98.5381 -109.6563 -82.0305 95.1292 -108.1466 -134.5285
+ -133.6765 0.0000 0.0000 -100.0795 -76.4583 -76.6559 0.0000 -111.7790
+ -125.6645 -112.9219 -102.0591 -80.9498
+ 7 -85.29 0
+ 93.7074 92.8788 91.1187 89.6022 89.2849 90.1103 90.3072 92.2684
+ 91.8986 115.2922 117.4588 110.4304 93.4236 93.8164 93.9057 130.6522
+ 117.9245 120.1884 93.4087 93.3215
+ 46.5555 168.6639 85.1771 52.7639 45.8991 54.6874 39.7007 63.0579
+ -66.3833 -57.6366 -55.3105 164.4219 72.4910 -99.2275 148.1114 -111.3137
+ -110.2800 -142.3343 67.2191
+ 109.2672 142.6006 131.7186 146.6244 109.0990 125.9041 134.8772 128.7227
+ 139.8933 0.0000 0.0000 130.9414 114.5981 110.7245 0.0000 126.2077
+ 119.3625 116.0138 103.3188 112.9066
+ -80.9056 -25.6722 -95.4678 -101.6477 -74.6677 42.5681 -155.2702 -135.7623
+ -124.0163 0.0000 0.0000 -142.6988 -77.8772 -77.4462 0.0000 -70.2813
+ -126.7076 -116.3374 -95.0185 -78.4427
+ 8 -89.26 0
+ 93.9517 91.3045 91.5528 90.8940 90.6394 91.9367 90.8515 92.2951
+ 92.8219 126.2964 136.1266 109.0635 90.6346 91.5862 118.8570 129.5099
+ 121.1900 121.3733 118.2959 121.8841
+ 125.4443 86.2811 44.7154 43.7487 45.2226 50.4475 37.6502 60.5615
+ -75.8438 -67.6466 -32.3048 -30.7241 93.7733 2.1216 -12.3389 -73.2765
+ -147.7997 -108.8041 -118.5790
+ 144.3268 127.5368 123.6595 150.4953 118.4068 134.9476 141.0739 131.0042
+ 129.3793 0.0000 0.0000 91.8067 129.7782 103.7276 0.0000 127.4232
+ 110.2184 112.7728 116.8456 121.4958
+ -3.8664 -23.9102 89.8748 -94.5845 -120.1012 32.3527 -90.9292 -133.2279
+ -134.4522 0.0000 0.0000 -81.3201 141.1424 -80.0809 0.0000 -59.1603
+ -110.3015 -113.2105 -120.9190 -81.0881
+ 9 -83.94 0
+ 93.7114 93.1391 105.9382 91.7970 90.0642 91.7516 90.6705 92.3042
+ 91.9599 119.3837 130.9603 106.1754 91.4701 91.7796 119.5723 128.2120
+ 116.7440 118.1349 118.3981 121.8870
+ 46.0916 168.3739 170.9939 61.5183 43.1130 53.5348 37.1851 63.0113
+ -72.1527 -66.5712 -41.8499 -28.9026 97.5536 5.9774 -12.1856 -77.1232
+ -106.4466 -115.4383 -118.5791
+ 108.9214 139.3852 116.1806 140.5869 114.8130 132.9911 144.8542 129.9815
+ 130.4851 0.0000 0.0000 92.4752 130.1489 106.7177 0.0000 100.2705
+ 119.0432 141.5334 116.6634 121.4922
+ -80.6570 -37.0843 -75.5273 -106.7754 -108.0656 34.8838 -119.6170 -134.2055
+ -131.6210 0.0000 0.0000 -83.9082 135.3342 -79.2928 0.0000 -58.0497
+ -123.4780 -154.3975 -121.2759 -81.0962
+ 10 -84.10 0
+ 93.7879 92.8881 91.5686 88.0069 88.5903 89.0607 90.0100 90.2562
+ 92.8448 94.4352 132.9210 92.2012 91.3203 92.5442 95.6632 122.0193
+ 118.5161 118.6616 93.1121 93.2958
+ 52.8621 170.3685 84.9776 49.0573 51.5274 47.2272 62.7730 31.9412
+ -115.8485 149.8388 -52.0102 66.1629 97.1846 40.8401 80.7744 -89.0656
+ -109.7098 -138.2398 81.1949
+ 146.9656 140.9730 132.8591 147.1280 84.8485 159.7966 142.2462 135.0577
+ 106.5865 0.0000 0.0000 96.8819 107.8099 115.7787 0.0000 84.0508
+ 120.1310 112.2225 103.4924 110.5701
+ -26.6097 -22.8727 109.5713 -93.1655 -66.4532 103.2625 -98.5277 -131.7947
+ -79.7565 0.0000 0.0000 -97.4848 -76.7270 -81.4725 0.0000 -64.4100
+ -126.3474 -112.4372 -103.4959 -78.3663
+ 11 -83.71 0
+ 118.2895 117.5777 91.3262 90.1625 89.4830 90.3144 90.3497 91.7750
+ 92.3444 94.3495 150.6138 89.7018 90.1201 93.6050 96.5851 124.0463
+ 118.0459 118.9099 93.2209 93.3138
+ -161.3373 -108.1727 58.7483 45.1127 44.3648 57.1800 41.7652 69.7626
+ -85.9623 166.9947 -39.6048 52.5602 49.4931 -106.8679 142.2536 -82.8305
+ -109.9745 -140.3243 71.4511
+ 146.5039 144.8115 134.0080 142.0873 118.1615 149.1474 137.2569 100.8604
+ 135.7939 0.0000 0.0000 131.6048 109.6785 110.2138 0.0000 132.5234
+ 118.7084 109.7272 102.5222 112.2721
+ -15.5498 -35.2183 113.4705 -95.0924 -90.6066 7.7289 164.4794 -103.0985
+ -117.6500 0.0000 0.0000 -161.2316 -79.6397 -78.5287 0.0000 -56.9339
+ -125.6966 -110.1587 -103.3225 -78.4169
+ 12 -84.95 0
+ 93.8954 112.2091 123.0365 90.6138 89.6517 89.8359 89.9730 91.7057
+ 91.6864 103.7584 99.3761 93.5277 117.9738 94.8360 93.9582 133.0938
+ 119.8140 119.2151 93.1786 93.3028
+ 123.6683 178.1041 -82.2564 65.5976 41.4872 60.6891 46.0774 97.5147
+ -12.5859 -72.1333 -18.0227 95.6817 132.1235 -78.9789 65.7322 -78.0254
+ -107.7991 -139.3035 78.5745
+ 145.5743 149.2673 122.8370 147.0795 98.7544 124.7600 141.6020 131.3726
+ 145.1820 0.0000 0.0000 99.3535 121.3828 111.9532 0.0000 133.9364
+ 114.0408 117.3251 102.5292 111.1431
+ -14.4875 -19.6206 -126.8088 -95.0273 -83.8860 -128.5895 -46.3540 -139.1226
+ -113.3005 0.0000 0.0000 -95.9997 -79.5710 -79.3445 0.0000 -117.9042
+ -119.0518 -118.4532 -111.0306 -78.3719
+ 13 -86.20 0
+ 93.8744 91.2992 90.9089 90.3784 90.2448 90.9409 89.9452 90.1549
+ 92.0696 96.4244 137.3417 123.8411 89.9924 92.2625 114.5575 126.8912
+ 119.4188 116.4756 114.6326 121.5613
+ 120.8206 84.4020 48.1659 42.9934 45.3742 51.9186 52.1975 42.5574
+ 168.0234 102.1660 -73.8785 -69.5033 82.3961 16.9412 -27.3510 -82.6646
+ -113.2600 -140.1593 -117.6188
+ 147.1561 124.1453 94.0469 150.5304 116.8557 128.5554 132.3449 134.0666
+ 141.0574 0.0000 0.0000 107.5673 124.0363 111.3961 0.0000 153.9499
+ 109.5468 130.8235 141.8228 121.3924
+ -10.2357 -17.5093 -89.5767 -96.4505 -125.7337 54.5520 -150.1788 -135.1085
+ -123.5310 0.0000 0.0000 -103.6146 157.1944 -78.8390 0.0000 -29.2772
+ -111.2696 -141.2625 -155.7146 -80.5139
+ 14 -85.24 0
+ 93.8832 91.3211 90.7895 89.9228 90.4353 91.3120 90.6942 90.6230
+ 90.9614 95.0435 93.4960 90.0797 90.3338 94.5582 97.3601 127.9805
+ 119.6863 113.5108 92.8531 93.4107
+ 122.0504 87.2832 47.4919 44.0765 43.5960 44.7584 48.3049 57.1570
+ -156.8967 100.5734 44.0066 47.2137 93.3589 -45.2876 90.3371 -82.2625
+ -109.4951 -116.0643 69.9673
+ 146.9297 128.7970 95.6379 147.1516 122.4154 126.7689 129.4991 141.2604
+ 143.1600 0.0000 0.0000 101.7268 134.2959 114.2735 0.0000 124.8820
+ 122.2368 97.5294 102.1515 123.6669
+ -9.7136 -15.1024 -88.5018 -95.6493 -126.9543 81.4081 -153.8689 -133.3561
+ -147.3168 0.0000 0.0000 -65.1583 -117.6845 -80.4041 0.0000 -123.9725
+ -131.3214 -85.2262 -107.7443 -133.6036
+ 15 -85.11 0
+ 93.9589 93.1938 125.5929 92.7790 90.7878 91.7188 90.7967 89.3437
+ 92.3916 97.5693 133.1979 134.0423 129.4145 118.3963 94.4700 124.6685
+ 116.2760 120.8454 92.5863 93.3417
+ 109.5324 102.2170 -111.2366 61.0753 32.2173 57.9091 70.6127 89.7776
+ -44.7451 83.9229 -56.0715 166.8376 161.0488 -80.3020 61.1777 -78.8767
+ -110.0842 -141.4366 96.5502
+ 139.7189 146.8983 95.6666 146.8099 108.1306 149.4429 153.9001 125.2939
+ 106.9807 0.0000 0.0000 99.5439 121.4523 113.0135 0.0000 84.3165
+ 118.5578 110.5847 103.0725 111.3771
+ -15.7046 -28.2485 -96.0368 -116.7954 -39.4676 105.1255 -171.0748 -118.9281
+ -95.0445 0.0000 0.0000 -86.0681 -80.6541 -79.2199 0.0000 -66.2904
+ -125.4145 -109.0052 -110.5402 -110.1570
+ 16 -86.44 0
+ 93.8575 91.5136 91.7157 90.6990 89.8416 89.9268 89.7152 90.1593
+ 91.7555 95.4813 92.7487 89.9398 90.3988 92.3484 94.9892 132.8391
+ 120.6588 116.4629 93.8066 93.3794
+ 102.5975 76.9248 43.9602 48.4514 43.3715 53.8041 53.7544 68.1095
+ -149.0956 74.2188 45.4211 58.1472 156.1287 -62.5018 64.7609 -98.7235
+ -160.2631 -169.1986 35.4727
+ 146.7162 142.8177 167.4717 138.7470 115.4814 121.6382 146.7980 135.1483
+ 140.2073 0.0000 0.0000 83.9729 113.6849 117.2977 0.0000 66.6830
+ 111.1707 114.7988 101.1876 116.0509
+ -11.5700 -32.1506 14.7976 -80.8863 -127.5934 -72.0496 175.6123 -133.7588
+ -127.6256 0.0000 0.0000 -89.5770 -76.0573 -161.1595 0.0000 -80.4399
+ -113.5605 -118.0795 -96.4055 -78.6913
+ 17 -85.95 0
+ 93.8200 93.1775 128.9610 91.4303 89.9864 90.0590 89.5852 91.3351
+ 91.1404 113.5557 92.9419 89.4157 88.8608 93.8934 94.3388 134.3785
+ 119.0050 121.6726 93.8496 93.4094
+ 104.4331 114.3688 -98.5989 62.8436 40.9473 61.5692 42.0149 65.4396
+ -63.6551 -174.3601 49.6757 55.4590 37.1797 -131.3763 152.3020 -107.1660
+ -110.4723 -162.8684 50.2560
+ 146.5387 143.8822 92.5477 145.2109 117.9339 127.3443 142.5834 128.1333
+ 142.0670 0.0000 0.0000 96.9749 112.0907 108.5571 0.0000 145.1985
+ 114.4006 115.1988 98.5974 130.7140
+ -22.2304 -27.9653 -95.2932 -110.7551 -99.4471 37.1582 -161.0669 -138.0783
+ -136.6112 0.0000 0.0000 -97.3504 -80.0018 -73.3851 0.0000 -76.3074
+ -120.0977 -115.1472 -99.6954 -136.2071
+ 18 -84.52 0
+ 93.9535 91.1673 89.8140 90.1954 90.2815 92.0947 91.7908 93.3990
+ 120.3451 95.9809 93.5186 90.4248 90.3732 91.7761 94.4863 129.3784
+ 117.1965 117.2843 93.2767 93.2064
+ 127.1910 86.6474 51.6486 44.2624 42.4931 55.9006 176.5714 100.0049
+ -113.7756 77.6030 45.8854 60.1568 139.8756 -72.9205 52.1112 -97.4730
+ -111.0000 -119.4298 86.0872
+ 144.9690 130.4535 100.2719 159.1962 127.8981 126.7996 137.2261 129.3143
+ 110.4756 0.0000 0.0000 88.6202 113.6941 115.6867 0.0000 110.9227
+ 116.3912 116.3660 132.2587 107.6098
+ -1.0888 -2.8716 -86.3481 -98.3322 -133.9195 92.8080 -138.4671 -115.1817
+ -81.9138 0.0000 0.0000 -86.6905 -77.4909 -150.6838 0.0000 -52.8630
+ -121.2055 -116.8418 -155.9005 -76.5109
+ 19 -86.12 0
+ 93.8977 91.2571 90.8157 89.8675 90.3505 91.4803 91.0643 91.7715
+ 93.0225 128.9245 107.7910 91.8249 91.3380 95.5380 94.7761 126.5303
+ 117.7709 119.2585 116.7142 121.7296
+ 123.0715 86.2473 47.2878 44.6244 45.5146 46.0713 43.6871 48.7657
+ -142.6258 -71.8332 -17.0343 87.0933 14.4446 -125.7365 146.0463 -82.5245
+ -108.9282 -139.8307 -118.0925
+ 146.4589 126.6091 97.1185 150.2727 122.7313 124.8558 127.4360 137.2124
+ 136.2560 0.0000 0.0000 100.9564 109.2927 106.2486 0.0000 154.9486
+ 112.4369 111.7678 130.7329 121.4900
+ -8.0516 -15.8206 -90.1126 -97.5721 -125.3808 68.7810 -144.7311 -133.3763
+ -127.9486 0.0000 0.0000 -96.6130 -77.1271 -76.5113 0.0000 -18.5887
+ -116.5212 -112.0715 -141.2160 -80.7823
+ 20 -86.35 0
+ 117.6609 117.4217 91.4198 90.7220 90.6746 91.5229 91.0108 92.4866
+ 93.0949 126.7071 136.3092 107.8054 91.1583 92.6968 123.4340 122.0012
+ 118.8101 126.3030 93.3316 93.3412
+ -172.2759 -109.4959 54.8364 41.0932 48.5159 47.8297 39.2798 58.2759
+ -76.0398 -66.7315 -31.9269 -31.7027 95.9125 7.1968 -10.0786 -67.9287
+ -138.3000 -169.9055 56.9644
+ 145.4729 147.7825 131.2493 146.4100 123.2715 135.3909 141.6149 130.7473
+ 134.1791 0.0000 0.0000 91.1308 114.0306 103.0208 0.0000 115.4597
+ 108.4400 120.3499 93.7982 112.0400
+ -17.5834 -37.9129 95.3468 -93.6522 -123.5770 34.0315 -113.7849 -131.5727
+ -137.6069 0.0000 0.0000 -79.3081 -75.2175 -80.9501 0.0000 -61.2897
+ -108.3313 -121.9003 -94.6162 -80.0410
+ 21 -85.94 0
+ 93.8475 91.6538 93.0471 90.9477 89.6034 89.4364 89.8682 92.7036
+ 91.7909 109.9952 102.4091 93.1317 94.0017 94.2851 93.1996 141.5063
+ 114.4353 120.5132 116.7370 121.8202
+ 109.6248 82.6724 37.9955 52.4150 47.5058 54.6743 42.9524 69.2222
+ -58.7929 -68.9682 -26.4382 104.7597 78.7115 -89.1735 163.4121 -92.8408
+ -103.2351 -141.4277 -118.9066
+ 147.2432 132.3674 174.3527 131.9137 117.0166 111.6132 154.0442 129.5962
+ 151.5289 0.0000 0.0000 135.5309 113.2203 110.5194 0.0000 72.4879
+ 117.7129 106.8704 131.1717 121.6965
+ -13.3456 -21.9703 177.9183 -82.4272 -130.8207 -56.9484 -173.6386 -135.2047
+ -130.3680 0.0000 0.0000 -161.8427 -77.1486 -76.4096 0.0000 -68.7620
+ -129.1228 -103.9009 -143.8575 -80.8540
+ 22 -86.90 0
+ 93.9791 91.5717 89.7643 89.8684 89.5057 89.3988 89.9581 91.0913
+ 92.6526 142.0065 93.6682 91.9920 93.0254 129.7022 119.3738 127.0145
+ 118.6424 119.3644 93.1638 93.3044
+ 115.2116 78.2922 52.1981 38.6601 49.0154 53.2836 56.0588 65.9212
+ -99.1755 -76.2523 44.2003 55.7133 -60.3561 -158.4636 164.5384 -83.1184
+ -110.4130 -139.5672 76.8533
+ 140.6189 143.3273 112.9942 163.5500 114.2112 137.2795 139.7486 130.4489
+ 147.3340 0.0000 0.0000 97.2506 112.2551 124.3726 0.0000 116.3821
+ 114.7448 110.8794 104.0211 111.6450
+ -8.0751 -17.9869 -68.6214 -148.3642 -22.5603 89.8337 -121.6953 -135.4851
+ -157.1315 0.0000 0.0000 -96.7670 -72.9861 -81.1817 0.0000 -128.3823
+ -119.9500 -110.4751 -113.6980 -78.2043
+ 23 -86.67 0
+ 93.9709 91.5911 91.1925 90.5285 89.7482 89.9756 90.4047 90.7257
+ 91.2336 93.8482 92.9103 89.7017 90.7381 93.1774 95.0606 126.0442
+ 117.3992 118.9460 93.2933 93.4156
+ 121.6464 89.4473 44.7787 46.4233 47.9414 42.9619 54.8393 43.1433
+ -116.7245 153.2262 46.6636 48.3907 53.9787 -113.3939 154.4719 -84.2315
+ -111.5608 -162.0109 72.2566
+ 142.9952 139.0018 140.0009 144.0780 122.9797 151.7191 136.2226 125.3852
+ 101.9569 0.0000 0.0000 125.6333 111.9232 111.7365 0.0000 136.6267
+ 115.3100 111.5117 101.3135 124.5662
+ -8.5124 -15.8699 112.1312 -93.1724 -128.4889 -27.1513 -150.2180 -103.7486
+ -81.5574 0.0000 0.0000 -148.7670 -76.8335 -76.7929 0.0000 -61.1231
+ -121.6960 -112.6942 -106.8324 -136.3411
+ 24 -90.76 0
+ 93.9543 91.3006 91.4246 90.3968 90.3360 91.5876 90.9852 92.5064
+ 92.8887 126.9459 136.3276 107.4217 91.3698 92.3111 124.4222 127.3929
+ 109.6079 129.2978 92.4170 93.3058
+ 125.2256 86.5511 44.8506 45.1025 45.4609 49.3279 38.4520 59.0376
+ -71.9601 -68.3691 -32.2139 -31.4636 96.1732 9.8144 -8.7868 -66.6604
+ -164.0602 -142.7393 85.2527
+ 144.1172 128.2245 126.1451 149.8831 117.9147 134.1931 142.8678 132.6388
+ 135.3247 0.0000 0.0000 90.9622 112.9646 104.5660 0.0000 117.7102
+ 95.9319 111.6110 95.7981 107.0117
+ -4.1707 -22.5445 93.9617 -93.0221 -125.8610 29.8245 -108.9601 -132.9866
+ -141.9602 0.0000 0.0000 -80.4832 -74.5438 -80.2947 0.0000 -65.6817
+ -90.2303 -109.0822 -99.1084 -81.0191
+ 25 -87.64 0
+ 93.7955 114.2243 119.4317 91.0303 89.7228 90.3364 90.3016 91.4065
+ 91.6514 102.0738 98.6973 93.6131 93.8740 125.5214 96.1538 129.9898
+ 115.1148 117.8982 93.5287 93.3354
+ 113.5425 173.4629 165.4759 54.1695 48.8403 68.3414 49.5752 99.2893
+ -26.7844 -72.1101 -23.1535 104.8155 111.6975 -99.1966 63.1262 -78.0361
+ -112.3240 -145.7855 65.1752
+ 147.9960 143.4516 103.1248 132.9732 89.1269 154.7360 144.6795 107.6558
+ 144.2210 0.0000 0.0000 133.7741 118.4548 117.1178 0.0000 151.7847
+ 91.3628 117.6731 128.8746 111.1195
+ -23.9507 -32.0665 -76.3766 -112.6284 -69.5344 -93.2862 -48.2966 -123.0325
+ -125.4219 0.0000 0.0000 -157.4282 -75.3358 -88.8458 0.0000 -14.2868
+ -88.1286 -120.8594 -152.5691 -80.2997
+ 26 -86.44 0
+ 93.8128 91.8926 90.2345 89.5014 89.6383 90.4149 90.1339 90.5608
+ 91.1660 100.2680 99.2525 93.2178 93.8466 121.5978 95.5443 129.9730
+ 118.3446 122.4344 92.5281 93.3249
+ 77.5551 82.7373 85.2624 61.2292 43.9009 60.1529 61.0530 106.6865
+ -21.2689 -73.7000 -21.3108 102.1431 120.4098 -95.0005 52.7274 -81.4320
+ -114.2542 -144.7486 77.2207
+ 147.3031 152.0279 128.9626 136.4090 98.3704 146.5235 138.1224 130.2827
+ 144.9345 0.0000 0.0000 133.4229 119.1118 117.2132 0.0000 93.7517
+ 112.7551 114.7402 100.7316 108.8340
+ -20.7851 -138.3346 -40.6043 -101.4285 -99.8370 35.9946 -51.3556 -141.5551
+ -47.4957 0.0000 0.0000 -156.3264 -75.1543 -87.5289 0.0000 -79.1270
+ -117.1033 -114.3703 -97.4013 -80.9350
+ 27 -84.40 0
+ 94.0083 92.1397 91.7931 90.8717 88.8661 88.3512 89.0499 88.7540
+ 91.5619 94.9913 95.1502 91.0768 89.3066 92.6480 96.2068 134.0506
+ 126.0125 120.3492 93.8031 93.3637
+ 120.4649 154.4814 99.7807 50.1224 48.8034 56.7244 59.4201 33.3397
+ -118.4453 128.0971 40.6804 66.8516 108.4320 -56.8958 89.2111 -84.4949
+ -162.2894 -129.4317 55.0211
+ 140.4398 144.7463 140.9382 130.4884 134.3824 91.2465 147.3034 130.2523
+ 102.8547 0.0000 0.0000 108.6769 121.3485 109.5970 0.0000 114.7978
+ 113.3431 125.6013 92.0684 113.4046
+ 10.5478 -31.5683 -107.3309 -83.4159 -140.7486 -144.7874 -33.8838 -140.6242
+ -76.9675 0.0000 0.0000 -104.5161 -126.3858 -136.7092 0.0000 -61.5786
+ -112.7001 -129.5499 -89.0256 -79.8963
+ 28 -86.15 0
+ 93.7063 92.9616 125.7366 91.6683 89.9602 90.2724 90.3719 90.7476
+ 92.5495 94.5916 128.2063 113.0701 94.7654 127.3228 96.3320 126.5981
+ 119.9265 117.0787 93.7070 93.4083
+ 90.8439 125.3515 -100.5837 60.9259 43.1830 50.9307 51.6814 44.3326
+ -113.4745 157.7227 -41.0789 -172.2354 176.1033 -49.8458 87.5003 -86.9623
+ -110.7401 -148.0669 61.9459
+ 151.1625 144.6219 93.1172 144.6075 113.9308 116.8267 149.1481 87.7184
+ 107.8170 0.0000 0.0000 125.3414 134.6908 125.0520 0.0000 99.8138
+ 114.9543 114.6878 94.5012 128.6089
+ -29.5940 -34.0577 -100.9184 -104.3658 -60.6153 -42.0335 -132.8499 -65.8167
+ -81.5999 0.0000 0.0000 -134.2649 162.5913 -156.4991 0.0000 -107.8992
+ -119.9745 -117.1677 -97.4510 -134.0076
+ 29 -85.74 0
+ 93.9345 109.8808 118.1243 90.7353 89.8898 89.7762 90.3908 93.1398
+ 92.8745 126.3152 142.3990 107.4394 91.6678 91.5531 115.0357 131.4985
+ 119.4620 119.7952 93.4386 93.3402
+ 124.6805 171.3321 167.6705 67.2037 56.6559 62.0462 28.4301 68.8758
+ -39.5532 -87.2536 -28.3546 -23.7978 96.5959 0.6211 -17.0963 -74.2024
+ -117.7463 -165.5336 58.0698
+ 144.5062 143.2607 102.1374 129.3289 123.0319 117.0635 148.3398 132.2068
+ 137.0097 0.0000 0.0000 95.3452 121.8954 106.0355 0.0000 139.9854
+ 108.7005 125.0910 103.7346 112.8833
+ -10.1098 -29.6041 -74.4124 -113.3392 -126.0946 4.1205 -134.4071 -135.0245
+ -115.3377 0.0000 0.0000 -88.0068 152.1588 -78.0046 0.0000 -71.3569
+ -109.6074 -131.0174 -97.9212 -79.2224
+ 30 -86.23 0
+ 93.8798 91.5113 91.6704 90.6529 89.9134 90.6547 90.3924 92.0126
+ 92.4665 125.5135 121.0997 112.4346 92.4405 94.0588 96.4123 121.7553
+ 115.0564 118.8203 93.2656 93.3719
+ 115.6274 81.2196 41.7657 45.8374 43.1057 54.8522 36.6769 62.1623
+ -56.7149 -53.1874 -16.5213 -149.4373 99.5526 26.1616 61.8620 -83.5886
+ -105.6660 -144.1863 47.9314
+ 146.0400 135.0171 130.6168 144.3729 118.1599 124.2724 148.0299 128.6134
+ 131.8683 0.0000 0.0000 90.2531 138.8756 113.6880 0.0000 108.5762
+ 123.1626 108.4682 102.0815 113.6265
+ -11.3827 -26.6098 111.4109 -90.5459 -123.5896 27.0139 -174.1785 -131.6289
+ -126.8426 0.0000 0.0000 -70.2806 -50.5950 -76.5371 0.0000 -53.0569
+ -132.2928 -107.0025 -114.9527 -80.2245
+ 31 -83.73 0
+ 93.8461 91.5009 92.7476 92.2700 91.1624 91.9536 90.3390 91.3153
+ 91.4748 95.7358 137.4590 131.2022 93.7138 94.7485 127.9488 125.1506
+ 116.5571 117.5137 93.5494 93.2887
+ 108.7520 76.9923 40.1507 57.7463 34.5643 60.1571 49.2885 75.9309
+ -78.3489 168.5673 -60.0038 159.6401 97.5436 -17.3501 -31.1107 -83.7306
+ -107.3818 -142.7737 82.1940
+ 147.7980 138.4892 176.4610 139.6556 119.1543 107.9719 143.8577 134.7536
+ 104.7748 0.0000 0.0000 102.1724 114.7741 114.3306 0.0000 104.8977
+ 116.9804 110.8472 106.3902 112.6469
+ -11.6773 -41.2694 -174.6114 -88.4548 -133.0592 -80.6529 -173.0756 -129.4854
+ -73.6705 0.0000 0.0000 -92.9167 -76.5135 -77.3840 0.0000 -54.9930
+ -121.9839 -112.6678 -106.9056 -76.5364
+ 32 -86.21 0
+ 93.9982 91.4585 90.1301 89.7141 89.7288 90.4095 90.3899 90.7526
+ 92.4026 95.1406 121.0285 115.6457 94.1436 138.9281 94.6757 125.7960
+ 116.7059 121.4305 92.5190 93.3616
+ 125.2633 91.4039 50.6059 42.6367 49.8286 45.9715 51.6857 44.0095
+ -159.0448 70.4296 -72.5481 144.5259 74.9661 -113.0497 73.0779 -70.0652
+ -107.6815 -145.4954 57.8016
+ 141.6152 135.7069 129.8661 149.1294 123.9537 125.2969 136.5210 136.3317
+ 113.0407 0.0000 0.0000 129.7843 108.7832 123.7179 0.0000 116.0145
+ 118.8300 108.2730 102.7777 108.4404
+ -3.5207 -13.2048 108.3208 -94.4919 -132.3648 18.9753 -127.5122 -134.1967
+ -85.0969 0.0000 0.0000 -139.6708 -76.7372 -86.1209 0.0000 -107.1122
+ -127.5206 -105.9022 -114.1900 -83.4956
+ 33 -86.23 0
+ 93.9511 91.4763 91.7706 89.6915 89.7256 90.1792 89.8965 92.8965
+ 92.8681 119.7402 120.7470 93.2757 95.2409 95.2822 139.6918 133.1795
+ 118.8874 123.3078 92.8391 93.3421
+ 124.3256 89.5153 46.7467 45.3613 53.6839 59.9035 34.0957 75.7908
+ -49.9435 -72.0816 -69.2401 58.8596 57.8036 -10.1374 -21.5603 -69.4161
+ -107.2445 -146.8058 65.2221
+ 143.8756 132.0762 128.6680 145.2528 119.7088 116.9916 147.2953 130.9864
+ 141.6051 0.0000 0.0000 135.5672 112.6343 143.2948 0.0000 129.5498
+ 117.9331 106.7987 97.6001 109.5100
+ -5.7235 -19.6739 84.7153 -94.7985 -127.5427 22.6943 -134.4380 -134.7606
+ -126.9278 0.0000 0.0000 -164.8303 -75.8201 -57.5000 0.0000 -67.5866
+ -124.2026 -104.2580 -104.0904 -81.7216
+ 34 -85.35 0
+ 119.8641 113.9118 91.4055 90.1379 90.1362 90.8722 90.6169 91.6777
+ 91.6351 122.1485 119.3207 92.8576 92.9600 129.1235 94.8956 130.7710
+ 117.5799 121.6269 93.1166 93.3409
+ -104.4744 -110.7742 61.5940 43.5423 47.4691 47.1426 45.1041 66.7230
+ -79.5880 -89.8019 -38.3961 73.1261 92.1837 -105.0825 77.3592 -62.5449
+ -106.4950 -144.8717 63.0995
+ 104.4766 142.3408 128.3431 146.9773 120.6433 137.7536 136.3846 134.5005
+ 132.1270 0.0000 0.0000 135.3498 112.1442 118.6480 0.0000 146.4029
+ 108.4567 115.1545 102.2448 111.5813
+ -73.6021 -35.5191 111.0291 -95.6784 -113.8352 26.1290 -141.8864 -133.2751
+ -131.3539 0.0000 0.0000 -161.6395 -76.3671 -85.3626 0.0000 -58.3422
+ -111.9127 -114.9239 -114.1236 -80.1030
+ 35 -86.24 0
+ 93.8570 91.8350 90.3755 90.3946 90.2018 91.0956 90.9427 91.4616
+ 93.2098 93.9841 130.7305 93.6544 126.0512 128.3545 119.7312 129.1151
+ 119.5518 118.8917 93.1845 93.2850
+ 91.6168 89.6363 50.0035 39.2728 46.2851 45.8361 45.4465 47.5044
+ -169.6781 135.5874 -37.2891 84.0351 -107.3705 -85.6137 -173.4075 -84.3861
+ -109.1250 -137.9682 83.2472
+ 145.8335 136.5247 106.9965 168.8479 128.9383 136.0904 133.2331 139.6297
+ 146.7691 0.0000 0.0000 98.8789 121.0717 121.6890 0.0000 113.7212
+ 116.8589 110.5829 105.8074 111.0232
+ -15.5054 -18.2132 -76.2686 -137.6077 -112.5605 84.4431 -111.1934 -142.5035
+ -21.0429 0.0000 0.0000 -100.4762 -77.0532 -80.1847 0.0000 -125.3797
+ -122.4449 -110.1052 -114.8556 -77.4377
+ 36 -88.22 0
+ 93.8931 91.3115 90.5604 89.7432 89.9088 90.8134 90.0343 90.8718
+ 92.0023 95.4175 125.9370 110.4379 121.5614 94.6461 96.3711 123.0681
+ 118.5289 118.3584 93.5285 93.3048
+ 121.6758 86.5984 49.2527 44.1431 46.4578 50.1777 46.0269 57.1517
+ 170.6398 103.4632 -51.2611 173.4317 177.4168 30.6558 70.3062 -79.0001
+ -111.5403 -143.3496 74.5851
+ 146.2878 128.2161 95.6473 150.2733 121.4463 124.5031 127.7213 133.3111
+ 140.8694 0.0000 0.0000 132.0909 119.0511 115.9088 0.0000 146.9037
+ 108.9318 115.9295 133.4521 113.1487
+ -9.5890 -13.7838 -90.3930 -96.9203 -127.6312 48.5416 -154.4482 -135.7100
+ -122.1605 0.0000 0.0000 -145.7693 -80.6849 -76.3641 0.0000 -94.6391
+ -111.2271 -118.1139 -159.0001 -77.2990
+ 37 -86.70 0
+ 93.7616 93.1042 124.8211 91.3926 89.9384 90.2467 89.9214 90.9036
+ 91.9594 95.7478 130.5409 110.8328 92.9297 94.5846 97.0342 128.8505
+ 118.1591 117.2387 93.8191 93.4160
+ 106.2716 126.6579 -95.7071 55.7129 42.6448 55.0158 47.9283 60.0845
+ -109.2073 157.0728 -67.8588 148.6521 103.8133 29.5700 66.8478 -105.9616
+ -109.0591 -148.4583 51.0412
+ 150.7347 139.3616 93.2016 144.4239 121.3113 118.0654 154.3077 83.2245
+ 113.0522 0.0000 0.0000 129.7782 138.1126 114.1190 0.0000 140.6689
+ 117.1210 112.1450 100.6763 128.3987
+ -20.7942 -30.8829 -94.3423 -109.8667 -83.6148 -28.5983 -118.2667 -67.5562
+ -80.3442 0.0000 0.0000 -142.4569 -168.9152 -77.8255 0.0000 -122.5009
+ -123.9543 -113.4221 -105.6805 -144.2728
+ 38 -87.22 0
+ 94.0006 91.3393 89.8909 90.0584 90.4068 91.3046 90.5864 89.8932
+ 92.1398 97.0789 132.7656 136.7038 126.1812 118.8156 95.2652 125.5287
+ 120.8454 120.3208 93.3214 93.2929
+ 128.3211 90.2902 51.1759 41.1956 41.8457 49.3861 69.5388 92.4566
+ -45.2841 82.0692 -59.2747 162.1993 173.8727 -74.6549 59.5627 -81.9531
+ -166.5539 -162.3055 98.2888
+ 142.7648 135.0810 104.0404 155.3007 126.0833 130.5668 139.2563 131.0436
+ 106.0948 0.0000 0.0000 96.4281 122.9173 117.3815 0.0000 148.1391
+ 112.0583 115.9850 103.7192 109.4731
+ 1.8644 -14.2420 -79.0964 -101.8210 -124.7811 96.9339 -130.8633 -116.2334
+ -87.5645 0.0000 0.0000 -80.2759 -78.6492 -79.6013 0.0000 -39.8237
+ -115.0943 -114.4581 -104.0957 -77.4566
+ 39 -83.72 0
+ 93.8893 91.5616 91.5267 91.1773 90.3218 91.1318 90.7820 90.7819
+ 92.7622 93.1311 93.0692 89.2725 91.2533 95.3583 137.2628 134.0088
+ 117.6401 121.2185 92.4516 93.2460
+ 119.3450 82.8401 46.2928 42.4030 47.9506 42.7048 61.3091 35.0444
+ -120.7720 152.6118 53.2748 43.2711 54.7971 -49.3053 -16.1675 -83.4613
+ -109.2956 -137.6179 91.2923
+ 146.0361 137.2220 132.5699 149.1370 119.1740 157.2130 134.8124 124.0753
+ 94.7591 0.0000 0.0000 108.8340 108.5734 117.5538 0.0000 92.4368
+ 117.1023 107.3126 104.1622 107.6107
+ -10.3980 -27.8126 113.9111 -97.6640 -114.5794 -6.7980 -118.8337 -105.8388
+ -82.7363 0.0000 0.0000 -118.6940 -78.2402 -76.3721 0.0000 -63.1419
+ -123.6235 -103.8253 -112.6456 -77.6473
+ 40 -90.34 0
+ 115.8288 91.7887 91.9770 91.0723 90.1790 90.7762 90.6071 92.0443
+ 90.2518 102.2087 97.9784 92.8547 94.4414 121.9913 94.6777 130.3761
+ 118.8873 118.1092 93.7322 93.4173
+ -50.8887 80.8054 42.2371 43.9297 42.5422 49.7034 46.2957 75.5095
+ -65.1109 -65.6110 -33.3800 104.7389 103.9590 -96.5297 79.4540 -69.1420
+ -109.9390 -160.5112 57.9489
+ 110.3393 132.6448 99.9921 147.0846 117.7528 163.2378 133.2719 136.2205
+ 132.3429 0.0000 0.0000 140.3751 113.2807 118.6922 0.0000 126.6101
+ 107.3336 112.2446 103.3400 125.5727
+ -82.0457 -28.6393 -82.5462 -94.0705 -118.6150 36.0495 -167.3487 -130.4068
+ -135.8011 0.0000 0.0000 -169.6816 -77.2169 -77.5735 0.0000 -88.8979
+ -110.7301 -114.1430 -113.7137 -142.7125
+ 41 -87.38 0
+ 93.8983 91.5228 90.4401 89.8858 90.3954 91.0893 90.7257 92.1642
+ 90.8528 111.0415 116.3003 92.7100 93.0655 93.5866 114.9967 125.8413
+ 117.0798 120.6140 92.9316 93.2365
+ 120.5181 88.2085 49.1657 43.0074 44.9113 47.1165 43.8275 70.6904
+ -67.2156 -62.7588 -60.7893 66.4296 96.0222 -36.9973 -24.4007 -84.7726
+ -111.1922 -107.3572 79.7967
+ 145.6042 132.1060 91.8854 148.2115 121.3506 150.1373 131.3557 136.1265
+ 137.6664 0.0000 0.0000 135.0450 113.3874 111.0181 0.0000 79.6686
+ 118.0510 114.5389 92.2915 106.9243
+ -10.7017 -16.4651 -84.2497 -97.0387 -127.1787 40.6063 -145.8750 -134.7912
+ -114.9577 0.0000 0.0000 -161.9417 -76.3993 -80.8663 0.0000 -67.2525
+ -124.3340 -111.3825 -103.3452 -78.6667
+ 42 -85.64 0
+ 93.7050 92.8493 91.4975 90.9444 90.0074 90.9958 90.4051 91.9229
+ 92.1107 118.7045 129.0770 104.7920 91.6240 92.3605 118.3257 129.2928
+ 117.1973 119.4374 117.9659 121.9516
+ 33.8863 163.3627 80.7452 40.5526 49.5164 51.9782 40.8670 61.5115
+ -70.9508 -60.8157 -44.9324 -31.1693 99.1801 9.5892 -7.4293 -76.6528
+ -105.0713 -111.1914 -118.9608
+ 108.0262 140.9491 142.2071 150.6894 127.3593 129.0112 138.9491 127.7101
+ 131.8365 0.0000 0.0000 93.4313 122.3396 107.9330 0.0000 96.4479
+ 124.5190 109.3650 115.7465 121.5456
+ -81.0897 -19.0801 95.5335 -96.5258 -60.5626 35.5039 -134.6407 -132.7856
+ -132.7933 0.0000 0.0000 -86.8384 142.8276 -79.6521 0.0000 -56.9495
+ -131.3434 -109.1319 -121.4895 -81.2114
+ 43 -86.87 0
+ 93.8794 91.2778 90.6980 88.3348 88.7970 89.1019 90.0939 91.7531
+ 93.0722 138.0507 94.0173 92.0862 93.6240 122.8181 115.9694 129.7924
+ 115.9006 120.7270 93.1327 93.3517
+ 121.8362 90.0151 48.2476 49.0392 57.4430 49.7894 45.3381 64.5256
+ -165.0638 -55.3391 48.1354 52.9249 -61.9347 -100.8264 170.3622 -104.6091
+ -109.2856 -152.0998 56.1079
+ 147.0455 128.8370 97.3583 142.6427 125.9541 116.1874 140.4705 127.8472
+ 142.5778 0.0000 0.0000 96.0112 109.4945 118.5569 0.0000 114.9961
+ 120.0155 111.0412 101.8068 111.3496
+ -10.3530 -9.6839 -90.0055 -95.8400 -141.5004 51.8247 -89.8403 -137.0279
+ -141.6359 0.0000 0.0000 -96.0379 -77.0900 -79.6640 0.0000 -49.4702
+ -127.7891 -109.9853 -105.4652 -80.9728
+ 44 -87.55 0
+ 93.8552 91.7189 91.5242 89.2888 88.9051 88.4316 89.6201 92.0747
+ 91.1531 110.0953 102.2300 93.1419 93.5919 94.8755 95.0222 131.9405
+ 119.1827 118.6522 93.7326 93.3138
+ 113.2027 89.2910 44.0200 47.3724 51.0796 52.3283 44.1011 71.5089
+ -57.3636 -70.2798 -24.2960 105.3153 91.0401 -95.1799 114.4936 -75.8414
+ -106.9378 -138.3450 77.9747
+ 145.2298 136.9585 176.0632 133.1183 119.2685 117.0076 158.3298 127.9915
+ 145.0258 0.0000 0.0000 135.7641 114.3422 116.2679 0.0000 154.6123
+ 105.0087 108.7518 124.4053 111.8139
+ -14.6564 -12.0747 173.5002 -84.3444 -136.1916 -46.7664 -171.1067 -135.5288
+ -122.5665 0.0000 0.0000 -161.0360 -76.4312 -72.3542 0.0000 -16.2925
+ -104.0123 -108.3872 -146.9700 -78.0844
+ 45 -85.69 0
+ 93.8987 91.2492 90.0684 89.3148 90.0808 90.7210 90.7101 92.7303
+ 92.4753 116.5707 92.9375 89.7909 89.6503 93.5448 94.6477 127.6838
+ 118.1475 119.4308 93.2261 93.3120
+ 122.6964 88.7082 51.2181 44.1773 44.9752 51.1010 38.2899 64.5532
+ -43.7760 -156.0355 46.0516 48.8452 45.3721 -172.2018 120.9498 -80.3424
+ -108.2710 -141.1988 72.8262
+ 146.2821 130.2806 96.7244 149.9042 126.8713 128.1411 134.6156 130.7307
+ 142.9147 0.0000 0.0000 97.7796 112.6439 116.1288 0.0000 115.4097
+ 116.9452 111.1918 103.3646 112.4633
+ -8.5423 -6.0811 -88.8660 -100.2920 -135.6494 74.6136 -145.0442 -134.3500
+ -149.6172 0.0000 0.0000 -97.3776 -78.7265 -78.3436 0.0000 -98.7332
+ -123.9064 -110.7301 -113.2314 -78.1411
+ 46 -86.81 0
+ 93.8952 91.3194 90.5930 89.7213 89.8931 90.7816 90.0572 90.8792
+ 91.9695 95.4589 124.9692 110.1855 121.2025 94.5206 96.4313 124.2779
+ 118.9179 118.8333 116.0236 121.7097
+ 121.8812 86.7440 48.9296 44.1791 46.5175 49.8695 46.5804 56.9777
+ 169.5419 104.1445 -51.1217 172.6316 177.5236 31.7663 71.4998 -80.7530
+ -112.4539 -142.3103 -118.3153
+ 146.2363 128.4464 95.9629 149.9816 121.4509 123.6626 127.7177 133.7567
+ 141.6966 0.0000 0.0000 132.1414 119.5794 115.8910 0.0000 149.8487
+ 108.2852 112.7971 134.7392 121.5684
+ -9.3802 -14.5387 -90.4547 -96.6279 -127.4825 50.0460 -155.0942 -135.6878
+ -123.3944 0.0000 0.0000 -145.9849 -79.9266 -76.3542 0.0000 -96.9112
+ -110.4499 -114.0827 -147.9658 -80.7067
+ 47 -87.80 0
+ 93.8406 91.4221 91.6003 90.3571 88.9875 88.8377 89.8166 90.2420
+ 91.6662 94.7955 93.4179 89.7034 89.9614 92.9666 96.6956 128.2436
+ 117.7623 118.1485 93.2320 93.3426
+ 119.0469 89.5516 39.4555 54.5491 52.0393 48.5034 47.5006 52.3897
+ -175.1319 70.8331 44.1844 49.2715 77.3298 24.1365 65.7182 -89.6987
+ -108.2109 -144.7701 59.3871
+ 148.3692 130.8682 90.5989 130.6686 125.4083 111.4483 165.7910 133.6494
+ 137.6141 0.0000 0.0000 96.3315 117.3985 113.1730 0.0000 131.2078
+ 119.7727 110.7069 102.7372 112.2798
+ -13.7326 -10.7695 -81.3145 -82.3999 -139.6977 -45.2338 -154.0715 -134.6890
+ -123.6696 0.0000 0.0000 -80.7871 -79.3908 -78.3307 0.0000 -87.1816
+ -127.5638 -111.3774 -103.2324 -79.9113
+ 48 -87.70 0
+ 118.6909 112.1450 93.5565 90.2146 89.6075 90.6217 90.5951 91.8920
+ 90.9528 108.9516 101.3718 93.1006 93.1435 125.8557 95.5789 125.7938
+ 120.2859 119.3730 118.3039 121.8907
+ -89.2518 -167.1681 68.9730 47.3670 45.9105 51.1872 41.2244 72.5195
+ -60.4549 -69.9368 -26.2458 100.1327 104.3572 -88.1958 77.3398 -76.6008
+ -112.1445 -135.0646 -118.7034
+ 110.0395 153.2946 139.7135 146.7900 116.4335 157.5346 133.5716 102.2803
+ 130.5996 0.0000 0.0000 137.5362 115.1676 131.4429 0.0000 135.8206
+ 112.0448 109.8319 119.4698 121.5486
+ -80.0979 -15.8981 116.1296 -96.0746 -74.9957 -10.0506 -167.5625 -97.7040
+ -136.4697 0.0000 0.0000 -164.0843 -78.6446 -155.5445 0.0000 -87.8231
+ -116.9742 -109.9221 -123.4656 -81.0722
+ 49 -83.77 0
+ 93.9481 91.7449 90.1085 89.5657 90.0613 91.3575 90.8852 95.4618
+ 128.1774 133.2533 93.6554 101.0377 117.3533 120.9285 120.0868 126.2139
+ 119.0344 118.7595 93.1668 93.3160
+ 108.6456 81.1518 48.7642 41.5803 49.4495 70.8682 78.0787 -114.1348
+ 175.6995 -65.8894 41.5835 -142.8854 175.1494 -165.9669 166.2985 -87.8022
+ -110.9203 -141.4259 72.3353
+ 141.6602 141.3618 112.2003 151.1856 121.8123 118.3048 146.1083 93.2937
+ 150.2182 0.0000 0.0000 86.3260 120.7653 120.8657 0.0000 111.8060
+ 114.2745 113.0687 104.7635 111.9982
+ -9.8763 -14.1515 -70.3378 -109.6192 -123.3368 50.1926 -142.2658 -102.3288
+ 1.0292 0.0000 0.0000 -73.8623 -79.4614 -78.5657 0.0000 -126.9001
+ -118.8415 -113.8174 -113.5345 -78.6195
+ 50 -85.11 0
+ 93.8948 91.3883 90.4926 89.9422 90.3974 90.6154 90.5233 92.1458
+ 91.7394 105.0682 94.8405 95.3572 94.3607 92.5417 95.1788 110.5663
+ 119.4773 119.4379 93.5204 93.3421
+ 122.2313 87.4420 49.6146 42.8761 44.9253 51.0518 40.0892 92.0700
+ -16.1170 -73.1210 -13.2620 159.3171 149.0591 43.8645 80.1181 -65.4786
+ -108.3166 -135.2657 56.2119
+ 146.3578 130.0737 95.3863 149.9240 126.8394 149.7239 133.3010 131.4451
+ 145.8700 0.0000 0.0000 98.2207 109.8555 115.9443 0.0000 122.6259
+ 118.5534 111.9091 95.0959 114.5578
+ -9.1241 -15.1094 -87.5165 -98.3793 -119.0245 44.6286 -149.7216 -136.2126
+ -42.2161 0.0000 0.0000 -95.8910 -80.5081 -77.6466 0.0000 -56.6912
+ -124.0783 -112.1347 -103.2283 -78.3961
+ 51 -86.88 0
+ 93.6948 92.9299 125.1424 91.3541 89.8562 90.7520 90.8436 91.4225
+ 93.0481 93.3466 125.3719 92.6654 92.1571 93.5196 96.9993 128.6619
+ 119.2569 118.8028 93.7376 93.4137
+ 96.0480 136.9805 -90.9577 55.8562 42.8521 46.7208 58.9893 35.8655
+ -114.9359 150.6186 -22.1365 77.8756 108.5837 21.0927 77.8595 -85.7291
+ -111.6220 -146.7470 39.9990
+ 153.5676 145.3585 90.0918 148.0138 111.1893 163.5226 135.7851 140.0442
+ 105.2428 0.0000 0.0000 82.8274 113.5911 114.4426 0.0000 135.1768
+ 113.1906 113.2637 94.7333 113.7056
+ -25.1641 -25.0294 -102.4892 -109.7557 -33.0483 114.7315 -56.8576 -125.9743
+ -79.4492 0.0000 0.0000 -86.7155 -76.9175 -78.7409 0.0000 -98.2945
+ -118.2119 -114.5113 -98.9904 -81.6854
+ 52 -86.09 0
+ 93.8066 93.0461 133.1225 92.8908 90.8812 91.2181 91.6588 92.1477
+ 91.7780 94.6734 136.0450 113.9380 93.9643 114.7880 96.1020 132.5302
+ 116.8944 120.8120 93.1023 93.2859
+ 115.9218 112.7039 -107.6057 69.7478 53.5582 71.8217 155.8828 93.8348
+ -68.5662 165.0890 -53.2078 178.5548 113.3650 -94.2891 86.9483 -82.3816
+ -107.6445 -117.7371 76.0037
+ 149.5277 138.3575 96.1249 132.7630 119.2191 96.7790 160.9620 130.8464
+ 104.3350 0.0000 0.0000 121.5063 114.6881 115.9657 0.0000 88.3085
+ 119.1140 111.0177 95.4197 109.6347
+ -16.3789 -34.2877 -88.6546 -123.0097 -23.2398 -64.2924 -115.3698 -125.2684
+ -83.1206 0.0000 0.0000 -128.1638 -77.2728 -80.1211 0.0000 -64.0370
+ -124.9832 -109.9559 -111.3671 -78.9350
+ 53 -85.02 0
+ 93.8889 91.3405 90.9678 90.1397 89.9757 90.6589 89.7885 90.6136
+ 92.1892 95.8545 126.9317 93.6090 135.8473 115.5580 95.0491 122.2899
+ 122.7490 97.0499 93.7930 93.3137
+ 121.1712 86.2581 47.5551 43.8981 45.8098 52.1324 44.7833 57.3499
+ 177.3230 150.5261 -32.3745 84.7199 -105.3872 -59.0945 72.5397 -94.0598
+ -165.2127 -171.6318 80.3426
+ 146.5016 128.3677 94.7179 148.4828 119.5712 131.7795 129.3482 131.4211
+ 139.6153 0.0000 0.0000 93.3156 119.2378 116.4362 0.0000 74.2642
+ 126.5004 101.6222 130.8777 113.1850
+ -9.9104 -14.9033 -89.3832 -95.7820 -126.2824 46.4498 -161.8481 -134.6694
+ -121.0594 0.0000 0.0000 -86.0936 -77.6090 -79.0913 0.0000 -72.5703
+ -133.6946 -92.5118 -158.0221 -77.2292
+ 54 -84.27 0
+ 93.9579 91.3995 91.8905 90.3326 90.5186 92.4962 92.3580 92.9484
+ 93.0254 119.9431 134.8436 105.2650 91.4678 92.4092 117.7711 125.0089
+ 118.8204 118.3217 93.2099 93.3353
+ 127.9087 87.4477 44.5881 45.2932 42.8117 97.2968 -54.5659 93.8526
+ 10.0031 -150.2774 -39.1623 -29.0654 98.4313 -1.0738 -24.4467 -81.8468
+ -116.5363 -162.0138 62.6397
+ 144.9870 137.9227 118.8610 147.1144 118.2868 155.4581 144.0505 126.6820
+ 89.4177 0.0000 0.0000 95.4284 115.0589 108.4985 0.0000 96.1820
+ 112.7828 120.9930 103.8089 111.8413
+ 0.2849 -32.7016 101.5907 -93.3514 -124.6590 114.2699 -50.7453 -108.7335
+ -94.8879 0.0000 0.0000 -84.0860 -76.0488 -78.7217 0.0000 -114.1181
+ -116.4242 -125.3446 -100.6246 -79.8504
+ 55 -85.44 0
+ 93.7123 93.1333 105.2241 91.9550 90.1264 91.8189 90.6597 92.2511
+ 91.8726 119.3249 130.3170 105.8834 91.6201 91.8409 119.7045 126.3511
+ 116.4003 118.4751 93.3817 93.4088
+ 47.5681 168.2897 172.1890 62.5696 41.9529 54.0257 37.0768 62.6181
+ -72.6157 -66.5754 -43.1361 -27.9558 97.7796 5.6667 -12.8914 -76.9478
+ -105.2541 -138.2071 69.2089
+ 108.9800 139.6751 116.5255 140.7348 115.8470 133.5083 144.9703 130.6808
+ 130.6141 0.0000 0.0000 92.2195 133.0329 106.5455 0.0000 98.4191
+ 118.4305 137.7643 95.2869 126.8783
+ -80.5459 -37.6386 -75.4931 -106.5258 -111.8081 34.8402 -123.7345 -134.3295
+ -130.8884 0.0000 0.0000 -83.2492 137.9127 -79.1200 0.0000 -58.5098
+ -122.5654 -147.9339 -104.0663 -130.7579
+ 56 -85.51 0
+ 93.8919 122.1299 93.1083 91.0453 89.5909 90.6081 90.2501 92.1129
+ 92.3921 123.4594 120.9330 112.8420 128.0255 93.9811 95.7831 111.8924
+ 117.9645 119.3224 93.1569 93.3079
+ 123.2807 178.1097 77.0650 44.3406 47.2114 54.5257 36.7398 59.9602
+ -61.1071 -56.6759 -17.4727 -142.1153 -146.2352 38.9932 61.2705 -72.2346
+ -109.9382 -142.7359 72.1356
+ 145.1149 160.5501 153.1566 146.8208 129.8418 128.6589 139.9071 127.4823
+ 134.8155 0.0000 0.0000 92.6090 116.1061 115.8054 0.0000 143.6939
+ 110.5628 113.8371 107.4248 112.7127
+ -16.7939 -9.9957 107.3228 -92.3603 -92.1023 30.1411 -170.2989 -132.1635
+ -112.0188 0.0000 0.0000 -81.8054 -78.2502 -76.3940 0.0000 -20.8406
+ -111.7979 -114.6202 -114.6391 -77.9433
+ 57 -85.21 0
+ 93.7667 93.1881 129.5293 91.6892 90.6065 90.6590 90.1268 91.6589
+ 91.7997 115.5428 92.6605 89.7027 89.4488 94.2246 94.1278 130.2864
+ 118.5197 120.0854 118.8330 121.8848
+ 100.4974 118.0164 -102.9032 62.5678 41.4864 55.5194 40.3645 69.9919
+ -40.6638 -156.0667 47.3649 49.2639 45.5695 -176.7255 116.7325 -78.4567
+ -107.7069 -136.8484 -118.4602
+ 148.8346 142.9560 89.8153 142.9147 113.0867 141.3156 140.0924 131.4111
+ 141.3744 0.0000 0.0000 97.7851 110.0498 112.9523 0.0000 111.3688
+ 115.9005 111.3134 117.6262 121.4458
+ -25.3228 -27.8992 -96.4485 -109.0758 -91.0184 42.7787 -145.5665 -137.6742
+ -129.7110 0.0000 0.0000 -97.5687 -74.2245 -77.4954 0.0000 -100.4586
+ -122.5315 -110.6817 -121.7718 -81.1173
+ 58 -84.30 0
+ 93.7237 92.9983 126.0544 91.6621 90.0393 90.4566 90.4044 90.7757
+ 92.4889 94.5658 127.0086 111.6277 94.5452 126.6278 96.3867 127.7675
+ 120.6507 118.0316 120.9403 120.2439
+ 89.6077 126.1652 -100.5391 60.2407 42.5495 50.7197 51.6158 44.5512
+ -113.8413 156.9627 -41.0077 -172.6251 173.2615 -48.8971 93.3183 -87.1097
+ -110.2433 -136.9201 -104.1876
+ 150.3499 143.9615 93.7048 145.8125 113.0550 116.4655 150.7280 87.3683
+ 107.7292 0.0000 0.0000 125.2418 134.6724 125.1541 0.0000 105.6966
+ 117.2715 111.6539 111.2315 118.4309
+ -28.9662 -30.7107 -101.4369 -107.2936 -61.4481 -41.0407 -130.7902 -66.0783
+ -81.5586 0.0000 0.0000 -134.9142 168.9449 -156.5475 0.0000 -112.2885
+ -122.9424 -112.5261 -111.7441 -79.6621
+ 59 -88.27 0
+ 93.7057 92.9669 92.0227 89.8592 89.3340 90.5526 90.5071 91.7447
+ 90.8921 109.2365 101.5461 93.0010 93.0810 124.9753 95.6694 125.5863
+ 119.8201 119.5778 118.3612 121.8922
+ 45.3286 173.0292 78.5280 49.1548 45.1831 52.0240 41.6414 72.7784
+ -59.3440 -70.2396 -26.2359 99.9072 104.4842 -86.5316 76.2727 -79.7118
+ -110.9967 -134.4907 -118.7112
+ 109.2269 144.8203 149.8864 144.8714 115.3443 154.8465 135.0717 102.4666
+ 131.0082 0.0000 0.0000 138.9054 115.0824 131.7478 0.0000 136.8989
+ 116.1666 109.3929 118.8990 121.5468
+ -81.1029 -19.9420 108.6629 -96.7385 -69.2919 -13.6090 -166.6013 -97.5330
+ -136.8151 0.0000 0.0000 -166.1437 -78.6073 -156.7006 0.0000 -89.9407
+ -121.9153 -109.1035 -123.1773 -81.0756
+ 60 -87.24 0
+ 93.8851 91.2775 91.0706 90.3755 90.3086 91.0327 90.1369 90.4298
+ 92.1545 96.2802 137.6647 123.6673 89.9760 92.2440 114.3603 127.8930
+ 119.4342 109.9964 93.3290 93.3470
+ 122.0781 84.6843 47.2389 43.0626 45.4171 50.3725 50.6762 43.7626
+ 165.5387 102.5307 -74.0193 -71.2741 82.0986 17.6865 -27.4393 -82.5111
+ -116.9695 -170.4882 51.2833
+ 146.9691 124.4492 95.4421 150.5799 117.2000 126.6106 131.8746 135.2534
+ 141.2750 0.0000 0.0000 107.6725 123.5185 111.4897 0.0000 151.0047
+ 107.4524 129.8414 112.9006 114.0396
+ -9.1014 -19.0647 -89.4687 -96.1035 -125.2644 59.4678 -147.8137 -134.5364
+ -129.5294 0.0000 0.0000 -103.8975 156.1602 -78.6724 0.0000 -30.4228
+ -107.9159 -144.4038 -107.5512 -78.7126
+ 61 -86.01 0
+ 93.8924 91.3352 90.5710 89.5828 89.7927 90.7902 90.2564 91.6164
+ 93.0744 94.8963 115.0481 101.9946 94.7542 94.2931 96.0647 119.9435
+ 116.8506 118.5954 93.6104 93.3013
+ 121.6584 86.2561 49.2582 43.7027 47.6723 51.2966 44.3950 61.4962
+ 168.5043 111.7374 -24.7572 177.3310 123.4479 22.1405 63.2261 -61.5238
+ -104.9104 -139.9717 76.4667
+ 146.3342 128.7038 95.2013 150.6942 121.4172 121.4382 127.9515 131.2165
+ 145.2890 0.0000 0.0000 135.1748 139.1046 115.1161 0.0000 151.4108
+ 108.7563 112.9066 129.4834 112.5672
+ -9.5494 -14.8099 -89.7269 -96.9017 -126.7262 50.4689 -154.1001 -136.0333
+ -126.5116 0.0000 0.0000 -156.1377 -37.8050 -77.5504 0.0000 -80.6898
+ -111.0387 -114.1205 -153.1913 -77.4538
+ 62 -84.57 0
+ 93.7939 92.0571 90.8513 89.4540 89.4705 90.2764 90.6897 91.3423
+ 93.4256 120.2361 100.1187 98.6322 133.4633 119.0580 124.8626 128.3823
+ 117.4353 120.4546 93.0151 93.3167
+ 55.4099 101.6653 51.1334 42.2909 51.1079 45.8631 51.5820 39.1486
+ -174.2054 162.3139 -21.5425 179.6983 -175.7526 -85.2627 -177.1640 -81.4259
+ -108.5119 -143.4266 73.3894
+ 146.9763 132.0380 93.1726 148.5123 122.3920 123.7054 137.7698 134.6428
+ 109.9417 0.0000 0.0000 133.3451 164.8131 119.5419 0.0000 122.8395
+ 120.2250 108.0125 106.8529 111.7444
+ -25.9388 -25.9378 -83.2180 -103.5781 -131.2137 22.4424 -106.7105 -135.4921
+ -85.6710 0.0000 0.0000 -154.6419 -72.2625 -79.0284 0.0000 -123.4164
+ -128.7827 -105.7820 -117.2432 -78.8031
+ 63 -85.68 0
+ 93.9302 91.5533 90.4522 90.1359 89.6825 89.7435 89.7962 90.6573
+ 91.8680 140.3012 92.8415 89.4549 89.1058 92.6033 96.0262 134.6287
+ 119.9290 118.2404 93.3064 93.3058
+ 122.9035 88.5671 47.7255 44.5271 46.1877 52.1265 53.5694 77.7883
+ -87.8945 -64.3384 50.5101 49.2214 64.9409 31.1029 78.3052 -75.3638
+ -103.0155 -138.5110 73.5795
+ 144.6387 135.0274 126.4676 147.4119 121.6349 156.1276 140.0112 131.8674
+ 139.3158 0.0000 0.0000 98.4033 106.3453 116.2764 0.0000 138.6067
+ 118.3111 111.4960 103.7442 112.9531
+ -7.7467 -18.6746 115.8012 -94.2677 -128.3550 20.1797 -155.0924 -131.9529
+ -125.6501 0.0000 0.0000 -99.8938 -75.2442 -77.2876 0.0000 -96.6078
+ -125.0827 -111.5597 -117.8391 -77.4868
+ 64 -85.27 0
+ 93.7157 92.6818 91.9023 90.8821 90.6209 90.5227 90.6771 92.6987
+ 91.8295 108.9472 116.3365 92.7090 92.6984 92.6270 105.2230 129.3676
+ 116.3825 119.9622 93.4551 93.3029
+ 6.9984 174.3622 68.1908 38.2249 49.5895 48.8837 44.7383 66.0662
+ -71.7885 -48.9798 -66.1063 71.9660 125.3499 -61.8696 -18.7074 -81.8896
+ -108.6027 -148.3178 83.3987
+ 101.2587 139.5656 121.3605 155.0956 115.5913 156.3684 135.5444 132.1569
+ 143.7543 0.0000 0.0000 132.1842 113.6566 120.4431 0.0000 91.4350
+ 116.0725 109.9469 102.5973 111.0789
+ -81.3005 -26.5530 120.4248 -96.4226 -30.0415 85.3836 -128.6297 -137.3579
+ -103.0518 0.0000 0.0000 -158.7394 -76.8246 -146.8959 0.0000 -64.2968
+ -123.0831 -108.5203 -106.3910 -78.1119
+ 65 -84.94 0
+ 93.7122 93.1467 128.4273 92.6250 90.6988 91.6705 91.0896 92.3453
+ 94.0385 93.7067 121.6083 93.4606 123.4540 131.0511 95.8338 130.1056
+ 119.6330 117.4104 93.7856 93.3070
+ 98.5328 122.4371 -100.8143 53.1469 42.6904 51.5072 37.9773 56.3634
+ -172.7820 126.3809 -20.8575 93.9606 -103.3360 -86.0580 171.6886 -83.9806
+ -107.7615 -138.7338 74.8224
+ 151.5364 138.5868 95.3466 160.7002 107.6367 144.6782 138.1224 133.9957
+ 145.1840 0.0000 0.0000 131.6253 114.3899 120.1782 0.0000 118.0270
+ 115.0132 112.3857 125.9362 112.4502
+ -27.7228 -33.8041 -100.1630 -137.6824 -38.8313 80.6862 -114.0687 -143.5218
+ -23.4828 0.0000 0.0000 -154.7056 -76.5786 -80.5449 0.0000 -113.0359
+ -120.7201 -113.4487 -148.4156 -77.8409
+ 66 -84.47 0
+ 93.7908 92.0346 91.2871 89.9271 89.6098 89.7857 89.8814 90.9144
+ 93.2309 95.2264 94.3671 93.0716 92.2309 95.7895 95.4781 130.5779
+ 118.6681 120.2883 93.5373 93.3131
+ 107.3955 137.2056 56.9514 44.1700 61.8581 88.5874 95.9946 11.9585
+ -108.5507 145.3187 40.9464 129.5172 113.7009 -91.7525 166.6385 -96.2566
+ -108.2045 -140.5668 66.8419
+ 150.5885 116.1542 91.2675 145.9943 125.6815 137.8997 150.0332 105.9785
+ 115.1754 0.0000 0.0000 100.2750 130.9523 116.3947 0.0000 97.0456
+ 121.7142 109.4390 103.5160 113.9628
+ -14.2078 -45.3579 -93.3593 -97.7598 -150.0027 37.2327 -108.5293 -126.2853
+ -81.2372 0.0000 0.0000 -99.2525 160.9288 -135.8898 0.0000 -88.2006
+ -130.1031 -108.2694 -106.1279 -77.4398
+ 67 -91.04 0
+ 93.8506 91.3859 91.3069 90.2389 89.6976 90.4819 90.7614 91.9400
+ 90.5728 107.4796 100.3406 92.9780 92.9290 124.2998 94.5398 129.0186
+ 120.0797 121.4058 93.3110 93.3533
+ 100.7729 71.4179 45.4028 46.3836 43.8612 48.2789 44.3478 72.6988
+ -63.2222 -68.5425 -27.9129 100.2445 101.5047 -91.1426 80.7814 -69.4211
+ -121.3824 -168.6622 52.2911
+ 147.0540 138.8037 121.9830 143.1055 118.0881 159.6952 136.9190 135.8720
+ 131.0117 0.0000 0.0000 136.6531 114.6120 123.3202 0.0000 132.5531
+ 107.2544 112.5358 100.0422 110.8821
+ -11.9354 -41.3493 121.7719 -91.9666 -123.2924 8.0637 -173.4910 -130.5055
+ -134.2236 0.0000 0.0000 -162.0743 -78.1468 -139.2445 0.0000 -118.9431
+ -112.2165 -112.4684 -101.0974 -81.3957
+ 68 -83.67 0
+ 93.7338 93.2821 93.2354 104.7479 91.0843 91.7813 90.9960 92.6789
+ 92.4156 111.2803 116.0286 93.1862 93.6463 115.8453 96.0508 127.0958
+ 117.6261 115.1094 94.2267 93.4138
+ 31.5316 170.6667 93.0119 -49.0529 81.9622 42.6459 48.9146 60.2373
+ -75.2176 -45.6934 -73.1522 64.1633 127.1106 -84.4744 66.2786 -102.0992
+ -105.9447 -137.8892 40.4299
+ 103.7777 145.5140 136.5340 133.7457 119.3876 134.5860 149.8352 125.2804
+ 143.8772 0.0000 0.0000 128.2113 114.7862 128.1664 0.0000 110.4569
+ 119.0309 142.8112 96.4882 118.0846
+ -77.6347 -30.8568 -103.6741 -83.4673 -110.2001 87.6888 -149.6728 -141.5161
+ -124.5485 0.0000 0.0000 -150.5994 -77.4011 -155.0185 0.0000 -50.9219
+ -124.7765 -158.8480 -99.2668 -78.8606
+ 69 -83.78 0
+ 93.8675 92.9949 110.8204 91.3350 90.4010 91.5354 91.2007 92.6635
+ 92.4754 94.5517 134.0848 119.2833 92.8905 94.5910 97.3158 126.1095
+ 119.0860 112.0859 93.8243 93.3143
+ 77.1528 167.4167 170.3467 69.6525 42.5411 49.4377 42.7923 75.8761
+ -110.6100 122.2647 -49.2027 176.4715 86.8485 24.4920 73.3955 -85.4394
+ -116.3215 -166.6534 68.3016
+ 144.9838 139.1135 120.3447 131.1875 100.4339 145.8255 143.5534 136.3996
+ 139.0138 0.0000 0.0000 117.5170 134.1487 113.9202 0.0000 129.2639
+ 101.1379 119.3797 132.1288 114.0914
+ -16.5172 -39.1904 -71.3865 -107.8977 -99.7826 35.8023 -140.0706 -134.9129
+ -123.2405 0.0000 0.0000 -120.4464 -116.2398 -77.3112 0.0000 -97.7948
+ -98.5871 -126.8956 -158.6588 -77.3358
+ 70 -85.54 0
+ 93.6759 93.1954 130.1914 92.9723 90.4668 90.8309 90.6740 92.2494
+ 93.8736 140.0260 94.2708 92.4460 93.3319 129.7670 114.1903 129.3793
+ 115.7677 119.9701 93.3316 93.3689
+ 103.3539 127.0343 -101.1751 54.8038 43.2599 53.7393 53.3578 84.7749
+ -107.9022 -71.2049 38.6279 51.3073 -56.1754 -167.0007 161.6137 -72.0983
+ -104.7468 -148.1471 47.3882
+ 154.4759 138.9269 94.8642 157.6648 110.0839 150.3358 139.7886 133.5033
+ 148.3263 0.0000 0.0000 97.7895 113.2733 119.8716 0.0000 118.1411
+ 115.0353 111.2634 103.1848 113.9290
+ -26.1368 -27.9179 -97.7424 -141.3036 -35.3744 93.2842 -118.3602 -133.4306
+ -156.5067 0.0000 0.0000 -96.6857 -74.4848 -78.4497 0.0000 -118.4482
+ -122.8993 -110.5828 -117.0314 -79.8248
+ 71 -84.82 0
+ 93.6662 92.8816 129.9042 91.8508 90.4249 90.9715 90.3108 91.9768
+ 91.7206 94.8018 140.9799 90.0608 90.1990 94.5467 95.8267 130.6789
+ 118.2478 119.3986 93.3070 93.3107
+ 68.4565 111.6559 -98.0549 55.7096 39.0838 58.4642 40.8457 68.9532
+ -87.9200 160.4886 -35.8541 58.9973 34.9405 -115.5536 157.9628 -81.1347
+ -107.6040 -138.1731 72.2986
+ 153.1945 142.0033 90.2067 145.2738 109.3134 150.6964 148.6614 130.9843
+ 139.5133 0.0000 0.0000 96.7247 110.2716 108.7756 0.0000 131.8544
+ 117.6297 110.7040 100.0909 112.4677
+ -31.5741 -42.5870 -102.3464 -101.3186 -71.3751 39.5248 -151.3393 -137.5929
+ -125.3769 0.0000 0.0000 -101.1184 -80.6065 -75.2169 0.0000 -53.3496
+ -123.4606 -111.0182 -105.1716 -78.1145
+ 72 -85.60 0
+ 93.8035 93.1127 124.4650 91.5913 89.9376 90.7218 90.1720 91.8639
+ 92.7833 96.1386 141.9788 121.2571 93.4410 93.5851 94.6809 125.3722
+ 116.6873 126.5315 93.4667 93.4096
+ 106.8855 129.2067 -96.2638 55.0195 42.4728 64.9884 38.6922 76.5808
+ -73.7674 177.6573 -29.8605 163.8280 97.0353 -88.7707 158.6271 -79.6949
+ -144.9736 -171.3775 71.3962
+ 148.8848 138.8410 94.0946 143.9738 119.1079 116.9638 160.5432 80.5933
+ 142.1432 0.0000 0.0000 116.3067 132.0244 112.4609 0.0000 144.5831
+ 114.3584 110.8125 92.5286 127.0563
+ -17.7786 -26.1202 -93.9257 -108.6228 -87.5441 -27.4513 -120.2687 -74.3825
+ -114.1244 0.0000 0.0000 -119.6948 -121.3498 -77.3902 0.0000 -50.2082
+ -120.7329 -106.3663 -98.2510 -130.3687
+ 73 -83.75 0
+ 93.9525 92.4503 90.3399 88.9025 89.4441 90.6211 90.2109 90.6148
+ 92.1143 94.9179 126.3574 93.8998 125.9564 128.7020 128.0738 126.1783
+ 118.3072 121.5755 117.1136 121.8666
+ 106.6048 152.8295 90.0072 43.1797 48.2282 48.1301 48.4530 49.8900
+ 175.8637 136.6059 -32.4181 83.9198 -106.4010 -92.5831 -174.7324 -87.8453
+ -109.2745 -141.6863 -119.2411
+ 142.2294 138.8026 99.2789 146.1603 95.6460 129.3278 137.6389 132.7180
+ 141.4936 0.0000 0.0000 97.7555 121.2537 122.1543 0.0000 104.2806
+ 124.9423 109.2219 116.6092 121.7220
+ -3.4045 -22.7333 -97.1453 -114.3116 -58.4024 64.1527 -113.5779 -136.3102
+ -123.9464 0.0000 0.0000 -98.8831 -76.0165 -80.3338 0.0000 -112.3281
+ -134.2444 -106.9116 -119.5884 -80.9470
+ 74 -85.77 0
+ 93.8384 91.3673 90.4377 89.3367 90.5266 90.5325 90.4119 92.1079
+ 91.0103 110.0426 112.4211 92.2330 93.2061 92.5068 111.0072 129.1923
+ 116.0961 120.3894 93.6114 93.3155
+ 95.1413 69.8857 60.4648 47.9261 43.9104 51.6879 42.9388 67.3884
+ -67.2942 -62.9406 -67.8699 67.2965 110.8557 -55.6673 -25.4999 -84.4672
+ -110.3034 -148.5932 67.9693
+ 147.2820 139.7390 123.3741 149.5203 109.6731 152.9642 138.3538 134.4453
+ 140.6017 0.0000 0.0000 131.8434 113.3929 116.7546 0.0000 93.7350
+ 116.2836 109.6382 103.8145 114.0799
+ -14.4818 -53.4180 106.5892 -91.4144 -61.0645 57.3838 -141.7912 -136.5748
+ -118.3061 0.0000 0.0000 -157.7238 -76.4635 -81.7693 0.0000 -62.7197
+ -123.5755 -108.5183 -108.2829 -77.3534
+ 75 -86.62 0
+ 93.8680 91.2872 89.7823 89.0929 89.3880 90.3904 90.1173 92.3058
+ 91.4108 96.1798 147.7019 119.1500 91.0161 94.1871 96.1237 125.8199
+ 117.1502 119.0848 93.5483 93.3004
+ 118.5964 86.6820 50.9642 44.3587 47.8942 48.9030 42.8801 83.7000
+ -91.9899 53.1684 -86.5014 -81.7077 90.5846 33.7681 72.1597 -84.0189
+ -108.3039 -139.1898 76.6914
+ 146.8631 131.3031 92.8182 149.1966 126.2718 130.4623 133.0012 132.1714
+ 141.4951 0.0000 0.0000 109.0801 133.8518 107.6631 0.0000 103.9631
+ 115.2645 113.8291 131.6095 112.5540
+ -12.5252 -3.4531 -90.8926 -98.8251 -137.4479 18.8878 -145.2209 -135.4301
+ -130.5491 0.0000 0.0000 -108.7128 -143.2101 -78.2613 0.0000 -58.4787
+ -120.0100 -114.1880 -155.0834 -77.4107
+ 76 -87.05 0
+ 93.8994 91.5330 91.2709 90.4103 90.0540 90.2835 90.2697 90.7040
+ 92.0506 95.3059 130.7180 101.7316 93.8028 115.8285 95.4088 129.5755
+ 117.6384 120.4141 92.7739 93.2578
+ 122.5862 85.2090 47.7361 41.8748 49.6169 44.2361 55.6442 45.0037
+ -119.4613 154.6933 -60.9426 168.6005 131.6891 -73.7382 74.6191 -83.4673
+ -107.0232 -136.1759 88.7375
+ 146.1872 138.0503 127.5700 149.6752 120.1856 164.5475 135.3272 136.0205
+ 110.0101 0.0000 0.0000 106.5471 129.9935 115.5513 0.0000 92.8092
+ 121.0973 110.7177 100.6286 108.3666
+ -8.3271 -28.0209 112.6879 -95.7613 -29.8478 39.7022 -127.5603 -123.5704
+ -80.1036 0.0000 0.0000 -96.5645 -160.3964 -80.7586 0.0000 -63.7469
+ -128.5851 -108.3073 -112.4106 -77.9267
+ 77 -84.90 0
+ 93.7328 92.3454 91.9256 91.2833 90.5013 90.8819 90.6530 90.8268
+ 92.6713 92.9124 93.4532 89.2519 90.0825 94.3507 94.4427 130.2406
+ 116.1942 120.8623 93.0691 93.2711
+ -7.0865 169.7214 68.5679 35.5489 51.6584 41.2748 65.6633 28.5227
+ -118.3717 145.9866 47.8103 50.3892 44.4045 -117.2486 152.9172 -74.8601
+ -105.1115 -119.1573 78.1364
+ 96.2637 141.4658 118.1521 153.2886 110.8615 156.0007 132.3824 138.5700
+ 101.5563 0.0000 0.0000 103.6732 111.3668 110.0766 0.0000 138.1601
+ 127.0093 107.8098 99.0535 110.3613
+ -84.0731 -25.0732 124.1145 -99.0801 -28.2079 105.9413 -101.4879 -121.3761
+ -75.1418 0.0000 0.0000 -115.9567 -77.6137 -76.8882 0.0000 -65.1954
+ -138.4811 -105.5551 -106.6047 -77.6791
+ 78 -85.59 0
+ 93.9195 91.5453 92.2848 91.4278 90.4783 92.3545 91.3339 95.9891
+ 128.6985 95.7493 92.7670 89.4490 89.7246 93.6879 96.8274 137.3299
+ 116.9480 119.5941 93.5965 93.3002
+ 120.3647 83.3561 40.2584 46.5826 48.2009 67.8303 118.9484 -64.1037
+ -60.7732 69.0401 42.5800 51.5135 70.3874 20.5128 74.4967 -65.4050
+ -104.0738 -139.8605 76.5729
+ 144.5345 132.3385 135.6678 145.5958 117.6406 133.2092 144.5546 129.5726
+ 107.7070 0.0000 0.0000 92.2532 117.9848 112.9003 0.0000 160.2727
+ 111.2714 116.1648 129.7448 112.5086
+ -9.1279 -21.6292 113.2307 -93.9103 -123.9665 -13.3022 -160.1193 -139.1510
+ -78.3915 0.0000 0.0000 -68.4738 -75.2314 -78.7235 0.0000 -127.3628
+ -119.6975 -116.2469 -153.2379 -77.5072
+ 79 -89.61 0
+ 93.9821 91.4570 91.1990 89.9301 89.9759 90.1613 90.3833 92.1072
+ 91.1370 113.7342 101.0639 93.2959 122.4769 95.1252 93.5309 128.1590
+ 117.4122 122.4748 93.0654 93.3485
+ 125.7337 89.6834 46.6352 44.9169 47.1719 50.3096 41.7259 68.9658
+ -60.7253 -63.7277 -21.8375 95.1459 144.3329 -75.6116 63.5844 -77.9764
+ -104.5772 -141.4377 60.0019
+ 142.7000 135.8745 126.4638 146.8892 121.5491 157.9009 145.7472 131.4525
+ 136.8769 0.0000 0.0000 95.9736 118.3430 113.9095 0.0000 86.9302
+ 124.9893 109.0135 92.3958 111.1307
+ -3.0722 -17.8501 96.9768 -90.3274 -129.2608 41.0136 -133.7425 -135.1990
+ -118.2723 0.0000 0.0000 -84.5118 -80.6697 -77.0626 0.0000 -64.2750
+ -133.2555 -107.9660 -99.3395 -80.9417
+ 80 -85.61 0
+ 93.9460 91.5168 91.2545 90.6028 89.8786 90.5419 90.1417 90.6500
+ 91.6586 94.8722 92.8085 89.8897 89.3947 91.5003 95.2591 137.9782
+ 118.2538 120.6704 92.9149 93.2872
+ 123.1589 87.1528 42.3721 47.0285 46.8472 48.6676 45.3434 66.2440
+ -175.1660 71.3181 41.0130 65.1063 125.0276 -65.1882 77.6625 -89.3878
+ -106.6448 -138.9267 85.0767
+ 143.7760 134.9454 131.6124 146.4164 121.9074 133.6951 138.9063 134.4140
+ 131.3771 0.0000 0.0000 106.1100 133.3496 112.1884 0.0000 89.4433
+ 118.3132 107.2248 101.5180 109.5198
+ -6.9061 -16.5142 116.2333 -92.1015 -129.3351 -9.6676 -142.4071 -133.5898
+ -123.8812 0.0000 0.0000 -98.4763 -104.7622 -143.9801 0.0000 -64.0694
+ -125.6752 -103.3153 -112.5763 -78.4659
+ 81 -87.21 0
+ 93.9864 91.4539 91.1595 90.0544 90.0779 90.2820 90.4083 92.0700
+ 91.1242 113.7468 101.0764 93.2617 122.1181 94.8645 93.4076 129.2940
+ 118.0270 120.4171 118.4836 121.8726
+ 126.0267 89.5443 46.9143 44.7084 46.6515 50.5115 41.7756 68.7805
+ -60.9440 -63.5138 -21.9814 94.9691 144.2203 -75.3256 64.5529 -76.9341
+ -105.2565 -115.9434 -118.5539
+ 142.5956 135.7375 126.1014 147.8201 121.5961 158.7443 145.2266 131.6764
+ 136.4979 0.0000 0.0000 95.8177 118.1575 113.5430 0.0000 88.6013
+ 125.0452 109.2855 114.3751 121.4955
+ -2.5576 -18.0004 98.3771 -91.0565 -128.5198 39.9763 -129.8558 -135.3492
+ -118.4793 0.0000 0.0000 -83.4354 -80.5803 -77.4119 0.0000 -63.9912
+ -132.9067 -109.2300 -118.5232 -81.0658
+ 82 -86.38 0
+ 93.9688 91.4598 91.0863 89.3977 89.6957 89.5923 90.1589 92.4817
+ 92.5306 123.3473 123.4209 94.7288 135.6520 123.7809 95.5035 117.5676
+ 116.4562 120.5652 92.6925 93.3216
+ 125.8009 89.9675 45.3056 45.0287 48.6782 54.1330 36.6475 58.2791
+ -52.8568 -65.1635 -21.6071 86.1276 -91.9854 -58.3290 72.0641 -79.5867
+ -112.3161 -145.4013 74.6973
+ 143.5288 135.2878 124.6163 143.3655 121.2675 133.5606 140.6105 127.3310
+ 142.1780 0.0000 0.0000 83.9273 151.0420 118.7471 0.0000 84.7689
+ 112.4996 134.1225 101.1377 110.1206
+ -3.2435 -17.4912 105.9919 -87.9003 -131.4186 57.0413 -172.6318 -131.2807
+ -119.4145 0.0000 0.0000 -83.0860 -0.7158 -80.0015 0.0000 -64.4448
+ -114.6237 -143.9001 -100.8962 -80.0155
+ 83 -85.09 0
+ 93.8884 91.3198 90.9279 90.2177 90.0010 91.3508 90.5893 92.4837
+ 92.4561 122.4274 135.7584 127.9309 126.1603 119.7471 94.7574 120.9847
+ 117.9201 118.6411 93.7932 93.3470
+ 121.4071 85.1090 44.3022 45.9159 42.4603 51.6907 36.3262 67.0184
+ -76.7497 -2.3823 -32.7005 -176.2788 168.0162 -64.8886 71.6717 -67.4042
+ -109.4366 -136.8590 54.1095
+ 146.5114 128.9801 93.5007 148.7474 122.2278 134.2350 132.2347 131.4182
+ 135.0345 0.0000 0.0000 106.5079 117.9905 118.7885 0.0000 118.2604
+ 115.5840 143.2311 92.4839 114.9716
+ -9.6592 -15.4831 -87.6648 -97.5971 -127.3907 21.8866 -158.6794 -134.1828
+ -114.5152 0.0000 0.0000 -102.0826 -81.3290 -78.2525 0.0000 -131.2336
+ -121.5614 -157.9963 -93.4358 -78.3379
+ 84 -90.90 0
+ 93.9139 91.5330 91.7763 90.1194 90.0443 90.2267 90.6768 92.1390
+ 90.5049 103.0782 99.0361 92.6426 94.1860 107.2240 94.9343 128.2576
+ 116.4887 122.1383 92.8865 93.3458
+ 124.0161 88.1743 44.2651 45.8091 45.5226 47.7657 47.0798 74.9093
+ -66.6794 -66.4121 -33.1175 102.1217 126.7095 -87.5427 59.9263 -82.6022
+ -106.7799 -149.6852 56.9507
+ 145.8948 134.5371 123.6848 141.3387 119.3342 156.3873 141.9579 137.0991
+ 136.2650 0.0000 0.0000 133.6451 113.3905 120.6834 0.0000 102.2716
+ 125.2330 110.0499 99.8778 112.0231
+ -6.8344 -24.7178 104.0990 -86.9807 -126.5684 48.9630 175.7601 -131.5029
+ -130.3547 0.0000 0.0000 -159.1888 -78.5092 -155.6398 0.0000 -59.6332
+ -134.3449 -108.6854 -105.3121 -80.2545
+ 85 -85.92 0
+ 93.9442 92.9992 129.1101 92.9603 91.2010 92.2262 90.9919 92.2060
+ 91.3887 117.6463 125.5293 103.3612 92.1818 92.2755 119.3935 126.0534
+ 116.0780 117.0228 93.2423 93.3594
+ 108.7694 104.7561 -112.7535 66.1585 34.6511 55.3825 36.9056 62.7287
+ -74.9723 -64.0738 -48.9091 -27.3879 101.1808 9.8885 -14.5641 -82.5338
+ -108.1830 -142.4912 54.2488
+ 140.3361 141.6008 96.3878 141.9955 112.6251 131.9574 133.1866 136.8558
+ 131.6173 0.0000 0.0000 96.1613 128.5257 108.3330 0.0000 85.8354
+ 117.8267 141.4582 94.7748 111.7972
+ -16.5301 -36.3367 -93.4024 -107.6347 -91.6610 41.3873 -160.5746 -133.5831
+ -133.2857 0.0000 0.0000 -92.4260 138.1923 -77.9415 0.0000 -62.1464
+ -122.8717 -155.8253 -95.4596 -80.9809
+ 86 -89.25 0
+ 93.8671 91.4460 90.5542 89.2701 89.2554 89.3253 90.7035 91.6324
+ 91.1648 101.2753 98.6820 93.3340 94.1727 120.9021 95.3527 126.7886
+ 116.8619 121.3492 92.2893 93.3263
+ 120.7765 88.6211 47.9801 46.0271 50.1709 49.4646 63.8849 102.8491
+ -24.5421 -71.5785 -21.7815 102.6809 113.2189 -100.0980 64.0087 -87.5037
+ -110.6255 -147.1359 77.9835
+ 147.3991 130.1342 93.5381 143.8069 122.4532 154.9135 130.7921 133.5898
+ 145.7453 0.0000 0.0000 134.2751 119.5955 118.0687 0.0000 99.2187
+ 119.5798 111.6128 104.7016 108.1589
+ -11.4405 -16.3321 -85.7858 -95.4226 -131.9393 37.3027 -54.1929 -133.2565
+ -130.3613 0.0000 0.0000 -157.4949 -75.2578 -84.2374 0.0000 -62.4492
+ -126.9379 -109.7778 -112.2377 -81.5063
+ 87 -83.48 0
+ 94.0223 91.3018 90.5425 89.8120 89.6041 89.8183 89.3576 89.8928
+ 93.4396 122.6947 105.6937 92.1049 92.4445 132.7256 97.0877 129.4642
+ 119.4593 119.0112 93.5863 93.3644
+ 128.3303 91.2643 49.6956 44.1683 49.9524 68.7716 59.1698 37.6586
+ -98.1990 -68.6775 -32.7870 -47.9105 92.9272 -105.1817 168.2713 -81.9387
+ -108.2172 -142.1493 49.2872
+ 141.5431 132.4706 127.2409 148.8792 121.6803 130.8696 142.2228 78.6610
+ 137.7301 0.0000 0.0000 93.6341 114.4972 119.2711 0.0000 122.8907
+ 115.4133 115.2513 98.7641 114.3756
+ 2.0298 -13.6048 102.8099 -97.1243 -132.2517 31.7482 -174.0919 -86.7955
+ -114.5034 0.0000 0.0000 -81.3651 -75.3203 -82.7840 0.0000 -63.0390
+ -120.2810 -116.7331 -101.3178 -79.4194
+ 88 -88.05 0
+ 93.9053 91.2709 90.8377 89.7530 90.1221 91.2372 90.8164 91.8540
+ 93.1758 133.9364 111.4142 91.0163 90.2003 107.9420 94.7241 120.2361
+ 114.7332 106.7920 93.3026 93.3456
+ 122.9611 86.1117 47.7290 44.5561 46.9850 48.2872 43.4022 56.0581
+ -177.0564 -69.7784 -6.3702 72.4685 -0.3195 -135.2946 122.6355 -71.2732
+ -132.0170 -172.6559 50.0534
+ 146.0403 128.1273 96.7846 151.2084 123.2430 120.5763 128.0567 134.1413
+ 141.7382 0.0000 0.0000 100.9518 107.5999 103.6411 0.0000 140.7251
+ 90.8283 130.3609 108.6967 113.3428
+ -7.9726 -14.4586 -90.2030 -97.0536 -125.6332 63.2289 -145.4276 -134.5532
+ -133.8635 0.0000 0.0000 -97.1261 -76.3801 -75.6043 0.0000 -43.5245
+ -82.9320 -146.4461 -108.2005 -79.3714
+ 89 -87.90 0
+ 93.8511 91.5289 90.8257 89.9730 89.5957 90.0562 90.2909 91.4538
+ 90.6585 115.6730 107.9456 108.9838 126.2166 93.7624 95.1702 111.3631
+ 118.3562 121.7482 116.2023 121.7086
+ 106.2720 80.0116 44.5832 49.2873 42.8734 49.6626 43.4219 72.1497
+ -55.5419 -70.2175 -20.8406 -144.7468 -139.9498 36.0997 64.0704 -63.3004
+ -112.2236 -141.7705 -118.2710
+ 146.6676 138.6965 134.3104 140.6034 120.8878 138.6813 140.9978 136.1989
+ 134.2795 0.0000 0.0000 95.0273 122.0249 115.7169 0.0000 154.6918
+ 109.6137 113.8057 133.1080 121.5601
+ -11.9342 -27.5185 115.3284 -88.1132 -129.6082 -14.4601 179.4125 -132.5005
+ -129.1890 0.0000 0.0000 -77.9407 -79.2788 -76.2580 0.0000 -9.9577
+ -114.0252 -112.8531 -144.7141 -80.7123
+ 90 -87.01 0
+ 93.8832 91.3541 91.0291 90.3890 90.1483 91.1801 90.3176 91.8491
+ 90.9250 95.8694 150.8468 128.3117 124.8796 118.4740 94.5294 121.7580
+ 117.1761 118.7554 93.5588 93.3323
+ 121.2977 85.9527 45.5016 44.7861 43.2537 48.6255 44.3930 75.5110
+ -97.1034 56.1447 -70.3715 172.2975 165.7211 -63.0020 73.8647 -71.9289
+ -109.1063 -136.4684 62.8688
+ 146.7498 128.5966 93.8586 147.5444 119.9307 141.4566 130.6779 136.4896
+ 138.6904 0.0000 0.0000 108.8046 122.1120 117.7829 0.0000 69.4378
+ 116.8053 143.5393 91.7930 112.8923
+ -10.0689 -17.0183 -87.7429 -96.7602 -126.0685 27.5146 -159.1856 -133.8781
+ -123.6851 0.0000 0.0000 -103.7883 -80.3493 -79.6889 0.0000 -75.0523
+ -122.6892 -158.1137 -94.3687 -79.0074
+ 91 -85.86 0
+ 93.6981 93.0276 128.7500 92.0212 90.4825 91.9462 90.6707 92.1780
+ 91.6069 118.9192 117.3155 96.0938 90.9646 95.1968 96.4969 126.8573
+ 116.1252 112.9874 93.4918 93.2795
+ 85.9266 125.2517 -97.1351 52.1387 39.2637 52.1866 44.4588 77.1034
+ -68.3985 -22.0159 -45.9055 -41.6733 111.9175 24.0341 68.9797 -83.7199
+ -107.3003 -135.2258 83.2078
+ 151.1795 142.7991 95.8946 149.6594 104.5129 162.1217 145.9077 137.8625
+ 144.3145 0.0000 0.0000 91.5107 138.9150 112.5999 0.0000 116.7427
+ 122.5713 100.4883 127.9559 110.9741
+ -31.1603 -39.6186 -105.2053 -103.2494 -45.0751 112.7875 -106.2753 -136.9863
+ -133.9713 0.0000 0.0000 -87.7412 -34.3193 -80.4181 0.0000 -126.6507
+ -133.5581 -84.2387 -149.9559 -77.2488
+ 92 -87.44 0
+ 93.9305 92.4928 90.5677 89.4200 89.0032 90.0140 89.6267 89.7497
+ 91.5801 95.4351 132.9384 93.9821 94.5768 135.5432 115.6142 132.0135
+ 117.0075 121.2827 93.3771 93.3624
+ 109.2338 157.2296 93.1238 48.7404 47.3981 54.0449 53.0785 48.1005
+ 166.5620 97.6765 -52.8090 79.8874 -57.8149 -158.8867 171.1025 -79.6606
+ -105.3822 -146.2183 49.8765
+ 143.8278 137.0418 116.2616 145.4473 108.4461 123.7327 134.0875 129.6228
+ 140.2785 0.0000 0.0000 132.2629 118.7096 125.8132 0.0000 106.4479
+ 121.6957 109.5836 99.2870 113.3499
+ -0.5309 -24.7082 -105.9247 -114.5433 -70.1442 43.6025 -151.3562 -134.1107
+ -118.1854 0.0000 0.0000 -155.1944 -76.1509 -80.2091 0.0000 -110.8667
+ -130.5296 -107.6289 -106.5174 -80.0258
+ 93 -84.08 0
+ 93.7255 108.3441 93.8090 91.6472 90.4361 90.4783 90.3721 91.8881
+ 92.6875 130.1383 138.7636 112.5204 92.3025 93.0713 96.3007 120.3921
+ 117.5096 118.8723 93.6166 93.3605
+ -2.4295 178.8087 85.1385 46.5273 46.6743 48.2695 42.3044 50.2347
+ -77.7426 -3.2511 -28.7115 -147.6115 89.9331 24.1473 65.3998 -86.7287
+ -110.6022 -144.3918 52.9853
+ 105.1957 161.7135 176.3928 137.7504 121.8049 98.5106 141.6401 134.4850
+ 116.3274 0.0000 0.0000 89.3226 142.3342 114.8837 0.0000 125.8935
+ 117.1498 111.5051 128.3522 112.0941
+ -81.9144 -21.6970 179.4180 -83.6428 -108.6147 -134.7648 -170.1778 -126.9144
+ -78.7177 0.0000 0.0000 -66.6497 -17.0333 -75.3007 0.0000 -87.3878
+ -124.4501 -110.3873 -150.4099 -80.8213
+ 94 -84.72 0
+ 93.8903 116.5527 108.1313 90.9052 89.3943 90.6649 90.2004 92.2413
+ 92.1337 119.6770 123.9740 110.7455 93.0371 120.5595 94.6616 115.4835
+ 118.3309 119.9154 93.0998 93.3122
+ 121.5087 -177.9652 -164.9428 61.1907 41.5433 59.2861 34.9633 64.2722
+ -56.1193 -56.2801 -37.2217 160.6285 80.7649 -42.8833 86.9948 -65.6616
+ -109.2830 -143.1938 73.5470
+ 144.4897 144.1809 104.2175 140.7271 121.1023 127.2888 145.0787 126.9295
+ 136.8771 0.0000 0.0000 90.7390 136.1801 116.1653 0.0000 122.8803
+ 116.9768 107.3684 103.5371 112.0869
+ -18.2949 -17.9041 -94.2156 -101.7083 -120.2885 25.6633 -162.1861 -136.0679
+ -117.2974 0.0000 0.0000 -78.1635 135.1723 -75.8652 0.0000 -120.9740
+ -124.0035 -105.3744 -119.0988 -78.3646
+ 95 -85.23 0
+ 93.8838 91.2998 90.5829 90.5256 90.2032 90.1481 91.4153 92.2946
+ 91.6116 94.7125 136.6416 118.8948 93.7669 122.2635 95.7511 128.1598
+ 116.7233 120.7674 92.6879 93.2820
+ 124.5638 91.8723 45.2332 57.2480 60.7817 73.6028 161.5814 96.4819
+ -69.1795 164.9561 -55.8201 -175.6737 108.9135 -100.1179 92.4606 -80.0363
+ -108.4216 -120.1395 77.7506
+ 147.8009 130.8791 95.5515 142.1799 129.2004 95.4560 154.0307 126.9970
+ 104.0768 0.0000 0.0000 118.6768 114.7520 114.3228 0.0000 89.8923
+ 120.3454 109.0801 98.2983 109.2323
+ -6.9278 -1.7417 -79.6420 -116.1155 8.4882 -64.1439 -106.1591 -128.6548
+ -83.2199 0.0000 0.0000 -121.5697 -77.2976 -80.5864 0.0000 -63.4689
+ -127.8681 -105.2830 -114.4172 -78.9482
+ 96 -89.32 0
+ 93.7116 113.4443 92.8274 89.8778 89.3352 90.4226 90.5257 91.6580
+ 90.7944 108.7156 101.0331 92.9899 93.3352 124.0014 95.5834 124.9911
+ 118.7598 120.4085 93.0504 93.4278
+ 96.9997 178.2711 74.4037 48.4798 45.1252 51.9406 42.3012 72.4917
+ -60.0048 -69.5726 -26.7962 100.1976 107.3876 -87.5062 73.7199 -80.1599
+ -110.8625 -147.1578 85.7242
+ 108.5564 152.9097 142.6595 146.9911 111.8204 157.2687 135.7996 103.3805
+ 130.5311 0.0000 0.0000 138.6659 115.4346 130.8896 0.0000 132.0775
+ 116.4595 110.8757 101.1347 119.4743
+ -80.3490 -16.9095 112.2507 -97.8350 -68.3472 -7.0091 -162.7527 -98.8431
+ -136.4377 0.0000 0.0000 -165.2456 -78.7295 -159.3575 0.0000 -85.0100
+ -122.6129 -110.7183 -108.0933 -131.4249
+ 97 -87.21 0
+ 93.7098 92.9729 91.4127 90.8483 90.4086 91.4381 90.7179 91.9639
+ 92.6718 123.6177 129.7476 106.5051 91.5767 92.2365 120.7775 120.0630
+ 116.2330 119.3331 92.8045 93.3491
+ 9.9021 161.8605 78.2786 41.7928 48.5554 48.8939 41.1269 57.0555
+ -82.9145 -63.5306 -40.5943 -28.4703 98.6325 4.8925 -14.1802 -78.6610
+ -107.4264 -132.7519 58.9363
+ 103.4878 144.4326 142.9479 149.4238 120.3178 132.5639 138.7460 130.9465
+ 133.0577 0.0000 0.0000 92.7919 134.5915 104.6034 0.0000 93.7593
+ 121.2255 124.3023 97.2564 111.9490
+ -81.5111 -14.0476 87.0453 -95.1895 -59.3427 44.1537 -122.5026 -132.8377
+ -127.1117 0.0000 0.0000 -82.3314 148.5525 -79.6712 0.0000 -56.1155
+ -125.5697 -127.7804 -102.3825 -80.4113
+ 98 -86.19 0
+ 93.7823 92.0652 90.6384 90.6500 89.6749 89.8653 90.3138 91.7241
+ 91.6619 94.3724 134.0750 111.0367 93.7932 113.5603 124.3668 127.4460
+ 116.4658 121.8744 92.8806 93.3179
+ 101.0648 134.8357 56.8763 42.6652 48.9237 50.8400 44.4072 71.7078
+ -95.5699 129.8732 -22.4172 -145.7739 113.3370 -108.1307 176.8494 -79.8952
+ -107.5190 -146.3435 71.9899
+ 149.5591 120.3355 83.6022 143.4748 127.1564 131.7658 149.3597 129.7942
+ 133.4562 0.0000 0.0000 92.2677 115.6084 112.6634 0.0000 130.4843
+ 122.9234 107.9959 107.0004 111.0736
+ -19.4375 -43.4885 -94.6111 -93.6199 -149.8374 -8.9943 -125.7413 -136.2551
+ -121.8606 0.0000 0.0000 -84.0431 -76.5959 -80.5692 0.0000 -114.5472
+ -133.2586 -105.1521 -113.6940 -79.6012
+ 99 -86.97 0
+ 93.9045 91.4636 92.2397 91.4682 90.2635 91.1454 91.1003 93.0779
+ 92.8949 121.8751 119.0885 92.4845 92.8755 97.0808 94.3611 132.0454
+ 115.5408 119.0362 93.7575 93.3276
+ 117.5515 81.8553 38.3178 49.4238 41.4398 51.5387 34.7767 60.1128
+ -61.8805 -127.7197 -28.8823 67.6135 63.0986 -102.6234 133.4770 -65.6963
+ -102.8028 -140.1131 76.8402
+ 144.3179 130.7574 140.0166 143.8317 119.1799 124.4691 149.8065 132.8257
+ 134.6362 0.0000 0.0000 134.2072 111.6295 110.9612 0.0000 176.4521
+ 111.0246 112.9485 126.8223 111.9316
+ -9.7289 -18.7354 112.4113 -87.8075 -126.0244 -23.0892 -146.1068 -132.2253
+ -126.3745 0.0000 0.0000 -160.1045 -76.1619 -78.4612 0.0000 -170.1333
+ -119.4276 -112.3299 -150.5783 -77.8615
+ 100 -88.42 0
+ 93.9220 91.2756 91.2695 90.2257 90.4096 91.9349 91.4380 93.7343
+ 121.8417 136.1810 140.5249 104.7738 90.9696 91.9788 117.6963 127.4281
+ 118.9017 115.0928 93.4375 93.4137
+ 124.5083 86.1555 45.1271 44.7501 44.6461 50.5181 38.9153 79.1758
+ -102.2822 -64.1756 -30.0260 -32.0890 99.8923 -16.9491 -30.7528 -70.7849
+ -121.6856 -170.1773 65.6036
+ 145.6159 128.3956 98.5102 150.7314 121.9292 124.5081 130.8004 132.4306
+ 155.9116 0.0000 0.0000 94.3909 113.9553 106.6736 0.0000 138.9891
+ 102.5180 126.5258 106.0894 126.1923
+ -5.9007 -17.7510 -88.8065 -96.4925 -123.6754 71.9686 -147.3352 -131.9124
+ -165.9975 0.0000 0.0000 -85.2296 -75.8942 -79.0814 0.0000 -58.8089
+ -102.4763 -136.1355 -105.6777 -136.6172
+ 101 -88.21 0
+ 93.9799 91.4421 90.8909 89.6182 89.5492 89.7727 89.9398 92.1578
+ 92.0749 121.4668 119.7206 110.7572 93.8787 116.6068 94.6777 115.7284
+ 119.5891 119.1434 93.2221 93.3115
+ 125.9449 91.2788 45.5834 47.8375 44.8320 55.2768 35.2423 62.6988
+ -52.9198 -68.2677 -22.1593 162.2694 82.0396 -40.3186 85.7541 -72.4666
+ -110.4933 -140.1266 73.4519
+ 142.9219 134.9875 124.2877 143.1501 122.6958 126.4102 144.4696 127.5535
+ 135.0994 0.0000 0.0000 83.7314 124.2596 119.9423 0.0000 114.6693
+ 118.2397 109.0078 99.4838 112.1432
+ -2.8021 -16.1276 98.8251 -90.3100 -135.3171 24.4309 176.1323 -132.3864
+ -113.7530 0.0000 0.0000 -78.8122 74.0477 -76.7321 0.0000 -115.6123
+ -124.7224 -108.3944 -104.7231 -78.3043
+ 102 -86.43 0
+ 93.8643 91.4691 91.3964 90.9306 89.9508 90.6287 89.9937 91.6187
+ 92.1932 120.0622 117.5151 95.9813 91.0622 95.1898 96.3588 122.5229
+ 115.6904 113.1096 117.1539 94.6409
+ 108.7928 75.0515 45.8082 42.6577 46.9148 59.3561 43.3986 79.9310
+ -61.7524 -22.8059 -47.3952 -40.2467 112.4139 25.6854 64.6743 -83.1432
+ -106.8743 -138.9387 -113.7631
+ 146.6386 139.5580 123.4606 148.7472 118.2179 176.4168 143.5220 102.6542
+ 143.5796 0.0000 0.0000 93.4269 138.0174 113.5759 0.0000 111.1739
+ 123.5574 100.0312 126.9494 116.3913
+ -10.5471 -34.0144 121.5507 -98.0774 -114.7919 18.0245 -144.9451 -110.9014
+ -127.1715 0.0000 0.0000 -91.6258 -48.2842 -80.0808 0.0000 -126.8814
+ -134.6745 -90.5462 -135.3728 -77.6186
+ 103 -89.01 0
+ 93.9208 91.2275 90.5843 89.6032 89.7975 90.4269 90.3046 91.8529
+ 91.4522 118.1344 126.6559 103.1529 92.1039 92.3690 119.7495 122.1547
+ 117.9437 115.2980 93.4232 93.3598
+ 122.2409 87.0654 48.9465 47.0414 44.7438 51.6732 39.3785 60.7430
+ -70.5624 -64.6378 -48.4059 -27.1528 101.0478 12.7581 -15.1366 -89.7492
+ -113.1683 -142.4921 51.2499
+ 144.7011 127.8328 132.4892 149.0238 122.8184 128.8551 143.3375 131.7798
+ 132.0300 0.0000 0.0000 94.0542 129.9051 109.0212 0.0000 86.1722
+ 114.4951 136.9161 100.4242 113.1310
+ -8.2871 -10.0590 103.4034 -92.1281 -133.0707 37.0637 -144.0409 -134.0077
+ -126.5890 0.0000 0.0000 -90.7461 148.2442 -78.0147 0.0000 -63.9465
+ -117.7814 -151.9755 -92.0534 -80.2120
+ 104 -92.54 0
+ 93.8677 91.4692 91.4341 90.7192 90.1595 90.7170 90.5693 91.9720
+ 90.0711 101.9085 97.7890 92.7872 94.3603 120.5382 94.7378 131.4737
+ 115.6127 117.4487 93.6868 93.4178
+ 122.2588 84.9085 44.7396 43.9357 42.7063 49.3431 47.0623 75.9849
+ -65.2097 -65.7656 -33.5753 104.7023 105.0514 -95.3475 80.5236 -71.2086
+ -109.7372 -155.7055 59.0510
+ 147.9566 129.4304 94.0344 146.6479 119.4025 161.1699 132.1233 136.6662
+ 133.2693 0.0000 0.0000 140.5321 113.3622 118.6852 0.0000 127.2817
+ 85.1958 113.8199 104.7675 125.4195
+ -9.4688 -27.4980 -85.0106 -93.6466 -119.1194 38.4537 -168.1673 -130.3290
+ -134.8122 0.0000 0.0000 -169.9183 -77.1881 -77.3370 0.0000 -90.8716
+ -96.0458 -116.7930 -112.3799 -142.7434
+ 105 -86.34 0
+ 93.7388 93.0401 126.4168 91.6886 89.9387 90.3226 90.0748 91.1759
+ 91.8046 95.3033 146.6314 133.4797 93.9247 120.8742 95.1875 119.9905
+ 118.5003 115.3522 93.9165 93.4206
+ 112.1768 125.2654 -97.0909 55.3524 43.1148 65.9911 43.8580 75.4471
+ -79.2140 169.7621 -45.9865 170.3228 155.0797 -69.9895 61.7024 -96.6957
+ -117.1543 -114.0758 49.3279
+ 153.1368 134.6770 94.9567 144.2259 123.2285 118.2253 152.9402 84.0099
+ 138.0324 0.0000 0.0000 103.8141 114.8190 118.9565 0.0000 78.8816
+ 115.3500 140.2667 87.7255 116.8925
+ -18.1817 -36.3403 -91.0194 -116.1641 -89.2495 -28.6325 -142.4012 -77.3971
+ -120.4900 0.0000 0.0000 -95.5850 -76.8730 -81.9699 0.0000 -74.1604
+ -120.3114 -156.9809 -77.7001 -79.9754
+ 106 -83.97 0
+ 93.8517 91.4780 90.9200 90.2314 89.7593 90.4114 89.4150 90.5887
+ 92.3961 94.9582 117.8124 119.3585 93.7564 127.4370 94.5348 114.9698
+ 118.1832 131.6338 92.6395 93.2532
+ 92.3792 65.2978 59.6755 44.4680 45.9857 53.5984 52.0509 42.9397
+ -108.8600 136.9696 -23.6798 -140.9120 156.2081 -166.7935 64.7028 -82.1317
+ -166.4121 -158.8040 102.5607
+ 146.1657 119.3074 122.6080 147.5583 97.2147 131.6689 128.4556 128.6328
+ 107.6886 0.0000 0.0000 107.5968 115.3694 120.9034 0.0000 143.9901
+ 115.8007 111.4491 105.0642 107.3175
+ -15.4608 -75.4929 -101.4420 -101.6922 -65.5161 -111.1583 -161.5811 -129.0338
+ -78.5985 0.0000 0.0000 -103.9718 -76.9835 -82.5136 0.0000 60.7540
+ -122.0314 -100.8002 -105.7108 -76.9247
+ 107 -89.29 0
+ 93.8624 91.5374 90.9105 90.1169 89.6319 90.0749 90.2906 91.4781
+ 90.7638 116.1229 109.3037 109.3763 126.4767 93.9102 95.1864 109.8301
+ 118.0965 121.3359 93.4619 93.3031
+ 108.5161 80.4999 44.1767 49.3584 42.9522 50.0177 43.2156 71.9630
+ -55.3243 -69.9985 -22.1540 -145.1855 -141.2572 35.6890 62.9222 -60.7523
+ -110.4365 -141.4277 76.2003
+ 146.5160 138.1532 135.2054 141.5258 120.8559 137.1976 142.1219 135.8910
+ 134.3741 0.0000 0.0000 95.4568 122.1947 115.7520 0.0000 153.7058
+ 110.2467 116.2721 132.2488 112.5864
+ -12.1255 -27.0222 115.3094 -88.2485 -129.3989 -16.1906 -173.2427 -132.8385
+ -130.2663 0.0000 0.0000 -77.1176 -79.5189 -76.2789 0.0000 -12.4288
+ -114.7642 -115.9995 -156.3198 -77.5251
+ 108 -86.37 0
+ 93.9858 91.4867 91.0568 90.3487 90.4011 91.8410 91.6212 87.7644
+ 90.5827 95.2728 114.8727 92.4091 92.9726 132.2336 95.4697 127.7990
+ 117.8053 118.2124 117.9812 121.8856
+ 125.1505 90.0643 47.0245 42.5452 51.3539 51.8739 117.4504 -38.6774
+ -55.7953 3.5214 -46.0537 -37.2500 96.3372 -114.9537 162.9024 -76.1485
+ -105.0212 -136.5875 -118.6763
+ 142.2390 135.3767 131.1109 148.5655 122.2235 134.8729 138.1849 111.2468
+ 141.6723 0.0000 0.0000 95.6402 113.9608 117.1065 0.0000 120.4626
+ 119.3337 109.3481 122.3183 121.5773
+ -3.9310 -16.0067 99.4982 -98.1341 -126.3749 18.5809 -123.2531 -121.1958
+ -123.6935 0.0000 0.0000 -95.9396 -76.4331 -84.6199 0.0000 -61.7693
+ -126.3915 -110.2196 -128.8043 -81.0383
+ 109 -85.08 0
+ 93.9273 91.4821 91.5173 91.0024 90.3411 91.0872 90.7513 90.9685
+ 91.6671 99.9899 96.0573 92.5720 94.3187 127.7480 116.2778 103.7793
+ 116.9045 117.4829 92.5370 93.3060
+ 120.1998 86.6627 43.5093 46.7105 43.4503 59.5196 57.9609 99.3000
+ -23.7553 -69.5376 -24.6307 104.5071 129.0764 -84.0157 39.1803 -74.2567
+ -114.9854 -141.0465 80.4496
+ 143.9654 131.8210 139.3845 144.3128 120.3190 130.0663 154.6650 84.5350
+ 140.4298 0.0000 0.0000 109.4954 123.3385 122.2002 0.0000 107.8536
+ 119.9879 142.9945 101.0343 110.0052
+ -9.7641 -16.2653 103.4467 -92.8578 -127.6051 -11.6661 -147.2539 -80.5264
+ -141.3278 0.0000 0.0000 -111.4803 -124.2662 -153.5736 0.0000 -89.3781
+ -127.7162 -157.6280 -100.7377 -79.1894
+ 110 -84.83 0
+ 93.7047 92.9730 92.6067 91.8161 90.6037 90.4761 90.6497 91.3047
+ 92.0766 94.1650 114.6922 103.0623 94.4499 93.1320 93.3930 129.7718
+ 115.9580 120.2888 93.9038 93.3510
+ 16.8946 168.3981 80.7880 52.5958 44.5360 45.9447 51.9811 39.3233
+ -109.7687 147.5718 -21.4082 164.6401 83.9987 -81.8470 145.4021 -72.7827
+ -101.8052 -138.6828 48.2865
+ 104.8600 150.6754 174.6975 138.1013 126.4350 99.0444 130.7032 142.9060
+ 108.0630 0.0000 0.0000 97.5505 114.3770 114.5350 0.0000 146.9911
+ 120.2527 106.9044 103.2568 117.6266
+ -81.5528 -25.2012 169.3185 -85.5116 -80.1825 -129.5122 -167.4355 -126.7371
+ -77.4141 0.0000 0.0000 -102.5686 -77.5677 -77.0584 0.0000 -104.2977
+ -130.1789 -103.7174 -119.9726 -76.8284
+ 111 -85.62 0
+ 93.7724 92.9332 129.9156 92.3235 90.7243 91.8167 90.6763 91.1217
+ 92.6760 92.5710 93.5224 88.9815 89.7639 94.6004 94.5609 130.3826
+ 117.4409 120.6139 92.8489 93.4225
+ 93.8257 127.4021 -97.1186 50.1746 42.4678 46.3237 68.8114 26.5188
+ -115.7784 148.3606 47.9046 50.3875 41.4950 -120.5631 152.8224 -82.5440
+ -107.8280 -146.7408 84.9614
+ 148.3072 141.5038 96.9401 150.7859 106.6970 153.0329 137.5755 135.8344
+ 102.2408 0.0000 0.0000 107.3530 111.4369 109.9688 0.0000 137.0412
+ 119.5739 111.3888 97.7334 120.3814
+ -25.3666 -42.2750 -102.4412 -105.5232 -65.6666 102.6549 -106.6982 -116.9028
+ -75.4024 0.0000 0.0000 -119.4153 -77.4617 -76.6017 0.0000 -72.1186
+ -127.3099 -111.0008 -102.3047 -130.2808
+ 112 -86.69 0
+ 93.9386 92.5180 90.4596 89.5084 89.3432 90.2378 90.2369 92.1785
+ 92.6721 114.2768 94.0642 90.4023 90.4893 94.4520 94.7456 128.6400
+ 119.0285 119.8562 93.3963 93.3445
+ 107.3056 157.7353 89.2222 45.4659 45.9416 57.8205 39.7997 64.3451
+ -39.9672 -158.9789 45.8735 48.1642 43.0404 179.0236 122.7278 -94.7938
+ -108.3646 -143.4444 56.5359
+ 143.1981 137.7926 116.8151 145.1851 97.9592 127.3818 140.4040 129.3990
+ 143.0184 0.0000 0.0000 97.8585 112.3260 113.7284 0.0000 111.4373
+ 122.7989 110.8508 99.4928 113.2694
+ -1.9883 -24.4386 -109.5648 -109.6190 -60.8951 61.6733 -152.5023 -133.3446
+ -155.8937 0.0000 0.0000 -96.9390 -81.4107 -76.5463 0.0000 -96.0323
+ -130.9410 -110.0291 -102.7149 -79.3486
+ 113 -85.12 0
+ 93.9880 91.3832 90.3621 89.6855 89.9264 89.8666 89.4646 89.6353
+ 91.6900 95.8593 107.5945 92.7912 92.3390 92.3369 96.2949 134.8701
+ 120.9327 119.6160 92.5793 93.3167
+ 125.0934 90.8733 51.9959 40.7291 52.7734 56.7986 52.7206 52.2310
+ -170.9188 117.6821 -16.2879 106.8519 107.6467 -38.5823 89.0988 -80.3442
+ -105.7007 -144.6897 82.2270
+ 142.0785 133.3910 129.9081 148.6648 121.3023 136.4490 139.9904 124.3992
+ 140.4515 0.0000 0.0000 95.6990 117.2299 114.4477 0.0000 122.8839
+ 116.9028 108.7781 107.0168 109.0706
+ -3.9212 -11.2470 104.3880 -91.1366 -130.8072 47.0962 -142.7016 -137.5153
+ -121.6107 0.0000 0.0000 -56.2719 -76.4190 -77.7542 0.0000 -117.2337
+ -122.0310 -107.9243 -122.0813 -79.9466
+ 114 -84.09 0
+ 93.8575 91.3566 90.1850 88.9427 88.8997 89.1839 89.1632 90.5704
+ 91.8818 141.5921 92.5683 91.0210 92.4907 123.0644 117.8701 108.0796
+ 115.5323 113.4041 93.4470 93.3114
+ 117.3280 88.1760 52.7938 45.1496 54.9963 61.4900 46.8623 58.9266
+ 176.7267 -46.7055 51.1608 53.4164 -68.4404 -70.2718 -33.6636 -105.5849
+ -114.6920 -166.3315 69.8879
+ 147.1198 130.1067 93.0196 145.5226 123.9186 125.5206 132.1831 133.2255
+ 142.6912 0.0000 0.0000 95.6103 108.6074 116.0945 0.0000 126.5543
+ 94.5790 124.5740 139.9739 114.2488
+ -13.7508 -3.3586 -91.7427 -95.9200 -139.8953 36.6257 -66.8874 -136.5829
+ -132.0511 0.0000 0.0000 -96.3625 -76.4198 -78.6575 0.0000 37.2526
+ -84.7606 -133.9273 -167.8743 -77.0430
+ 115 -84.92 0
+ 93.7106 92.9644 92.3595 91.8033 90.5002 90.6796 90.0824 90.7638
+ 91.9773 95.0432 92.6744 90.2286 90.9328 93.3533 95.2170 124.7066
+ 118.0694 116.6606 93.2470 93.2121
+ 27.1975 170.2043 79.0102 51.2628 43.6150 50.6671 47.1556 70.4362
+ -158.2375 74.8147 42.7115 74.7911 147.4830 -61.3992 60.4699 -102.2784
+ -109.3688 -138.0750 94.7172
+ 105.9103 152.4403 175.6134 139.2862 125.6397 100.2075 140.5072 137.2408
+ 138.1054 0.0000 0.0000 101.6415 125.3911 114.7020 0.0000 123.0625
+ 112.3630 115.9141 130.9059 106.7249
+ -80.4984 -23.3003 -177.5397 -86.0239 -79.7971 -128.5549 -161.5442 -131.9129
+ -124.7135 0.0000 0.0000 -100.1029 -142.3974 -78.4592 0.0000 -42.7758
+ -114.4696 -119.1382 -154.9493 -76.5906
+ 116 -89.53 0
+ 93.9986 91.4439 90.2139 89.3797 89.7349 89.8392 90.3789 92.3651
+ 91.1492 108.0426 115.3169 93.1870 92.6957 93.7494 96.9041 131.7495
+ 120.4388 120.2132 93.2959 93.3203
+ 125.5773 90.3592 48.3458 43.5820 48.4722 49.3333 43.0906 72.8524
+ -65.9883 -56.5220 -52.6643 83.2252 112.4054 -72.0351 82.7987 -88.5106
+ -108.7559 -139.9632 68.6774
+ 141.7282 137.3118 127.7842 149.6463 123.7427 155.9738 137.4665 131.7751
+ 138.1606 0.0000 0.0000 139.0093 112.6389 134.8043 0.0000 136.9338
+ 118.6782 113.2009 99.1535 112.4444
+ -3.0403 -13.7571 113.2176 -92.9986 -132.9546 34.9512 -137.2685 -135.7879
+ -117.8065 0.0000 0.0000 -166.2056 -76.7682 -160.0939 0.0000 -39.9115
+ -122.5468 -113.6421 -103.7325 -78.6542
+ 117 -91.40 0
+ 93.8632 91.4049 91.1824 90.1439 89.9234 91.0177 90.9528 92.2055
+ 90.3187 106.1872 99.2105 93.6430 93.8274 125.1084 94.9527 132.8348
+ 119.4689 121.0069 93.0125 93.4320
+ 103.6761 72.1577 46.2079 45.1778 46.6655 45.6763 46.0546 74.4680
+ -68.6737 -70.5127 -24.3704 104.0055 90.3885 -93.7761 86.6697 -70.0547
+ -111.9352 -149.2637 86.8286
+ 146.5539 139.0817 122.9596 146.9121 117.4417 156.3478 135.2848 137.0037
+ 129.3171 0.0000 0.0000 133.6261 116.7123 119.4098 0.0000 138.0844
+ 107.6816 112.9334 103.4070 118.7568
+ -11.0143 -38.4990 120.8901 -94.5082 -122.4765 14.8109 -139.4959 -129.6420
+ -137.1161 0.0000 0.0000 -156.0238 -75.9598 -77.6982 0.0000 -112.4986
+ -112.9892 -112.5717 -110.0749 -132.4970
+ 118 -85.32 0
+ 118.4410 116.6302 91.1462 89.8882 89.7607 90.0124 90.0619 92.2928
+ 92.1440 121.4187 119.4285 111.2627 93.9517 116.7615 94.7269 115.4584
+ 119.5798 119.0435 93.2161 93.3226
+ -80.4882 -105.6878 56.9886 44.0134 47.2613 53.6531 35.7255 61.4036
+ -57.3968 -65.8410 -21.6136 163.5713 82.4061 -39.6693 85.3143 -73.3118
+ -110.9069 -139.9404 73.5819
+ 109.2430 144.7900 129.2976 141.5426 122.7173 128.7832 139.6955 128.2998
+ 134.9823 0.0000 0.0000 82.9562 124.7993 120.3650 0.0000 114.1467
+ 118.2537 108.7192 99.1409 112.0838
+ -78.0011 -36.1763 102.5764 -92.7246 -103.4466 30.0134 175.7869 -130.9933
+ -112.3818 0.0000 0.0000 -77.5582 71.4958 -76.4859 0.0000 -116.5361
+ -124.7780 -107.9943 -105.3930 -78.3822
+ 119 -88.56 0
+ 115.8299 91.7758 91.8448 91.0594 90.1156 90.8079 90.6203 92.0067
+ 90.4084 102.7689 98.5172 92.8245 94.4878 123.1856 94.6974 129.9435
+ 119.0184 118.8888 117.3233 121.7872
+ -50.7116 80.5846 43.0688 43.7288 42.8688 50.1737 46.3034 74.8537
+ -64.6682 -65.7286 -32.9235 104.2822 102.9780 -95.5983 80.1239 -69.7057
+ -108.6123 -138.7488 -118.1709
+ 110.2939 131.0500 98.1131 148.1954 117.4544 163.7767 132.0606 135.2324
+ 131.0956 0.0000 0.0000 139.8392 113.0797 119.2614 0.0000 128.7553
+ 109.7679 110.7191 126.2138 121.4684
+ -81.9014 -28.8681 -81.7164 -95.9206 -118.6437 28.4496 -163.1115 -130.5050
+ -136.8470 0.0000 0.0000 -168.8037 -77.2493 -77.3798 0.0000 -91.9801
+ -113.9606 -111.5821 -134.4572 -80.9153
+ 120 -83.51 0
+ 93.8611 91.3649 90.9242 90.8826 90.1345 90.7764 90.1163 90.7599
+ 93.3449 94.3149 107.1384 99.4635 122.2560 121.8344 113.7909 112.7707
+ 117.6176 117.8368 93.3246 93.2459
+ 122.3337 83.4947 47.1590 41.9185 45.6389 50.8771 61.5824 32.5227
+ -113.2248 132.1105 5.1812 -176.1902 179.9481 -60.4211 -12.0791 -80.8749
+ -110.3827 -135.7812 89.9693
+ 148.3772 125.9536 92.4256 151.7987 120.4262 126.7463 138.3654 135.1859
+ 144.0294 0.0000 0.0000 93.1065 144.2207 115.6464 0.0000 109.4065
+ 115.5532 117.3302 130.6741 108.7588
+ -9.3803 -18.4448 -87.5915 -102.7278 -117.6945 97.1808 -131.1198 -132.4557
+ -124.3926 0.0000 0.0000 -94.1042 -156.1586 -82.1741 0.0000 -54.4313
+ -119.3485 -121.3888 -153.5205 -76.9199
+ 121 -84.55 0
+ 93.7572 116.4033 92.4053 90.6685 90.2689 90.8541 91.0289 91.2280
+ 93.1426 93.9085 128.3366 98.9025 93.4761 113.4832 95.4594 132.4275
+ 119.5077 119.2016 93.2752 93.3150
+ -9.9034 174.1419 66.5851 42.3707 49.8938 40.1720 64.7291 31.7700
+ -119.7639 145.4375 -38.1686 168.9395 126.8838 -69.1690 82.5005 -82.8830
+ -105.0021 -141.4937 75.3545
+ 101.1487 152.1588 133.5962 152.4542 103.7463 149.0130 131.6798 134.7815
+ 106.8864 0.0000 0.0000 96.3760 130.9922 115.3670 0.0000 100.5466
+ 119.5292 110.2485 101.9404 111.0569
+ -82.6711 -13.5848 119.4238 -98.0168 -43.4455 96.8037 -113.6222 -109.8083
+ -80.4330 0.0000 0.0000 -94.5699 173.4373 -80.5397 0.0000 -62.4426
+ -124.6416 -110.2467 -113.9738 -79.1118
+ 122 -88.10 0
+ 118.9856 112.5839 93.0482 89.8646 90.1605 90.5912 90.5130 92.2693
+ 91.4594 109.6143 120.3179 93.4101 93.2077 94.2955 97.0448 131.1405
+ 120.8806 119.0974 93.3747 93.3214
+ -91.1501 -169.3128 70.6520 41.7943 48.8118 49.3134 44.0992 69.1362
+ -71.6387 -50.6200 -58.9294 76.4042 111.4220 -74.2253 86.1364 -83.7566
+ -112.4440 -140.9645 66.6548
+ 108.8110 152.4001 133.6785 151.4407 99.8930 156.1373 135.0483 131.8779
+ 137.9231 0.0000 0.0000 139.4848 113.3217 135.8235 0.0000 139.3332
+ 108.8400 117.2547 101.2548 112.9684
+ -78.0416 -16.6909 113.2071 -93.6817 -65.2355 43.1907 -138.3018 -135.5402
+ -112.9103 0.0000 0.0000 -167.0235 -76.5662 -160.2337 0.0000 -53.1470
+ -110.2117 -120.3398 -100.9607 -78.4282
+ 123 -85.26 0
+ 93.7178 92.8889 91.7968 90.9104 90.3382 89.7577 89.8812 90.8957
+ 92.2141 137.2043 94.3647 92.3280 92.9666 130.7243 114.0551 127.5437
+ 114.6152 120.5600 93.2266 93.3316
+ 22.8061 173.3688 84.9726 47.2514 46.0492 54.6732 52.6399 75.9253
+ -103.4232 -76.0254 37.4607 53.4245 -49.7038 -173.9368 156.0438 -80.0858
+ -104.0240 -143.5914 63.2000
+ 104.0683 144.1803 144.4136 142.4935 124.1941 101.8412 141.2513 131.7697
+ 138.1889 0.0000 0.0000 97.9946 114.2459 116.3118 0.0000 122.6755
+ 125.9665 108.6113 101.9526 112.7253
+ -79.7549 -27.9187 -103.8176 -116.2346 -84.1211 -131.9200 -140.9226 -134.2729
+ -114.5845 0.0000 0.0000 -96.8646 -76.2101 -78.0533 0.0000 -123.1531
+ -137.4139 -105.9829 -112.8275 -79.0819
+ 124 -88.39 0
+ 93.8692 91.4196 90.9845 90.6365 89.9632 91.0122 89.9345 91.9506
+ 92.5654 121.7098 119.0185 96.6363 91.1068 94.8671 96.1701 122.6266
+ 116.5456 114.1633 93.4918 93.2807
+ 107.5579 74.9893 45.5644 47.4585 42.8070 61.7309 38.2673 78.5695
+ -59.6887 -23.2501 -47.5204 -39.9910 111.9901 24.5323 66.1489 -81.4356
+ -108.7988 -134.6491 82.1719
+ 146.4700 141.9483 124.6965 148.0919 121.5497 167.1049 145.9095 100.0067
+ 142.8334 0.0000 0.0000 94.2865 140.8322 113.0500 0.0000 112.5953
+ 123.2254 100.6738 128.8375 111.3392
+ -10.7437 -36.1500 122.8568 -98.3641 -120.5146 -112.2502 -148.3018 -107.0374
+ -120.1066 0.0000 0.0000 -92.1488 -38.1226 -80.0880 0.0000 -129.1081
+ -133.9367 -83.2849 -150.7672 -77.1248
+ 125 -83.78 0
+ 116.4837 118.1200 91.2340 88.8487 88.9507 88.9460 90.1015 90.3390
+ 92.7214 94.4161 132.3852 92.1299 91.2814 92.5178 95.7389 122.7680
+ 118.0480 118.6908 93.1263 93.3162
+ -171.0501 -111.3439 65.3266 44.9301 52.3319 45.8217 61.6075 33.1321
+ -116.3334 150.1558 -51.4525 67.4518 100.0740 41.7916 83.9307 -88.9644
+ -108.7267 -141.8496 72.0535
+ 151.0501 141.9999 119.8812 149.3825 110.6440 160.0511 139.3193 136.1495
+ 107.2797 0.0000 0.0000 98.9690 108.3766 115.2144 0.0000 88.7731
+ 121.3040 109.4978 105.3205 111.8013
+ -20.9431 -26.1687 122.4929 -96.0007 -87.7253 102.8406 -94.3636 -133.6677
+ -79.9390 0.0000 0.0000 -100.9466 -77.4457 -80.9114 0.0000 -62.3551
+ -128.4125 -108.8917 -113.8516 -78.7966
+ 126 -85.41 0
+ 93.8631 91.4474 89.7116 89.9532 90.2046 91.0475 90.5646 90.4339
+ 92.1443 96.4683 128.2000 113.5703 96.8675 128.0450 94.7263 118.6816
+ 119.6730 117.2127 93.7220 93.2936
+ 126.9031 89.9942 52.5935 41.5998 44.0447 48.5471 67.8794 92.3984
+ -49.3077 91.3964 -26.7069 -144.9525 164.8181 -161.4246 63.8781 -84.9662
+ -165.2438 -149.3444 85.1329
+ 149.8599 131.6504 96.6614 148.2582 126.1236 130.1094 134.9701 132.6698
+ 104.1202 0.0000 0.0000 95.8373 116.3430 122.0513 0.0000 142.6201
+ 111.5207 115.8153 131.1958 111.8799
+ -3.6650 -12.0939 -81.7462 -106.8561 -127.1248 92.5514 -136.5720 -121.0616
+ -82.9809 0.0000 0.0000 -72.2116 -76.4654 -79.9793 0.0000 -36.6141
+ -113.7427 -115.9420 -155.2856 -77.0430
+ 127 -84.24 0
+ 93.7570 92.9980 131.6998 92.0563 89.8948 90.3281 90.5251 91.7205
+ 92.6498 94.3042 119.7993 91.7558 90.2675 94.2630 97.1599 125.0371
+ 120.2541 120.3438 93.1793 93.3451
+ 101.0861 121.3028 -93.7971 57.0128 41.9543 73.4136 41.1120 73.7918
+ -97.8193 119.4451 -8.2929 67.3298 92.4838 -42.0678 92.1148 -79.7116
+ -112.6560 -140.4045 60.6775
+ 149.5886 149.1202 91.8848 142.5037 122.5613 118.5181 143.2932 84.6665
+ 137.4815 0.0000 0.0000 96.3073 110.9569 118.4261 0.0000 116.8190
+ 115.6744 112.2989 95.3223 111.3292
+ -24.9977 -38.8452 -96.5988 -102.9416 -64.3856 -37.2878 -48.6142 -82.7823
+ -124.0950 0.0000 0.0000 -79.9804 -78.7253 -134.7811 0.0000 -133.0720
+ -120.4586 -112.4687 -92.0582 -80.6457
+ 128 -86.12 0
+ 93.8713 91.3624 90.8169 90.2843 90.0774 90.9824 90.3455 91.8758
+ 90.5821 95.6276 151.5734 129.2609 93.9125 120.3295 95.7464 125.0202
+ 120.8791 118.3912 117.5484 121.8633
+ 120.2605 85.7179 45.6917 45.6121 42.7705 48.4993 44.0748 75.0289
+ -95.7467 53.5947 -71.3969 161.8174 78.8914 -47.0591 93.8451 -80.2356
+ -111.1424 -138.5165 -118.9185
+ 147.1354 128.6289 92.7217 146.9321 120.9358 144.8005 131.6599 136.8550
+ 137.6004 0.0000 0.0000 104.7613 111.3600 123.8942 0.0000 117.8913
+ 115.7540 106.1763 125.4244 121.6677
+ -11.1175 -15.3431 -87.7377 -97.1190 -127.9049 23.2716 -159.7168 -133.6675
+ -122.5117 0.0000 0.0000 -96.3692 -79.0937 -79.6359 0.0000 -114.8870
+ -120.9265 -105.8599 -134.7197 -80.9535
+ 129 -84.98 0
+ 93.9086 91.4908 90.4434 88.8624 89.0946 89.1010 90.1061 90.4280
+ 92.9824 94.4118 134.9795 91.7929 90.3082 92.0125 94.2394 112.0237
+ 116.6880 119.8425 93.8816 93.4136
+ 123.6357 85.2016 48.2916 45.4895 50.2184 47.4730 64.7989 30.9211
+ -115.6409 148.0699 -50.2126 59.7525 72.8469 47.2309 71.0682 -68.8486
+ -107.4326 -145.8377 51.1933
+ 146.0769 133.2804 95.9747 154.0859 125.2586 153.4652 140.9603 135.1065
+ 109.4809 0.0000 0.0000 97.9090 111.6985 114.3937 0.0000 81.3400
+ 119.9763 110.1907 94.9164 129.5780
+ -7.0061 -22.1937 -90.4521 -101.3676 -124.9375 98.5036 -110.8746 -131.6304
+ -80.4828 0.0000 0.0000 -102.3317 -78.0881 -83.4506 0.0000 -71.1581
+ -127.4986 -109.4514 -105.6052 -142.4732
+ 130 -85.56 0
+ 93.8565 91.3589 90.6601 90.3611 89.9287 90.8564 90.7541 91.4568
+ 93.3020 122.8763 122.8447 92.4660 93.3632 95.7340 97.1096 126.6082
+ 113.9746 122.9723 92.9841 93.3453
+ 117.7816 85.3176 47.4412 45.3496 42.9647 48.3907 47.2157 41.4723
+ -173.0749 169.2372 -39.6981 65.3769 146.0774 18.5962 67.5173 -66.7399
+ -100.9342 -152.1135 65.7519
+ 147.4441 127.2828 91.8941 146.1495 121.2334 134.0569 132.8096 137.5913
+ 114.2823 0.0000 0.0000 86.0306 112.2194 121.8087 0.0000 117.2909
+ 116.7953 112.6678 97.2355 108.3923
+ -12.8214 -11.8201 -90.8360 -95.9704 -128.9058 25.5639 -165.3722 -132.6157
+ -86.6182 0.0000 0.0000 -86.6147 -80.0982 -174.9968 0.0000 -66.1600
+ -124.8016 -110.7105 -108.8448 -82.6995
+ 131 -85.58 0
+ 93.7844 92.0589 90.7709 89.4501 89.3633 89.9918 90.5220 92.0958
+ 92.5390 95.0295 132.0345 115.4364 126.7949 121.9469 95.5035 129.1002
+ 117.5538 121.0129 93.0597 93.3158
+ 101.0332 134.4742 57.0853 41.9613 52.1734 46.8315 45.4762 76.0274
+ -111.6938 112.3603 -42.5670 -152.0421 178.6584 -91.6327 164.0381 -98.7509
+ -107.2158 -144.0240 73.2487
+ 149.5180 118.3100 86.2182 147.7657 124.5183 139.2361 139.4874 131.5245
+ 137.6628 0.0000 0.0000 130.4272 151.9151 116.8977 0.0000 130.6934
+ 124.1932 108.1963 107.0780 111.7969
+ -19.3540 -45.2128 -95.4166 -96.9062 -147.1338 28.0546 -108.5899 -136.5746
+ -124.5695 0.0000 0.0000 -140.7764 -103.2568 -79.7171 0.0000 -109.1623
+ -134.4418 -105.8814 -112.6716 -78.7265
+ 132 -85.84 0
+ 93.9185 91.5444 91.0995 90.4444 89.7042 90.1755 90.2916 91.9501
+ 92.3508 95.1998 147.9611 89.9609 90.2352 93.2598 96.4991 123.5541
+ 118.7159 118.5581 119.3586 121.8016
+ 121.5775 87.9503 43.6435 46.1444 42.7708 55.6505 40.1952 73.0814
+ -79.8646 169.9320 -38.2316 53.3612 48.9329 -107.2116 144.7788 -86.1780
+ -112.5911 -132.9567 -118.2215
+ 144.8166 134.2541 131.7982 142.8323 121.2245 139.8658 143.7102 129.3978
+ 135.7694 0.0000 0.0000 132.7752 111.3143 109.0944 0.0000 135.2616
+ 116.7552 111.7306 112.6976 121.4122
+ -9.2202 -18.2154 110.4183 -89.4978 -129.6070 -0.0855 165.1332 -134.0485
+ -124.9130 0.0000 0.0000 -162.2280 -77.5570 -77.9363 0.0000 -55.4689
+ -122.6375 -113.0225 -111.7132 -80.9733
+ 133 -84.34 0
+ 93.9314 91.4953 91.4362 90.1539 89.7279 90.2797 90.2889 92.3544
+ 92.2220 123.6028 123.3805 115.6297 92.7662 93.8541 120.9568 128.0404
+ 116.9099 119.2634 93.1893 93.2999
+ 122.9104 87.3537 41.9933 47.6326 43.6266 53.5753 34.8632 58.6889
+ -59.0619 -64.1446 -7.7674 176.9604 89.6755 5.7328 -22.4785 -85.7612
+ -106.9653 -139.8996 79.4183
+ 144.5267 133.9085 129.0285 143.9703 119.5763 132.0200 140.5071 129.2006
+ 133.5529 0.0000 0.0000 81.8864 111.7560 115.1287 0.0000 88.7068
+ 113.9750 111.1844 102.9892 111.3162
+ -7.5282 -18.3053 110.4702 -90.5234 -130.6135 30.6760 176.7034 -131.5795
+ -109.1300 0.0000 0.0000 -80.6097 -71.8166 -76.1931 0.0000 -63.4814
+ -117.8921 -113.4587 -108.9725 -78.0793
+ 134 -86.41 0
+ 94.0083 91.4028 90.8065 90.1569 90.2017 90.7913 90.0153 91.2514
+ 93.1510 94.8641 120.2546 100.7256 125.0652 96.6901 94.6336 116.4376
+ 120.6970 123.5857 93.5175 93.3058
+ 127.6748 88.9116 46.6443 43.6672 48.1436 52.8011 41.1221 61.8901
+ -176.8705 153.9881 -3.3135 -158.2800 175.7363 -66.5020 41.0181 -84.2078
+ -168.2968 -143.8100 74.1989
+ 142.1081 136.5889 121.1619 151.1464 119.7754 125.3052 141.3550 128.5478
+ 137.7493 0.0000 0.0000 98.4539 134.0682 112.6314 0.0000 136.9675
+ 108.3582 117.8509 133.0383 112.9809
+ 0.6928 -18.9569 107.0144 -94.0726 -127.1777 33.3575 -120.0675 -136.5314
+ -115.8283 0.0000 0.0000 -106.3312 138.3957 -79.8133 0.0000 48.5299
+ -106.5439 -119.5003 -156.4560 -77.4952
+ 135 -87.04 0
+ 93.9729 91.4687 90.9507 89.6279 89.5430 89.7408 89.9186 91.9540
+ 92.2010 122.1993 121.7953 111.7202 93.2851 120.0026 94.6320 116.1603
+ 118.9596 119.9329 118.4295 121.9160
+ 125.8278 91.2530 45.9863 47.3321 45.0352 55.3464 36.7698 63.3505
+ -55.1019 -63.1331 -32.8356 161.0853 81.4868 -42.8853 87.5741 -64.7397
+ -109.9143 -135.8397 -118.8666
+ 143.2761 135.3790 124.1043 142.6105 121.9775 123.5374 146.9967 127.7194
+ 135.7807 0.0000 0.0000 89.4648 135.1310 117.7379 0.0000 120.7354
+ 116.2892 107.9036 118.9799 121.5738
+ -3.1232 -17.6122 97.8348 -89.9547 -133.8604 25.1166 173.5688 -133.0869
+ -115.5952 0.0000 0.0000 -77.6725 122.6352 -77.2998 0.0000 -113.8877
+ -122.7425 -106.4273 -124.8329 -81.1046
+ 136 -84.43 0
+ 93.8395 93.0260 111.4891 124.9395 91.7736 92.1889 91.1488 90.8740
+ 91.3234 98.3351 96.2749 92.9982 93.3643 121.0195 95.6172 124.3414
+ 117.5953 124.0992 92.9110 93.3278
+ 98.1633 168.6080 172.7008 168.1719 72.2843 125.3600 74.1054 107.6181
+ -19.5570 -73.0216 -18.3244 105.1620 128.7717 -89.9588 48.0033 -86.5731
+ -110.5441 -152.1806 73.7108
+ 148.3966 129.4807 124.4915 159.9657 132.2248 98.5493 145.7095 105.7713
+ 134.6338 0.0000 0.0000 133.8163 134.7177 115.2983 0.0000 145.6165
+ 121.5007 113.8275 106.6909 110.1872
+ -7.1513 -32.0099 -120.3230 -86.8428 -127.2822 -74.3908 -95.7704 -122.5785
+ -131.3516 0.0000 0.0000 -157.9688 -116.2917 -89.4289 0.0000 -47.6945
+ -130.4511 -110.9634 -113.4386 -80.3130
+ 137 -85.52 0
+ 93.9064 91.3195 91.0887 91.3303 90.6301 91.4382 90.2244 90.5531
+ 93.2726 94.0364 110.3220 93.4047 92.4606 94.8747 98.6375 133.1550
+ 119.7116 119.0327 93.3299 93.3128
+ 124.5355 85.5844 47.6082 41.2544 43.9397 52.0349 67.0694 28.7464
+ -113.4564 133.1067 5.1231 113.0608 87.4097 14.5898 80.3393 -87.4041
+ -113.6204 -141.9842 70.8334
+ 146.4905 127.5479 95.7649 153.0281 120.0478 126.2768 136.2762 134.4237
+ 142.2880 0.0000 0.0000 89.1202 109.4698 114.0149 0.0000 164.0654
+ 109.5338 114.2352 104.3223 112.9577
+ -6.0299 -19.4170 -83.3593 -102.3423 -116.5383 93.8873 -133.5107 -130.9050
+ -115.3870 0.0000 0.0000 -87.3070 -78.3512 -78.0347 0.0000 -95.0688
+ -113.0198 -115.4849 -103.7698 -77.9225
+ 138 -84.36 0
+ 93.9235 92.3353 90.9964 91.0427 89.9516 91.3048 90.5326 91.0150
+ 92.3659 95.7108 143.9067 135.5307 92.5151 125.3561 95.1850 120.1615
+ 125.0168 110.2870 93.7901 93.3734
+ 117.1543 153.4259 96.1754 47.1361 43.2254 75.4012 50.5215 70.4592
+ -80.9162 170.3611 -53.9835 157.7617 125.7927 -67.6636 78.0303 -78.6946
+ -166.9247 -147.3762 45.7803
+ 144.9417 136.7284 129.8120 144.6447 88.6818 110.1691 154.2059 91.0570
+ 106.5129 0.0000 0.0000 104.9637 114.1695 128.6023 0.0000 101.3873
+ 111.3375 132.0380 99.3325 114.3614
+ 5.7807 -25.0060 -111.6591 -104.0717 -68.4978 -57.3932 -159.0097 -88.9754
+ -81.1755 0.0000 0.0000 -94.5187 -76.3975 -131.6819 0.0000 -74.1144
+ -111.0086 -146.7601 -90.4389 -79.7564
+ 139 -88.36 0
+ 93.8977 91.2811 90.5623 89.5431 90.0032 91.1451 90.6321 91.6621
+ 92.6797 132.4192 96.3798 93.8314 92.4682 119.3007 95.5622 118.9559
+ 114.7218 116.6552 93.5402 93.3085
+ 122.2103 86.4177 49.5774 44.3781 46.9406 48.9186 43.3826 58.3497
+ 166.6087 -84.5325 23.2148 58.3373 -34.6361 -112.5327 152.2593 -72.3109
+ -113.4091 -144.6425 71.9290
+ 146.2150 128.0670 96.3111 151.3373 123.1449 121.4668 128.4465 133.4709
+ 139.7164 0.0000 0.0000 99.1198 117.9142 114.9373 0.0000 147.7921
+ 88.0319 119.1356 134.1726 113.4328
+ -8.9279 -12.8768 -90.7526 -97.4344 -127.5762 54.7181 -146.3633 -134.5255
+ -132.2516 0.0000 0.0000 -96.6949 -75.4384 -78.8177 0.0000 -20.8218
+ -86.4461 -123.4258 -159.8376 -77.3742
+ 140 -86.69 0
+ 93.9394 93.1891 132.7115 91.3006 89.4785 89.0786 89.4240 89.5685
+ 91.1626 95.0021 94.5058 89.9138 88.9924 93.7876 97.9133 128.9800
+ 121.0656 117.6076 93.7922 93.4140
+ 93.3079 112.4074 -97.6001 59.2918 42.2929 55.5232 51.1077 41.6320
+ -118.9366 123.7472 40.3386 54.2042 92.5526 -41.6078 86.9267 -85.9162
+ -111.6734 -143.7016 52.9141
+ 139.4247 152.6343 89.3640 142.6532 113.8981 148.5789 147.5048 133.7375
+ 141.1296 0.0000 0.0000 114.4071 125.9499 112.0822 0.0000 141.3860
+ 109.4685 115.4171 102.2442 128.9440
+ -19.5038 -29.9750 -98.4063 -102.2152 -29.1669 110.0628 -35.7306 -142.1747
+ -111.1416 0.0000 0.0000 -114.5102 -168.7102 -82.3936 0.0000 -69.8576
+ -111.7897 -117.9752 -108.4841 -142.3674
+ 141 -85.70 0
+ 93.9401 91.5978 91.4255 90.7213 89.7588 90.0116 90.3411 90.7709
+ 91.3394 93.7713 92.8332 89.4784 90.5437 93.2046 95.4236 125.2291
+ 118.4585 118.3952 117.7532 121.8586
+ 121.1337 88.0337 43.7018 47.0362 47.5254 43.5167 54.3813 42.1579
+ -115.3979 154.4719 47.0161 47.9420 52.5893 -112.6343 157.7582 -85.9093
+ -111.0922 -137.3634 -118.7071
+ 143.3581 139.2921 140.8456 144.3541 122.2495 150.4784 136.0176 124.0460
+ 101.7977 0.0000 0.0000 126.2698 111.8957 112.4331 0.0000 140.7223
+ 115.7015 109.6234 124.1008 121.5782
+ -8.9411 -17.7100 113.4390 -92.7409 -126.9312 -35.1909 -149.5808 -102.8380
+ -81.7529 0.0000 0.0000 -149.8578 -76.7539 -76.6020 0.0000 -58.9603
+ -121.9124 -110.3399 -130.3469 -80.9930
+ 142 -84.02 0
+ 93.7266 93.0202 123.5162 91.7181 90.1918 91.0384 90.9968 92.0349
+ 93.1505 94.4672 132.1447 115.4963 122.3912 96.3950 94.9583 129.5576
+ 117.9838 118.2440 93.9645 93.4494
+ 108.6368 128.5305 -99.0087 54.8645 44.3025 46.1790 46.8489 47.2917
+ -114.4703 161.4348 -37.5171 177.7245 179.9424 -61.8859 165.9429 -108.5601
+ -109.6290 -149.2556 34.6174
+ 153.2911 137.7078 96.3375 145.8354 121.5341 115.7748 143.7718 139.7820
+ 110.1220 0.0000 0.0000 118.5504 121.6893 114.7344 0.0000 105.5532
+ 115.7010 111.3999 95.0736 115.3291
+ -20.0013 -30.8564 -93.8151 -106.0438 -74.5442 -28.5011 -102.2773 -134.8018
+ -79.9138 0.0000 0.0000 -123.7975 -79.4360 -77.3134 0.0000 -90.1654
+ -122.4201 -111.7952 -104.4136 -81.8056
+ 143 -85.21 0
+ 93.8759 91.4356 91.6639 90.9304 90.4428 91.2065 90.4699 91.0622
+ 92.3108 95.3165 132.8065 105.3491 94.3711 112.9584 94.7774 122.3981
+ 116.6098 122.2576 117.6783 122.8427
+ 123.8628 84.1449 45.4159 42.8692 45.2673 44.9145 54.9506 48.9500
+ -116.7295 157.5403 -56.8420 173.7073 146.5773 -69.6996 67.4712 -79.1731
+ -109.8278 -141.3254 -126.3792
+ 147.9032 128.6500 94.4729 149.8092 118.6605 162.7459 128.9270 126.7514
+ 111.9592 0.0000 0.0000 98.7034 129.5503 114.5688 0.0000 87.8248
+ 120.0601 112.0427 118.0332 123.3967
+ -7.5942 -31.2812 -81.9780 -99.2172 -115.4529 34.1580 -143.4315 -106.2804
+ -81.8992 0.0000 0.0000 -91.1786 154.0508 -80.6762 0.0000 -66.8169
+ -127.6767 -109.1739 -122.2016 -81.9156
+ 144 -85.98 0
+ 93.8890 91.3439 91.3764 90.3155 90.5753 90.8631 90.0991 90.8091
+ 92.5658 123.8637 109.3636 91.3736 92.4586 94.5104 95.5481 122.5170
+ 117.5720 121.0019 93.6167 93.3463
+ 122.8597 87.0776 46.9515 41.6426 46.8608 48.0283 49.9071 41.5755
+ -110.8510 -82.2069 -24.8605 87.5131 39.5429 -123.6484 123.2484 -84.4161
+ -161.2664 -166.4339 52.5869
+ 146.8139 126.7464 96.3169 147.1744 116.2970 136.4958 129.2525 135.5578
+ 136.2174 0.0000 0.0000 104.0251 106.5819 114.7777 0.0000 133.5587
+ 112.6980 128.5536 94.8833 112.9157
+ -8.6073 -22.7238 -87.7635 -97.2860 -122.7530 61.8183 -151.6315 -134.1420
+ -108.2024 0.0000 0.0000 -105.7412 -77.6831 -79.2801 0.0000 -42.5897
+ -115.4124 -133.6835 -90.1608 -79.6932
+ 145 -85.36 0
+ 116.7856 91.3859 91.0468 89.7817 90.1130 91.1957 90.7990 91.8278
+ 93.1357 133.9162 111.4101 91.0194 90.2045 107.7659 94.7331 120.3002
+ 114.8042 106.8454 93.3117 93.3461
+ -84.1047 83.5448 47.2374 45.1255 46.7155 48.5854 43.2921 56.1310
+ -176.7590 -69.7491 -6.4674 72.5388 -0.0913 -135.2096 122.5981 -71.6983
+ -131.4953 -172.5612 49.8252
+ 147.5395 128.2277 98.3221 152.5093 123.7282 120.9041 128.1856 134.4623
+ 141.7497 0.0000 0.0000 100.9378 107.5954 103.6069 0.0000 140.8220
+ 90.6936 130.5288 108.5098 113.3510
+ -34.7093 -11.2918 -91.9324 -96.6243 -125.2479 62.7176 -144.6252 -134.9551
+ -133.3213 0.0000 0.0000 -97.0993 -76.3855 -75.6163 0.0000 -43.4289
+ -82.9485 -146.6820 -107.5989 -79.3884
+ 146 -84.34 0
+ 93.8744 91.7614 90.4925 89.8973 90.2594 90.8830 90.8295 90.8725
+ 91.8496 96.2782 138.9963 123.0258 119.1260 121.9738 95.0112 130.8411
+ 117.5072 119.4291 93.5452 93.2998
+ 114.2306 109.0648 55.3041 42.4130 44.3408 47.1920 54.0424 97.4789
+ -57.6730 91.9844 -39.4412 -151.9935 172.6282 -86.1326 160.5157 -80.0949
+ -107.2446 -138.6898 76.9053
+ 145.1991 132.3100 95.8825 146.7597 128.9940 144.9635 136.6815 134.5260
+ 103.7602 0.0000 0.0000 116.4363 120.0233 117.0230 0.0000 156.5086
+ 114.4327 113.7388 130.7438 112.3969
+ -16.0068 -28.5554 -89.1922 -95.8778 -135.2037 111.9494 -55.2058 -117.9997
+ -83.9063 0.0000 0.0000 -116.6939 -80.0354 -79.3218 0.0000 -90.3988
+ -120.9263 -113.9435 -153.7463 -77.4914
+ 147 -86.71 0
+ 93.7736 92.8505 134.0961 91.1049 89.9720 90.5639 90.8604 91.4547
+ 91.3048 99.6904 98.6391 93.0574 93.7652 118.4043 94.8458 130.2871
+ 117.7997 119.8758 118.3827 121.9146
+ 86.4569 117.7062 -94.9932 61.2188 41.7625 55.8013 67.6516 103.3998
+ -23.0121 -69.4830 -23.4208 102.8210 113.6162 -92.8757 63.5633 -84.5301
+ -109.0304 -137.9160 -118.5159
+ 147.6466 146.3522 84.8237 141.5671 115.2278 152.7155 136.7578 119.8511
+ 143.3650 0.0000 0.0000 103.9379 119.0671 115.8724 0.0000 101.5137
+ 114.0713 116.7367 120.1829 121.4533
+ -27.1180 -34.6444 -98.6860 -108.9001 -93.5554 21.4564 -47.3995 -122.4603
+ -137.7961 0.0000 0.0000 -97.9424 -75.8718 -85.2727 0.0000 -64.7932
+ -118.8730 -116.7398 -124.1129 -81.1588
+ 148 -87.25 0
+ 93.7399 92.7495 128.8244 91.3157 89.9580 91.1243 90.5437 91.7098
+ 90.6133 105.0900 98.0118 92.6654 93.2816 117.3427 95.1370 129.7775
+ 118.6102 118.7749 92.8050 93.3475
+ 81.2661 121.8690 -93.4776 57.4545 36.9155 55.0111 43.8351 77.7677
+ -61.4544 -63.6686 -33.2217 105.7718 107.9234 -75.2766 80.7187 -70.1236
+ -105.8968 -153.2243 59.2053
+ 105.4984 138.6196 90.8638 141.1922 116.2460 147.4644 133.5098 101.4373
+ 133.0360 0.0000 0.0000 108.5333 113.3449 118.7027 0.0000 121.4628
+ 114.5139 107.4399 107.0373 110.7633
+ -76.8169 -45.5181 -102.2005 -101.8571 -68.6334 -32.4509 156.7118 -93.8688
+ -139.4404 0.0000 0.0000 -96.0230 -77.3792 -87.3555 0.0000 -124.0416
+ -120.5962 -106.7466 -122.5682 -81.1788
+ 149 -86.19 0
+ 93.6181 93.3114 130.9949 92.5129 91.0880 91.6649 90.4836 92.3915
+ 91.1080 109.8840 107.1298 92.3213 94.2575 124.1707 95.5132 132.2955
+ 117.8983 118.4488 93.2077 93.3561
+ 101.6747 122.4987 -99.3167 56.8315 37.2192 57.0284 39.4367 66.3305
+ -67.9332 -57.2263 -76.1455 65.9710 136.0612 -96.1914 67.5952 -86.7733
+ -102.0955 -142.1322 54.9075
+ 156.5207 139.9219 90.6188 147.6517 108.3805 152.1808 145.5858 133.3676
+ 139.1331 0.0000 0.0000 134.2264 113.8776 119.0061 0.0000 109.8984
+ 124.8651 111.4662 99.9239 112.6645
+ -31.2833 -45.3052 -99.1048 -107.6160 -87.3977 96.8657 -127.0573 -136.7699
+ -137.7010 0.0000 0.0000 -161.6058 -76.5220 -85.2967 0.0000 -56.0967
+ -133.0802 -111.5319 -112.1401 -80.2109
+ 150 -86.03 0
+ 93.9161 107.8352 109.7722 90.2064 89.2422 90.8524 90.1298 91.6337
+ 90.8937 109.9825 102.0248 92.9420 93.1686 122.9913 96.0451 126.3797
+ 119.4182 120.6812 117.6550 121.8804
+ 129.5933 -175.9937 -167.2047 53.4891 43.0141 56.4887 40.2597 74.0716
+ -55.0885 -72.2349 -26.2894 100.5207 103.0580 -84.4388 77.3353 -79.8112
+ -111.8536 -137.7708 -118.7128
+ 147.4995 139.2979 116.2089 145.2145 113.7220 146.1853 137.3069 99.1530
+ 133.6348 0.0000 0.0000 140.1568 114.6163 134.8570 0.0000 139.5530
+ 114.9843 109.8475 123.4097 121.5726
+ -6.4851 -26.8335 -124.8755 -102.9925 -94.1876 -27.1401 -161.0653 -97.2845
+ -138.5175 0.0000 0.0000 -168.2213 -78.4873 -161.6693 0.0000 -95.5554
+ -120.2211 -109.1746 -128.0423 -81.0398
+ 151 -83.34 0
+ 93.9204 91.4009 91.8330 90.9000 90.4744 91.4785 90.3660 91.3706
+ 93.1763 95.3150 125.8552 114.0566 131.1912 93.8157 124.1221 112.9183
+ 118.9244 122.3354 93.3979 93.3399
+ 124.6886 86.1434 46.2438 40.4914 48.7933 50.6755 45.9661 50.4103
+ 166.1233 60.3364 -39.4614 -149.7141 -171.0290 62.3435 -12.4801 -68.7892
+ -117.5048 -162.7493 57.9133
+ 145.7722 129.0381 98.0334 150.5128 116.8512 128.6695 130.3089 131.1298
+ 141.2536 0.0000 0.0000 126.6488 151.8592 115.7020 0.0000 149.3865
+ 110.2099 117.9864 99.6620 112.2565
+ -5.5640 -22.8362 -86.3838 -96.7409 -116.7167 57.7798 -145.0004 -134.9706
+ -116.8200 0.0000 0.0000 -135.0107 -109.1028 -76.2409 0.0000 -35.5227
+ -114.0013 -117.3380 -104.6860 -79.8578
+ 152 -89.99 0
+ 93.7049 92.9567 91.9207 89.8294 89.3379 90.5039 90.5498 91.6733
+ 90.8117 108.6985 101.0252 92.9960 93.3352 124.1894 95.5832 124.8796
+ 118.7806 120.4444 93.0561 93.4273
+ 44.9410 172.4808 77.1161 48.5272 44.9511 51.8585 42.3336 72.3260
+ -60.3081 -69.4705 -26.8304 100.1833 107.4372 -87.7229 73.6111 -80.1217
+ -110.9590 -147.0183 85.4519
+ 109.2350 143.1554 143.8560 145.7845 112.8045 157.9260 135.8464 103.6412
+ 130.5682 0.0000 0.0000 138.6845 115.4426 130.7760 0.0000 131.7230
+ 116.3896 110.9500 101.0323 119.5458
+ -81.1577 -20.3323 110.8945 -97.7488 -63.3218 -6.0774 -163.9711 -98.6249
+ -136.0804 0.0000 0.0000 -165.2702 -78.7523 -159.1922 0.0000 -84.6719
+ -122.4949 -110.8078 -107.8191 -131.2285
+ 153 -88.06 0
+ 93.9264 91.2922 91.3000 89.8425 90.0116 90.3707 90.0405 91.8871
+ 92.3177 118.7733 119.6081 111.5078 93.6115 131.4619 95.8431 132.4718
+ 119.0740 127.4349 92.5483 93.3317
+ 126.1888 88.2348 50.6270 41.0976 49.0565 59.3836 39.2828 60.2916
+ -69.7035 -47.7890 -57.2609 152.0751 86.7041 -104.7937 95.5772 -79.9354
+ -143.0656 -167.2296 81.7324
+ 146.0455 126.5738 101.8549 151.4775 119.0026 130.7072 131.2607 129.3198
+ 138.2675 0.0000 0.0000 131.3512 114.1941 125.0989 0.0000 84.2268
+ 110.7121 114.6852 100.5612 108.9317
+ -3.4086 -19.2681 -91.7670 -104.7205 -120.7908 35.4465 -156.7875 -133.0692
+ -119.6968 0.0000 0.0000 -143.8679 -76.7348 -84.5085 0.0000 -78.6820
+ -113.7307 -110.3735 -101.3019 -80.9092
+ 154 -85.87 0
+ 93.8670 92.9310 123.0156 90.4726 89.5994 89.3590 89.6480 91.4188
+ 91.5263 117.0396 121.4686 108.5763 94.0307 93.2956 94.6215 131.2817
+ 117.9764 119.2303 93.8662 93.4404
+ 112.9693 117.9336 -90.5607 60.3291 41.8047 60.6767 38.5803 63.5279
+ -54.2278 -85.4410 -58.9103 175.8367 74.3528 -94.9810 152.2377 -109.0820
+ -112.7295 -168.7576 29.6318
+ 145.9050 140.2568 92.6701 143.4235 130.4833 123.3376 153.1686 126.1403
+ 136.2160 0.0000 0.0000 131.8759 114.9411 118.5826 0.0000 139.5723
+ 115.0238 116.8115 91.3021 113.4883
+ -15.4170 -32.1253 -87.8322 -116.1094 -122.5619 16.6970 -144.1551 -138.9218
+ -115.7987 0.0000 0.0000 -145.6129 -78.5595 -76.4710 0.0000 -106.2157
+ -120.8682 -118.7952 -79.4313 -82.3296
+ 155 -83.80 0
+ 93.8618 91.4480 90.8354 89.2629 89.3555 89.6068 90.0181 90.1050
+ 91.5430 94.7439 91.5726 89.1899 89.3721 91.7307 107.5952 122.8620
+ 119.0884 117.5015 92.7206 93.2660
+ 92.1474 67.1853 53.0781 50.8754 46.9593 50.3659 55.8037 64.3428
+ -154.0891 68.7303 49.0853 49.8923 82.9313 5.3802 -75.8761 -145.1475
+ -108.9836 -112.6487 78.6750
+ 145.6078 132.2616 171.9334 142.1926 116.5940 126.0216 141.7110 136.1331
+ 136.8211 0.0000 0.0000 80.8999 115.0043 112.8740 0.0000 118.5738
+ 116.4463 110.5007 99.7881 107.1393
+ -15.0604 -52.6510 17.5961 -84.4184 -129.6136 -99.3103 -152.3795 -133.1483
+ -132.2621 0.0000 0.0000 -82.4223 -78.0191 -78.7991 0.0000 -33.6622
+ -120.1534 -110.7099 -104.5704 -79.6935
+ 156 -84.25 0
+ 93.7738 92.8968 91.7651 89.3536 89.7178 89.8905 90.3270 92.4382
+ 92.6883 122.4381 122.3707 94.7161 135.4562 124.6392 95.4122 116.7490
+ 116.5695 120.6079 92.6886 93.3206
+ 48.0681 172.1606 76.2559 43.8652 48.7828 54.0723 38.3504 57.1210
+ -56.1852 -62.0122 -23.4322 85.6743 -89.9456 -59.0168 71.1871 -79.8796
+ -112.3974 -145.0047 75.3717
+ 147.0759 143.6063 141.6239 143.9691 102.6763 131.3877 137.3507 128.3415
+ 144.1495 0.0000 0.0000 83.5342 149.8009 118.0635 0.0000 83.4471
+ 112.4579 134.2146 100.8881 110.1584
+ -28.6526 -20.7030 96.4220 -91.5392 -56.7933 58.3929 -171.4982 -131.9183
+ -121.3169 0.0000 0.0000 -82.5567 2.5349 -80.2975 0.0000 -64.9304
+ -114.6337 -144.1459 -100.6621 -79.9945
+ 157 -86.96 0
+ 93.7908 93.1451 129.0140 91.7752 90.6996 90.7869 90.1564 91.6569
+ 91.7869 116.0917 92.5380 89.5544 89.3427 93.8216 94.4207 128.8905
+ 118.0159 120.7081 93.6487 93.4122
+ 98.5655 118.2243 -103.2460 62.4345 42.2483 55.3197 40.4672 69.9127
+ -40.7305 -155.3316 47.6285 49.3443 46.9981 179.9807 113.2086 -78.8302
+ -108.6966 -146.4665 58.1038
+ 147.3722 146.8548 89.4844 144.9511 113.2566 141.7401 136.9296 131.1153
+ 141.2103 0.0000 0.0000 97.8054 110.3146 114.0952 0.0000 106.0678
+ 114.6169 113.1644 98.0879 128.7132
+ -24.7032 -28.0819 -97.0353 -111.3525 -85.5661 42.0972 -142.6509 -137.8672
+ -128.6830 0.0000 0.0000 -97.8197 -74.7945 -77.9738 0.0000 -99.0039
+ -120.8292 -112.6997 -108.2102 -137.7662
+ 158 -84.30 0
+ 93.8552 91.6395 91.0384 90.2336 89.6125 90.4329 90.8940 91.5601
+ 98.8695 93.5438 122.8946 113.3501 137.6860 96.2557 97.2938 126.6358
+ 113.5469 120.5703 93.6976 93.2972
+ 118.6737 88.0302 45.3481 44.2743 50.0899 49.7428 75.4852 9.4291
+ -111.4944 154.8739 -21.6629 -152.9777 164.9219 -1.9317 85.0820 -63.9418
+ -109.6161 -136.8888 78.2773
+ 147.5433 132.9290 90.9579 140.9952 122.2011 116.3125 151.0990 85.8703
+ 97.8130 0.0000 0.0000 86.4522 121.5356 113.8912 0.0000 117.5245
+ 89.8170 111.7623 125.8871 111.8124
+ -13.1251 -18.1121 -86.1664 -96.0960 -125.1355 -4.2355 -125.3603 -84.1579
+ -79.4831 0.0000 0.0000 -83.3663 -81.1378 -77.3302 0.0000 -117.2206
+ -106.7798 -110.7495 -147.9828 -77.7028
+ 159 -85.04 0
+ 93.8511 91.6134 91.4981 91.3257 90.6985 91.1816 90.4361 90.2953
+ 94.2439 93.6566 146.9313 115.1465 109.3807 133.0043 96.3166 120.5843
+ 117.9389 114.8702 93.8719 93.3303
+ 110.7493 80.9449 45.0222 46.5943 44.2101 51.6428 64.3292 26.8338
+ -110.6447 157.2060 -32.6687 -140.1394 -161.4398 -65.6274 68.1109 -90.6768
+ -111.6844 -132.3514 56.3425
+ 147.2489 136.5281 136.0974 142.7600 117.6502 109.7343 145.0661 92.0456
+ 99.5874 0.0000 0.0000 88.9505 118.5154 125.5270 0.0000 83.3960
+ 118.9051 146.3264 98.8393 116.2422
+ -12.4211 -28.2707 -91.6392 -97.0146 -123.6283 -66.1920 -135.4685 -75.0072
+ -85.8389 0.0000 0.0000 -80.4085 -77.2452 -141.9787 0.0000 -92.8481
+ -126.3100 -166.4686 -100.3684 -76.8758
+ 160 -83.85 0
+ 93.8701 91.4067 91.0557 90.7412 90.4874 91.1993 91.5329 92.6002
+ 112.7635 135.2439 97.4962 92.2237 93.2296 94.8079 97.4009 129.2456
+ 116.2324 120.2817 93.4473 93.3083
+ 120.5428 85.7445 46.5893 44.4816 43.1934 53.1012 77.9912 -60.9244
+ 173.4402 -70.5984 -14.1415 98.9139 144.3210 -28.0506 93.0407 -77.7496
+ -104.0778 -139.8056 75.0759
+ 147.3143 127.6071 92.9466 147.0448 120.0788 152.7308 131.7501 131.7587
+ 149.6474 0.0000 0.0000 98.9261 136.2602 118.2760 0.0000 98.8029
+ 119.3716 116.7533 99.1816 111.9685
+ -10.5845 -19.1118 -86.9717 -95.5448 -122.4688 43.9937 -164.8271 -131.0569
+ -15.5173 0.0000 0.0000 -98.0552 -13.2855 -159.4924 0.0000 -60.9003
+ -125.5235 -116.6414 -108.5064 -78.2179
+ 161 -89.08 0
+ 93.7966 92.9435 134.4663 91.6119 90.2529 90.5680 90.9082 91.8215
+ 91.2003 101.5015 98.7664 93.3090 94.0901 120.9655 95.1913 129.9099
+ 117.2681 122.4971 92.2662 93.3232
+ 83.6957 118.2912 -96.5704 59.4728 44.3292 52.2552 65.0499 102.8305
+ -24.9139 -71.3290 -21.5984 102.3390 112.1105 -98.7695 63.7187 -86.0162
+ -111.3942 -149.1260 80.4638
+ 146.4420 148.7905 86.7716 143.0776 116.1678 155.1932 131.3595 134.1067
+ 146.3213 0.0000 0.0000 134.4150 119.5812 117.9209 0.0000 101.1597
+ 114.5062 113.2127 106.8591 108.3060
+ -26.2803 -31.7940 -100.3264 -105.4956 -58.2111 37.9910 -55.0714 -130.6561
+ -131.8630 0.0000 0.0000 -157.7033 -75.2735 -83.7273 0.0000 -62.3968
+ -119.5397 -111.4106 -116.7698 -81.1143
+ 162 -87.12 0
+ 93.8905 91.4761 93.0404 92.8991 90.6892 91.1802 90.2246 91.3381
+ 91.8372 116.1964 112.9234 127.1218 94.5604 94.5473 93.1479 131.9135
+ 114.5538 119.3914 93.6084 93.2952
+ 113.8901 77.7378 36.4251 51.3061 38.8744 54.4378 43.6418 57.6175
+ -87.1327 -60.0053 -60.7352 148.1144 76.8084 -84.5839 152.5334 -72.5266
+ -104.9607 -136.6251 79.8308
+ 145.4782 127.2655 154.6642 141.7431 117.8493 119.0818 152.7639 136.4228
+ 136.9456 0.0000 0.0000 114.3012 114.0674 113.0944 0.0000 150.9865
+ 110.3765 111.0086 125.9608 111.3369
+ -10.2956 -29.8042 110.4230 -85.6495 -123.9111 -46.1068 -154.4043 -135.3818
+ -112.0522 0.0000 0.0000 -111.9563 -76.9719 -77.5601 0.0000 -101.5534
+ -117.9427 -109.2579 -147.6942 -77.8563
+ 163 -87.89 0
+ 93.7075 92.9464 135.7519 90.1616 88.9827 88.2195 89.1098 89.1867
+ 91.4937 95.1950 93.8733 89.7005 89.8983 93.2246 97.2625 130.7410
+ 118.2711 108.8120 94.2424 93.4751
+ 92.8218 123.9561 -93.6313 64.4258 55.9344 61.6635 49.0776 50.5284
+ -166.7057 75.3800 44.4182 50.2737 75.1871 22.1299 65.4004 -91.9805
+ -111.6623 -160.3878 27.4709
+ 151.2567 141.5288 84.4397 146.2900 118.9950 95.5504 152.9711 119.3954
+ 139.4543 0.0000 0.0000 102.2807 116.3165 112.8323 0.0000 134.4714
+ 119.7275 98.2867 93.4419 116.9766
+ -29.4145 -45.7609 -99.8851 -110.7228 -31.6984 -56.0529 -107.9596 -145.1236
+ -117.6572 0.0000 0.0000 -94.9501 -79.7185 -78.7068 0.0000 -88.0954
+ -128.2125 -95.2018 -104.3005 -81.3945
+ 164 -83.71 0
+ 93.8592 92.9792 107.5550 91.6543 90.1999 91.2399 90.8031 92.7147
+ 92.3750 122.7258 110.8755 91.4433 91.5135 92.9561 96.6548 117.5135
+ 114.0643 112.3589 93.6067 93.3115
+ 79.8909 167.9921 168.9705 68.1233 43.5105 54.5908 33.4519 62.4742
+ -48.5212 -143.5398 -25.6867 76.7315 39.7507 -128.8849 134.1798 -82.0675
+ -162.6150 -165.8462 73.5822
+ 145.9369 139.0604 116.9072 136.2386 126.0892 124.9279 142.6031 127.9194
+ 132.5782 0.0000 0.0000 102.0072 106.9080 117.7988 0.0000 138.4885
+ 118.2847 135.4375 102.6495 113.5176
+ -15.7147 -38.8481 -73.1286 -108.3228 -129.3313 16.4869 -134.6734 -134.8921
+ -108.9097 0.0000 0.0000 -100.9846 -76.6660 -78.3815 0.0000 -26.7073
+ -124.6436 -150.5404 -98.8895 -77.3923
+ 165 -83.80 0
+ 93.7170 93.1081 129.4984 92.7580 90.8352 91.5636 90.9597 92.1145
+ 93.9325 93.7899 122.1967 93.5079 124.3062 130.0955 95.8977 129.0298
+ 118.7929 118.3090 116.0200 121.8317
+ 97.8862 121.9623 -100.2305 52.6691 43.9869 51.4026 39.2187 55.2663
+ -173.1156 126.0839 -20.3202 95.3146 -102.2467 -88.0906 169.2950 -85.5545
+ -109.1071 -146.4709 -120.2395
+ 151.1931 140.6043 95.1901 159.2236 107.7514 144.0840 135.3365 132.8771
+ 145.1603 0.0000 0.0000 131.6556 114.3694 119.6358 0.0000 114.9314
+ 114.5537 110.9054 127.3411 122.1477
+ -27.7027 -35.2202 -100.1037 -137.5218 -38.8259 78.4634 -119.2815 -143.0820
+ -23.4523 0.0000 0.0000 -154.7318 -77.4201 -80.3531 0.0000 -112.8775
+ -120.5676 -111.4211 -138.0877 -80.6322
+ 166 -85.60 0
+ 93.8557 115.2451 92.6406 90.0107 89.5327 89.9820 90.1924 91.9911
+ 91.9003 115.4453 117.0275 107.4377 92.6617 126.0394 94.2617 123.1715
+ 119.8768 120.6088 93.5283 93.3505
+ 126.7958 177.8396 72.0612 40.1443 50.8163 52.4645 44.4635 64.1121
+ -68.1503 -53.3026 -51.8722 105.0609 117.0226 -90.6508 70.4076 -75.7073
+ -119.3227 -162.4424 53.0755
+ 149.2850 149.8473 135.7602 151.2456 118.7270 118.1910 141.4824 128.5531
+ 141.2605 0.0000 0.0000 142.6086 117.9566 111.7357 0.0000 121.5149
+ 108.3428 117.3310 98.1525 112.0977
+ -12.6219 -21.1013 110.8771 -95.5888 -55.4636 41.2439 -137.9550 -135.9772
+ -126.0165 0.0000 0.0000 -164.5467 -75.9825 -81.4350 0.0000 -83.2052
+ -110.9936 -119.0720 -98.8301 -80.3913
+ 167 -88.15 0
+ 93.7018 92.9918 91.6579 89.6248 89.9809 90.5866 90.6099 92.3558
+ 91.4140 109.0165 118.9838 93.4283 93.3075 94.4082 97.0259 130.4778
+ 120.9579 119.3553 93.3177 93.3213
+ 40.1814 173.0427 77.4549 43.4390 48.4348 48.8617 44.4675 70.1887
+ -71.0233 -50.3355 -56.5322 78.1640 111.0192 -74.1447 85.9667 -85.3450
+ -111.6774 -141.3982 67.8142
+ 108.9622 143.2415 140.5390 149.4714 101.1478 155.8568 135.4572 132.6770
+ 138.4077 0.0000 0.0000 139.7428 113.1628 138.3905 0.0000 141.0789
+ 112.0329 115.8193 102.0989 112.7698
+ -81.4997 -19.8098 105.0502 -93.6197 -59.6975 44.1782 -138.4164 -135.6535
+ -112.5484 0.0000 0.0000 -167.3955 -76.5325 -157.8390 0.0000 -53.2092
+ -114.8211 -117.9121 -103.9662 -78.4670
+ 168 -89.45 0
+ 118.4483 113.3902 93.2968 90.1420 89.6740 90.5736 90.6038 91.7772
+ 90.8320 108.2923 100.6854 93.0894 93.4219 124.4394 95.4905 125.2658
+ 119.3385 120.0510 93.1048 93.4256
+ -86.5511 -164.7943 65.5730 46.4166 45.7375 51.1546 42.1243 72.0238
+ -61.6168 -69.2355 -26.9259 100.6422 107.6003 -89.8592 74.2478 -76.8732
+ -112.1001 -147.4017 84.4136
+ 111.1903 152.6425 132.0787 148.1521 112.4848 160.4836 134.4829 103.4731
+ 130.3380 0.0000 0.0000 137.6687 115.6274 130.0923 0.0000 129.2496
+ 111.4992 112.1154 101.2074 120.3283
+ -81.2183 -15.9869 119.3905 -97.3691 -67.8250 -0.3232 -161.7994 -98.9972
+ -135.5507 0.0000 0.0000 -163.6048 -78.7218 -157.6543 0.0000 -81.6576
+ -116.1754 -112.9110 -105.6820 -131.4864
+ 169 -84.68 0
+ 93.9291 93.1973 132.5900 91.2412 89.2445 88.9285 89.2354 89.4102
+ 91.1449 95.1311 94.5944 90.0094 88.9141 93.8085 98.0275 129.0274
+ 121.0078 118.6015 120.0648 120.6681
+ 93.8132 112.0543 -98.9649 60.2787 42.0725 57.1155 51.4552 41.7093
+ -119.0010 123.1125 39.7834 55.0054 91.8396 -40.8492 87.2319 -85.3148
+ -111.8996 -141.4714 -110.0699
+ 139.9774 150.5526 89.3645 146.1333 113.1220 149.8839 144.5672 131.3234
+ 141.1739 0.0000 0.0000 114.5035 125.6843 111.9180 0.0000 143.1698
+ 110.7907 112.5988 114.6902 119.7527
+ -19.7354 -30.8996 -98.3244 -113.9744 -28.5733 107.3831 -39.3545 -142.2036
+ -112.3824 0.0000 0.0000 -114.5267 -170.4704 -82.4479 0.0000 -72.4691
+ -113.8545 -113.7194 -116.0526 -79.6873
+ 170 -84.08 0
+ 93.8654 91.5464 90.8812 89.8250 90.2084 90.2918 90.1031 91.2849
+ 91.7254 130.8704 111.0607 92.3515 92.4392 132.3967 95.7609 112.1088
+ 109.3882 131.3904 93.3888 93.3024
+ 119.7886 84.2433 47.5060 43.2351 49.7954 48.5452 54.7775 80.2933
+ -80.9242 -81.3228 -19.8685 95.0037 139.5932 174.1610 70.5672 -56.4675
+ -146.7343 -168.8068 67.7218
+ 146.8403 138.3909 121.0085 148.0768 119.2494 148.8159 135.3816 135.3771
+ 142.6098 0.0000 0.0000 102.1804 109.3548 119.3945 0.0000 138.6269
+ 94.6187 115.6908 98.1165 114.3078
+ -10.6215 -27.1992 114.1238 -89.9101 -123.0552 47.8028 -140.7316 -133.6251
+ -133.3229 0.0000 0.0000 -102.9290 -78.3036 -89.9660 0.0000 -71.0561
+ -98.0566 -110.9257 -99.6234 -77.1035
+ 171 -85.48 0
+ 115.9175 116.8671 91.8635 90.4264 90.2572 90.3267 90.3639 91.9278
+ 91.8127 118.7781 118.1621 96.3652 91.3217 94.9057 96.2544 122.7261
+ 116.1106 112.1971 93.4867 93.2820
+ -174.8070 -120.4943 54.9280 42.5459 45.9912 50.5182 46.1034 82.0124
+ -60.9865 -23.5593 -48.0284 -39.0441 111.3487 23.3154 68.7267 -78.1324
+ -107.4444 -139.3874 85.1202
+ 152.4329 144.0835 124.9569 148.8264 103.2934 165.5268 140.1058 132.7897
+ 143.6575 0.0000 0.0000 92.4421 135.3999 113.6067 0.0000 114.8471
+ 120.0787 102.0351 128.7539 110.6916
+ -21.7218 -27.6795 118.3502 -95.7975 -61.4709 41.9968 -141.7325 -135.3131
+ -125.0236 0.0000 0.0000 -90.7284 -41.3479 -79.9127 0.0000 -129.1568
+ -130.2767 -83.3692 -152.8811 -77.4181
+ 172 -84.87 0
+ 93.8715 91.3187 90.8645 90.2049 89.9798 91.0167 90.2901 92.1362
+ 91.1547 95.8190 146.9195 126.7136 93.4697 95.6924 98.3266 133.5855
+ 117.4220 120.0984 93.0554 93.3481
+ 120.2105 85.5257 46.0058 45.6708 43.2460 49.4386 44.4103 79.1412
+ -96.9270 53.5405 -71.6911 166.0911 94.0908 4.4574 74.5532 -80.8294
+ -109.2906 -145.7528 58.9182
+ 147.0586 127.4920 93.3530 147.3303 120.9217 136.5660 132.1598 135.9468
+ 141.0315 0.0000 0.0000 111.7877 117.6848 115.4719 0.0000 154.6945
+ 115.0761 113.6711 100.1741 111.3863
+ -11.0789 -14.6617 -89.3144 -96.7033 -127.5923 28.7468 -160.3515 -134.0468
+ -126.7423 0.0000 0.0000 -108.5008 -75.2575 -80.0586 0.0000 -65.7911
+ -121.7156 -113.8931 -102.6524 -80.7072
+ 173 -83.37 0
+ 93.8857 92.6272 130.9168 91.5813 90.4730 91.8451 90.7063 92.4800
+ 93.3637 133.2247 96.9219 94.0585 92.2772 118.2409 95.9182 121.1157
+ 113.4618 118.0341 93.3629 93.3066
+ 75.8949 128.7587 -103.5747 64.5082 43.4303 55.0325 36.1265 65.7465
+ 161.3066 -82.7283 19.4745 61.1143 -32.2614 -107.6551 148.6369 -75.3838
+ -111.4555 -143.9280 72.7760
+ 141.7396 142.4820 84.8393 144.6268 106.5192 126.7234 132.6223 130.1516
+ 138.2056 0.0000 0.0000 99.4800 118.9220 115.7197 0.0000 146.3235
+ 92.3951 122.3475 136.6922 113.4202
+ -23.2307 -39.4071 -103.6854 -104.2830 -89.3809 43.2544 -146.0629 -135.6511
+ -130.4395 0.0000 0.0000 -96.8620 -75.5190 -79.0856 0.0000 -18.4304
+ -88.1866 -127.3607 -162.7326 -77.2821
+ 174 -87.41 0
+ 93.9899 91.4997 90.9866 90.2173 90.3504 91.6882 91.6076 87.8667
+ 90.5344 95.2227 115.0189 92.5565 93.0184 131.2397 95.4311 126.8892
+ 116.8950 118.9840 93.0648 93.4285
+ 124.8364 90.5341 47.4415 42.3215 52.6218 51.0713 118.0392 -38.9593
+ -56.0691 3.9065 -46.3983 -37.2487 97.0107 -116.6765 160.3143 -77.0391
+ -104.9967 -149.8485 77.7380
+ 141.9057 136.5168 131.9259 148.3696 122.2690 132.1542 137.2650 110.5622
+ 141.5918 0.0000 0.0000 95.5393 113.9950 116.8973 0.0000 116.9971
+ 119.7160 110.0788 102.5773 121.3437
+ -4.2443 -14.7524 96.6289 -97.7617 -127.5997 21.2115 -121.9476 -120.9832
+ -123.2854 0.0000 0.0000 -95.6768 -76.4370 -84.4344 0.0000 -62.9685
+ -127.2901 -110.8723 -113.5257 -137.3920
+ 175 -83.63 0
+ 93.8614 92.4494 130.1515 91.1518 90.3303 91.2716 89.9181 90.6121
+ 90.9998 95.2647 135.2025 121.1056 93.6916 125.7817 95.6065 129.1411
+ 117.1277 122.4644 92.8317 93.3190
+ 98.5248 128.4071 -84.0343 52.8194 38.5419 61.4206 44.4355 71.9438
+ -94.7645 128.1487 -57.3445 -175.5879 107.8784 -100.9240 88.4070 -80.0536
+ -106.8426 -138.7768 75.0025
+ 144.4390 155.7985 86.8926 144.4923 120.0026 137.2812 144.2579 87.7824
+ 135.4361 0.0000 0.0000 124.6828 114.9466 112.9612 0.0000 89.3497
+ 121.7703 107.7948 93.3537 109.8304
+ -19.6859 -107.0619 -94.9160 -111.3322 -103.0672 -21.6254 -150.7049 -78.1710
+ -122.6151 0.0000 0.0000 -128.2552 -77.7342 -81.6998 0.0000 -64.9000
+ -129.4782 -103.5623 -106.1792 -80.1549
+ 176 -86.43 0
+ 93.7727 92.8741 128.8775 91.4630 89.8449 89.7019 89.6930 91.0533
+ 91.3978 119.3824 131.9972 117.2171 93.0574 125.0012 96.6528 135.8042
+ 120.0173 118.6131 93.7779 93.4337
+ 104.3622 125.1092 -91.2638 55.0963 41.8607 58.9809 40.9521 65.4729
+ -52.9735 -70.2767 -56.1547 170.7468 90.2918 -106.3699 87.9086 -91.1853
+ -108.0684 -151.2346 36.1873
+ 149.5590 150.3981 91.0845 147.7357 127.3791 124.6024 147.5477 127.1065
+ 136.3588 0.0000 0.0000 134.5845 112.8073 119.5944 0.0000 126.7306
+ 117.6753 113.4297 89.8995 113.1422
+ -21.6904 -40.8216 -94.4177 -115.0039 -73.8547 -30.9506 -135.6288 -138.8312
+ -120.4014 0.0000 0.0000 -144.9637 -77.5915 -85.1152 0.0000 -111.3089
+ -123.5390 -114.8653 -86.5013 -82.7844
+ 177 -84.36 0
+ 119.6605 116.9878 91.4096 91.2056 90.9720 91.6153 90.7556 92.0361
+ 92.6625 125.1398 135.9941 108.8411 90.5695 91.5065 116.5366 130.4451
+ 120.3881 119.8130 117.4662 121.8452
+ -120.4793 -104.4105 54.5236 40.6474 47.3692 48.8821 39.3028 59.0750
+ -80.2657 -67.3197 -33.1474 -30.1389 93.2898 -0.5641 -10.6957 -74.2963
+ -135.8716 -112.1582 -118.7050
+ 108.3692 147.4537 128.7403 147.9859 117.7256 134.9688 141.1401 130.6162
+ 129.0453 0.0000 0.0000 92.5538 129.8771 102.3185 0.0000 131.2618
+ 109.1506 114.7129 125.3469 121.5970
+ -77.8768 -37.4041 93.3392 -95.6554 -91.5997 38.2365 -102.1109 -132.7947
+ -127.4466 0.0000 0.0000 -81.8391 151.1419 -80.1493 0.0000 -54.9300
+ -108.6639 -116.5043 -132.6536 -80.9638
+ 178 -84.29 0
+ 93.9129 92.7220 91.3476 90.3666 90.3727 92.0523 91.6087 92.2939
+ 91.9186 94.5618 134.3348 109.1557 93.3018 112.7185 94.8047 134.1135
+ 117.9821 120.7911 92.7266 93.3570
+ 108.6686 162.1800 87.5967 51.9639 46.0664 67.2474 151.9826 90.2219
+ -74.3739 165.6213 -47.4582 -164.6486 90.6648 -93.5033 165.1586 -76.2085
+ -105.6223 -144.9041 59.4798
+ 144.8984 138.6373 97.1830 141.4740 86.5051 105.2949 152.0328 134.0543
+ 103.9425 0.0000 0.0000 95.2218 114.5283 115.3532 0.0000 158.3759
+ 116.3137 112.4354 96.0627 108.4054
+ -0.0613 -29.4977 -76.2524 -107.3559 -64.9256 -67.4793 -135.9140 -119.2120
+ -82.7873 0.0000 0.0000 -88.9397 -76.4259 -79.5955 0.0000 -106.7616
+ -123.1494 -112.2216 -105.6445 -83.2969
+ 179 -84.69 0
+ 93.9680 91.4296 90.4839 90.3019 89.6491 89.4016 89.8268 91.2798
+ 92.0548 94.5792 115.7759 92.1414 90.6783 93.4771 96.8018 129.8006
+ 120.1427 120.4332 93.1694 93.4177
+ 126.3556 92.4513 46.4090 47.6974 49.6645 63.6544 42.0699 63.8689
+ -102.5224 139.1569 -23.0898 78.9256 97.1442 -41.8834 93.2346 -78.7811
+ -109.5370 -142.5086 41.4155
+ 143.7912 135.9064 99.3886 146.1499 124.4364 115.2126 151.2457 86.0806
+ 138.8637 0.0000 0.0000 88.8795 111.9830 119.8534 0.0000 116.7647
+ 117.3802 112.0961 98.4627 113.3595
+ -2.3038 -12.5476 -74.2601 -99.7883 -137.2222 -45.7129 -121.7338 -73.6668
+ -115.4894 0.0000 0.0000 -69.7199 -77.7984 -142.9940 0.0000 -128.2887
+ -123.1554 -111.9719 -96.8369 -82.1078
+ 180 -87.31 0
+ 93.8772 91.3544 90.8008 90.1729 90.1276 90.9563 90.3976 92.0493
+ 90.6321 95.5288 150.4207 129.9606 93.9864 121.3583 95.7028 123.7034
+ 119.4431 107.2201 92.3963 93.3656
+ 120.7667 86.2403 45.9140 45.6969 42.9179 48.3748 43.7916 75.4338
+ -95.4563 51.3093 -71.1727 164.2978 81.2197 -47.7972 89.1061 -75.8328
+ -115.9811 -172.5569 52.8523
+ 146.9177 128.9713 93.6142 147.0077 120.9990 144.7258 131.3757 136.9032
+ 138.4179 0.0000 0.0000 105.0760 111.2250 124.8553 0.0000 113.2574
+ 116.8393 95.9873 98.0825 106.4255
+ -10.6805 -14.7931 -88.2217 -96.8008 -128.7591 28.5983 -158.9599 -133.8003
+ -123.1645 0.0000 0.0000 -96.2119 -80.0208 -80.2928 0.0000 -111.7851
+ -123.4896 -95.0418 -105.9269 -85.2926
+ 181 -85.06 0
+ 93.9681 91.4917 90.9013 89.9261 89.8021 90.2050 89.7481 91.5833
+ 92.0531 122.7900 115.6814 104.7497 94.8543 108.8812 95.0974 125.7213
+ 116.9630 117.3391 93.4137 93.3172
+ 125.5967 89.3208 48.1296 43.8798 46.9976 57.2976 39.4866 66.5781
+ -57.2639 -61.2629 -16.2059 -39.2079 -22.7932 -60.6188 75.5871 -81.7318
+ -109.3133 -140.5534 67.9104
+ 143.4523 136.0998 127.1247 147.6363 119.9761 117.3815 148.8455 125.7526
+ 138.5874 0.0000 0.0000 92.6988 109.1680 115.3097 0.0000 88.9594
+ 114.4826 131.9631 102.4722 113.4044
+ -3.5306 -19.9416 100.2070 -91.6017 -127.0194 25.8962 -144.9298 -135.7368
+ -122.4970 0.0000 0.0000 -83.7197 -73.4967 -77.4069 0.0000 -63.9887
+ -118.1922 -141.1094 -101.7220 -77.9008
+ 182 -85.06 0
+ 93.7665 93.0592 129.2813 92.8003 90.2308 90.5729 90.4022 91.0243
+ 94.2839 116.1661 99.4384 92.2237 92.2901 126.4477 125.0914 130.6148
+ 118.9866 120.2751 93.5195 93.3820
+ 96.2965 122.4685 -100.4088 53.6694 44.6632 50.8985 66.4540 22.4738
+ -105.9735 -63.0022 -37.6730 -45.3831 94.8416 -105.8743 -177.5239 -85.1972
+ -110.8676 -150.3644 42.8020
+ 148.6657 142.7834 94.6999 159.6717 108.6331 147.4448 138.0449 132.8372
+ 110.1359 0.0000 0.0000 95.2482 114.1082 116.7722 0.0000 128.0079
+ 113.2636 114.1868 101.1757 114.4426
+ -25.7843 -30.4292 -99.3944 -141.6025 -36.7794 85.4773 -123.2764 -127.7742
+ -80.9601 0.0000 0.0000 -89.3187 -76.2439 -83.3923 0.0000 -97.0200
+ -118.6005 -114.4860 -107.7317 -80.0126
+ 183 -87.60 0
+ 93.9352 91.5207 90.8633 90.1945 89.6370 90.1424 90.3655 91.9830
+ 92.2980 95.0246 148.9485 90.1420 90.3631 93.3298 96.2628 124.6985
+ 118.0852 118.1202 93.3248 93.3230
+ 122.5774 89.4253 44.8804 45.8579 43.3117 54.7125 41.2650 73.5488
+ -79.5799 170.5039 -39.6654 53.1116 50.8034 -107.4414 141.7959 -85.1387
+ -110.2105 -141.7403 66.6365
+ 144.1600 134.3543 131.7700 142.8745 122.5711 138.6339 144.4252 130.1116
+ 136.0306 0.0000 0.0000 131.7297 111.3112 109.6648 0.0000 133.0844
+ 116.7972 113.3619 103.0433 112.8215
+ -8.0369 -16.3162 108.2464 -89.7537 -131.6592 4.7999 165.7566 -134.4232
+ -123.4158 0.0000 0.0000 -160.7614 -77.6881 -78.6766 0.0000 -57.5057
+ -122.8774 -115.3934 -99.1238 -78.5683
+ 184 -90.19 0
+ 94.0189 91.4847 89.2705 89.5674 89.6056 89.7087 90.0978 92.0248
+ 93.1388 129.5805 92.1514 91.9605 92.6218 121.5250 128.8904 129.2675
+ 119.3263 119.1886 93.1432 93.2971
+ 116.8228 79.8575 49.6590 43.1359 46.4035 56.9110 37.6211 69.5857
+ -46.2002 -145.6588 45.0529 64.2655 -46.4644 -163.4003 -177.8424 -81.4864
+ -110.1977 -138.7534 80.2761
+ 138.3959 147.0004 114.8205 168.5465 134.2862 112.0995 143.4356 126.8107
+ 139.1873 0.0000 0.0000 97.7429 134.2179 124.2953 0.0000 111.7656
+ 116.0143 109.8596 104.5391 111.2304
+ -7.3168 -13.4249 -64.9061 -161.0360 -109.2674 23.7072 -129.1445 -141.0655
+ -121.5069 0.0000 0.0000 -96.6619 -121.2797 -77.6738 0.0000 -126.6693
+ -121.3881 -109.0698 -115.0741 -77.9746
+ 185 -87.06 0
+ 93.8061 91.7908 89.9582 89.9407 89.5457 90.1175 89.7008 89.7215
+ 91.2518 95.3986 92.9368 89.8487 89.5472 92.5265 97.1680 130.6885
+ 118.9614 121.6166 93.2411 93.3503
+ 79.8429 80.2468 79.2566 49.4556 42.8891 60.6141 61.0068 74.1299
+ -153.2193 67.7736 42.6788 52.1512 71.8131 22.5153 71.1942 -88.9095
+ -123.7069 -169.7190 53.2027
+ 147.7846 149.2836 123.4643 137.9094 108.4744 103.7009 146.8174 129.9940
+ 134.9748 0.0000 0.0000 88.0065 115.5985 122.4838 0.0000 126.9679
+ 110.4929 115.1535 102.3314 111.3214
+ -20.5998 -132.1159 -34.1312 -97.9575 -108.5293 -133.4478 -32.5969 -141.0364
+ -114.6755 0.0000 0.0000 -68.9068 -74.1218 -140.9318 0.0000 -70.5539
+ -114.2613 -115.5778 -96.0221 -80.9601
+ 186 -84.09 0
+ 93.7629 93.2120 125.6483 92.0300 90.2490 90.6403 90.6489 91.4127
+ 92.2430 93.6747 107.9789 101.9114 117.6302 121.6955 113.0329 113.6448
+ 117.4333 117.9901 92.3755 93.0976
+ 98.8993 122.5135 -100.4389 58.6844 41.6505 50.5315 48.8768 48.0865
+ -115.9637 125.5576 -0.9807 -173.9041 175.4422 -61.8851 -11.7679 -81.0660
+ -112.8192 -111.7421 89.6106
+ 149.0575 143.7986 90.5800 144.7781 110.9611 147.7067 145.7506 137.2785
+ 140.2071 0.0000 0.0000 89.2643 142.9528 116.4668 0.0000 97.8772
+ 119.0490 110.1507 130.4829 101.2606
+ -25.2522 -29.2212 -99.0385 -118.7760 -34.7417 102.6356 -118.3116 -141.5486
+ -108.4742 0.0000 0.0000 -93.4485 -165.2301 -83.0975 0.0000 -59.3189
+ -124.0520 -111.0580 -154.2150 -76.7506
+ 187 -84.93 0
+ 93.8307 91.3795 90.3207 89.1818 90.4588 90.5389 90.4657 92.1351
+ 90.9752 109.9644 112.5049 92.2801 93.3407 92.4365 110.4132 128.5201
+ 116.8630 119.4187 117.4880 121.7507
+ 94.6138 71.0292 61.3267 48.5498 43.9084 51.1943 43.1555 67.7447
+ -67.4511 -62.9395 -67.1515 67.3314 110.5482 -53.7731 -27.8461 -85.0836
+ -110.2018 -140.6319 -119.5589
+ 147.4837 141.4618 125.1216 148.6409 109.2785 151.7357 138.2380 135.0053
+ 140.6344 0.0000 0.0000 131.8349 113.4377 117.5138 0.0000 115.6621
+ 115.3695 110.1362 128.4270 121.9859
+ -14.8053 -51.2328 103.9378 -91.1397 -58.8273 55.9385 -142.8579 -136.4295
+ -118.1772 0.0000 0.0000 -157.6702 -76.4716 -81.6110 0.0000 -57.2385
+ -122.2217 -109.0744 -137.3681 -80.5647
+ 188 -84.11 0
+ 93.9322 91.2741 89.4452 90.7689 90.7179 92.3192 91.3308 92.1998
+ 92.5114 94.6668 132.5372 93.1382 139.7091 117.2748 95.6894 123.8154
+ 121.6412 119.9674 93.1388 93.2118
+ 126.8953 85.9058 56.8230 38.4335 48.9393 61.7039 134.1954 79.4888
+ -83.3771 164.2549 -54.8416 83.7390 -171.9389 -59.4914 73.9597 -80.1536
+ -161.4738 -111.2385 82.8292
+ 145.9656 130.7549 97.9540 164.1723 129.5778 132.9769 136.6419 125.3607
+ 104.7124 0.0000 0.0000 92.5260 119.8939 116.8111 0.0000 120.4906
+ 113.4169 110.5203 131.8157 107.2420
+ -1.9069 -1.2925 -85.8358 -122.6012 -121.8204 87.1169 -130.7073 -140.2618
+ -82.2735 0.0000 0.0000 -73.1934 -87.3072 -77.4313 0.0000 -132.3139
+ -116.5918 -107.9391 -155.4876 -77.2048
+ 189 -88.03 0
+ 93.8871 91.3137 91.1319 90.4474 90.0585 91.2977 90.3437 91.1626
+ 92.7025 136.9451 108.5643 91.7154 90.9221 106.6602 95.2744 126.7264
+ 114.5831 117.1689 93.3836 93.3076
+ 121.7340 84.3218 47.2840 43.0209 45.7201 52.3873 42.2884 56.5966
+ 178.4753 -69.3575 -8.3744 76.9615 -7.7097 -119.5723 142.3707 -84.5530
+ -112.1162 -141.9033 72.0308
+ 146.7370 126.2155 94.4429 151.4416 118.3233 125.7682 133.1469 130.4122
+ 130.5133 0.0000 0.0000 100.8990 109.8092 110.6721 0.0000 152.1312
+ 91.3369 122.4507 136.1226 113.4157
+ -9.0397 -18.1356 -88.8695 -97.6192 -121.0512 37.4962 -147.8121 -132.7794
+ -130.2880 0.0000 0.0000 -96.9624 -76.5525 -77.5070 0.0000 -14.3424
+ -88.1573 -128.0969 -161.0322 -77.3506
+ 190 -84.07 0
+ 93.9302 91.5362 90.5055 89.8337 90.1052 90.9925 90.3875 92.2750
+ 92.0957 114.6004 94.0581 90.2909 90.9126 107.5864 95.3509 136.3731
+ 117.2043 115.5802 93.7134 93.3058
+ 123.6088 89.1374 49.5186 42.9128 45.7379 51.8690 42.6282 65.0584
+ -62.0523 -164.7129 45.2911 45.4398 -167.3807 158.4233 83.4567 -85.2530
+ -107.1973 -143.9847 73.2968
+ 144.8285 134.6051 97.2265 150.1651 122.2740 123.0266 129.9413 131.2522
+ 142.7738 0.0000 0.0000 99.7159 111.2271 127.4029 0.0000 108.4943
+ 108.2164 116.2479 132.2629 113.3851
+ -7.0044 -16.7109 -86.5146 -99.1273 -127.1228 54.8024 -153.3254 -134.8356
+ -139.2700 0.0000 0.0000 -99.5651 -77.8539 -179.7852 0.0000 -61.4666
+ -111.0672 -120.0494 -158.3387 -77.2484
+ 191 -84.72 0
+ 94.0049 91.4470 90.8470 90.1061 90.1999 90.4005 90.1082 90.8225
+ 91.6725 94.9726 133.7768 100.8771 93.6874 93.6319 124.2579 123.9168
+ 118.4113 118.5216 93.5051 93.3001
+ 126.4854 90.1600 48.8016 42.7932 48.6084 48.5032 49.0123 61.3566
+ -124.7514 133.4246 -56.2866 174.9381 100.9353 -16.3195 -38.9612 -79.7338
+ -110.3472 -139.6187 76.4907
+ 141.7460 135.5881 126.2946 149.4035 121.1114 151.4397 138.3332 134.3364
+ 134.1374 0.0000 0.0000 97.4157 130.6890 113.4060 0.0000 134.5345
+ 120.0003 116.7528 132.3268 112.6425
+ -1.6916 -16.7015 108.0867 -92.1671 -127.9291 38.2731 -129.3503 -134.9211
+ -110.8363 0.0000 0.0000 -86.4976 -179.5651 -77.4640 0.0000 73.9667
+ -126.8734 -118.7536 -156.2052 -77.3604
+ 192 -87.07 0
+ 93.9049 91.6031 91.6909 90.8333 89.7447 90.2938 90.8380 91.9163
+ 92.1180 94.3912 137.6987 106.8441 93.3016 120.8671 95.9291 132.3030
+ 117.7925 121.0479 92.7739 93.2910
+ 114.5713 84.6276 41.5910 48.0730 44.6719 46.1115 52.7450 58.8785
+ -102.4935 148.8073 -46.0842 -178.1906 112.6813 -87.2164 85.0170 -87.3966
+ -106.4882 -140.0021 85.5336
+ 144.2859 134.3361 147.3806 140.3172 118.6132 150.0601 135.1852 129.3088
+ 111.7241 0.0000 0.0000 92.4757 115.4107 114.3788 0.0000 89.8290
+ 120.4382 107.4834 101.8051 108.6651
+ -11.7563 -17.1014 109.4292 -92.0955 -129.2909 7.1371 175.5171 -108.3587
+ -80.3460 0.0000 0.0000 -82.7752 -76.7258 -81.3339 0.0000 -62.7021
+ -127.4655 -104.9145 -111.1958 -79.1959
+ 193 -87.92 0
+ 93.9316 107.4875 111.4879 90.0349 89.2251 90.7448 90.1098 91.5193
+ 90.7745 109.3404 101.5101 92.9173 93.2757 121.0527 95.8945 127.1485
+ 118.7968 123.6542 93.3807 93.3420
+ 130.1083 -174.5650 -167.9089 53.8376 42.9027 56.7747 40.8824 73.9909
+ -55.7872 -71.7746 -26.9133 101.0893 106.1010 -86.3304 75.7326 -78.1160
+ -113.3274 -164.9702 57.0982
+ 146.9319 138.0054 118.7216 145.3970 109.1535 148.2804 137.0580 99.4722
+ 133.2005 0.0000 0.0000 140.6756 114.8411 133.3076 0.0000 134.5074
+ 114.6522 112.1100 103.9678 111.9476
+ -4.9583 -26.8792 -124.1582 -104.0364 -92.5082 -25.8553 -159.9889 -98.8019
+ -137.6780 0.0000 0.0000 -168.8000 -78.4438 -162.1115 0.0000 -88.4509
+ -119.9634 -110.8298 -104.1443 -80.1530
+ 194 -84.39 0
+ 93.9910 91.6461 90.2655 90.6514 90.4209 91.1669 90.9636 91.4641
+ 93.4844 93.8138 133.3044 93.7299 124.3027 127.4889 119.3982 127.2095
+ 119.4004 120.3575 117.7483 121.9083
+ 114.3390 78.5295 49.0397 37.6000 46.9758 45.2451 45.9812 45.4682
+ -165.7116 134.9342 -38.4432 84.6936 -105.9965 -86.8018 -175.2644 -88.0720
+ -112.0458 -137.6472 -118.8047
+ 139.7936 139.2011 109.5775 164.8602 125.0454 136.8587 133.1662 138.4745
+ 145.6374 0.0000 0.0000 99.2121 121.2199 121.2685 0.0000 110.6338
+ 117.3071 110.1038 120.8248 121.5973
+ -7.7029 -12.6868 -72.1813 -126.0834 -107.1165 88.8080 -107.7568 -142.0855
+ -23.2640 0.0000 0.0000 -100.5121 -76.5801 -80.0031 0.0000 -128.5970
+ -122.7991 -108.8530 -126.1098 -81.0795
+ 195 -86.38 0
+ 93.7233 92.9514 132.1866 92.4878 90.3776 90.3775 89.9122 90.3294
+ 91.5698 95.4045 132.9755 93.6868 93.9775 131.0483 115.8161 133.3060
+ 117.3398 117.7591 93.1128 93.3328
+ 98.9825 129.6091 -97.8472 61.5789 43.9799 54.9452 50.5816 53.9343
+ 166.2672 100.3101 -52.3769 77.6849 -55.0469 -159.5505 172.2804 -75.0483
+ -103.9476 -145.7277 61.2151
+ 151.7552 136.7288 95.2627 160.9179 119.8915 122.3258 134.3034 131.4915
+ 141.6122 0.0000 0.0000 132.4398 117.0010 125.1054 0.0000 112.5705
+ 114.3532 110.3728 108.2230 113.2815
+ -25.1094 -32.9950 -97.7690 -151.1646 -51.7292 43.3726 -138.7156 -134.2827
+ -125.1645 0.0000 0.0000 -155.8348 -75.8508 -79.5689 0.0000 -124.1940
+ -121.1674 -110.6898 -126.3543 -78.7917
+ 196 -88.87 0
+ 93.8091 93.4949 111.6678 90.1619 89.4922 89.7323 90.2877 92.2183
+ 92.0331 118.6730 119.3590 113.2730 93.0678 130.5535 95.2006 127.2427
+ 115.9236 119.5083 92.6806 93.3298
+ 55.1870 177.1199 166.3634 75.0170 51.4293 55.3117 38.2339 65.5393
+ -65.7808 -55.4763 -46.7234 107.5801 109.1856 -101.9317 70.8710 -85.0378
+ -115.1681 -143.0323 71.8485
+ 146.2962 138.1775 110.6838 124.9348 104.0205 123.8894 143.3614 129.3101
+ 136.6185 0.0000 0.0000 133.5512 115.7136 113.7705 0.0000 113.7936
+ 88.5575 117.8193 131.9429 109.5094
+ -24.7720 -50.8025 -64.7112 -113.9961 -106.6202 37.4074 -171.9884 -132.6831
+ -127.0058 0.0000 0.0000 -146.5021 -76.3929 -83.0886 0.0000 -106.6418
+ -87.2553 -119.7629 -154.5811 -80.9765
+ 197 -87.52 0
+ 93.9374 91.5502 91.2157 90.5434 89.8042 90.0523 90.7259 92.2925
+ 91.7507 94.5152 125.0465 110.2773 92.4032 92.3175 94.6333 125.9200
+ 117.8930 119.0145 93.3730 93.3189
+ 121.1052 88.5935 43.4491 48.8000 45.6086 46.9775 45.0174 62.2067
+ -104.5120 135.9852 -40.5474 -166.4287 80.8710 -85.3545 165.2557 -69.1659
+ -108.0864 -139.1284 69.5549
+ 143.6013 134.5662 138.0689 142.7322 122.4203 143.5742 138.9394 137.2841
+ 112.1115 0.0000 0.0000 86.8155 138.6220 110.0183 0.0000 149.2573
+ 112.2892 120.0806 100.4370 112.7179
+ -9.1963 -15.1329 109.7741 -90.1969 -132.5690 -21.7886 -161.9155 -131.2520
+ -77.4449 0.0000 0.0000 -69.3636 -113.4213 -76.9071 0.0000 -33.9374
+ -115.2396 -123.0718 -105.8621 -78.2939
+ 198 -85.58 0
+ 93.9691 92.4043 90.2519 88.7989 89.4060 90.5626 90.2943 90.7504
+ 92.0936 94.9149 125.1844 93.9358 125.2828 129.8595 127.7153 127.2854
+ 118.8926 113.4655 93.0506 93.2710
+ 108.3265 151.6265 89.8803 45.1006 47.7150 48.0846 47.8545 50.9753
+ 172.6133 136.3558 -31.4389 82.3524 -104.9506 -89.4621 -172.1899 -88.4148
+ -108.4001 -136.5161 86.2021
+ 141.4115 139.1139 99.1516 148.2219 95.5772 127.4661 137.7331 133.5160
+ 141.9239 0.0000 0.0000 97.0956 122.2726 122.4901 0.0000 110.8089
+ 126.4471 98.5214 104.3007 109.8354
+ -2.3399 -21.9297 -94.2534 -110.6243 -59.2629 63.5127 -111.8795 -136.9015
+ -126.3093 0.0000 0.0000 -98.3345 -75.3255 -80.5540 0.0000 -109.0518
+ -137.3888 -85.9156 -112.9157 -77.4914
+ 199 -83.35 0
+ 93.8924 91.3007 90.7859 90.3890 90.2578 91.3347 90.3037 92.1551
+ 91.0674 95.7604 145.8627 127.9520 93.8814 139.2587 93.8859 107.5764
+ 115.1071 119.4461 93.3176 93.3701
+ 122.4347 85.7122 46.8169 44.3855 43.7624 49.3631 45.2713 79.7595
+ -96.1423 49.4872 -72.5879 165.0378 87.2604 -179.3461 66.1957 -66.0504
+ -107.4695 -140.5048 51.4613
+ 146.5933 128.2325 94.1244 150.4991 120.7247 134.3749 132.6223 135.8918
+ 140.6589 0.0000 0.0000 113.4618 108.2868 125.0655 0.0000 71.8503
+ 120.5394 113.4717 95.5365 111.7904
+ -8.7744 -14.6561 -86.3695 -100.1338 -125.9279 29.9025 -144.5754 -133.3044
+ -130.7800 0.0000 0.0000 -110.0096 -74.7711 -84.2570 0.0000 -73.3859
+ -128.3280 -113.2912 -100.9704 -81.4244
+ 200 -88.06 0
+ 93.7392 93.0555 127.4739 91.5159 89.8419 90.0791 89.9853 90.8689
+ 91.7628 95.8336 142.2185 132.2540 92.8573 127.9142 95.5646 120.1546
+ 122.4162 110.3173 94.1948 93.4313
+ 111.5820 123.6463 -95.7555 55.0677 41.9172 66.5631 43.8303 74.9811
+ -77.1157 171.6109 -53.2654 157.1470 104.1280 -55.5894 82.1154 -81.1536
+ -163.3524 -165.8557 29.1627
+ 152.8467 131.7543 94.4938 144.3777 123.8961 117.5398 154.4433 83.8191
+ 138.2770 0.0000 0.0000 107.4963 113.6075 119.9297 0.0000 117.6122
+ 116.3624 136.7681 90.5766 116.2814
+ -19.3190 -38.4191 -91.2834 -114.5461 -89.8784 -28.3611 -150.3332 -77.7266
+ -120.5416 0.0000 0.0000 -101.2719 -76.0821 -82.2299 0.0000 -57.4186
+ -119.5327 -153.9562 -80.1864 -80.2624
--- /dev/null
+ 0 1480.518 0
+ 92.2388 92.2388 90.3570 89.0899 88.6572 93.0319 94.8258 87.9664
+ 89.9076 100.1805 109.0732 89.5374 91.8151 101.7839 92.2014 133.2247
+ 121.5017 117.9501 114.2013 114.2013
+ -180.0000 45.8488 55.1936 49.3961 48.2980 46.8430 59.6233 56.6787
+ -87.3042 -127.4990 4.2610 66.1079 70.1396 -108.9488 103.8242 -122.5265
+ -90.2854 -108.3282 180.0000
+ 90.5307 101.5748 163.1951 148.2278 164.5930 123.6495 156.2016 106.9744
+ 153.4470 180.0000 180.0000 101.7709 144.5146 161.0471 180.0000 139.8455
+ 115.6096 118.5749 118.9588 128.9250
+ -178.4521 -78.5297 -7.4402 -110.3334 -141.6382 -21.9127 -108.7501 -55.9598
+ -128.6458 180.0000 180.0000 -115.5797 -129.2177 -100.1770 180.0000 -132.7159
+ -118.0237 -122.4174 -126.2067 -37.3415
--- /dev/null
+1l2y
+SEED=-3059743 CSA MINIMIZE RESCALE_MODE=0 OVERLAP NOSEARCHSC
+MAXMIN=3000 MAXFUN=1000
+NCONF=50 NSTMAX=10000 N1=2 N2=2 N6=5 N3=0 N4=0 N8=0 IS1=1 IS2=25 NSEED=10 &
+NTOTAL=10000 CUT1=2.0 CUT2=5.0 ESTOP=-900000.0 IRESTART=0 NCONF_IN=0 &
+DELE=30.0 DIFCUT=720.0 IREF=1 RMSCUT=3.5 IZ_SC=1 PNCCUT=0.45 &
+ICMAX=1 IUCUT=2 NBANKM=200
+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
+22
+ D ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER SER GLY ARG PRO PRO PRO
+ SER D
+0
+0
--- /dev/null
+ 0 1480.518 0
+ 92.2388 92.2388 90.3570 89.0899 88.6572 93.0319 94.8258 87.9664
+ 89.9076 100.1805 109.0732 89.5374 91.8151 101.7839 92.2014 133.2247
+ 121.5017 117.9501 114.2013 114.2013
+ -180.0000 45.8488 55.1936 49.3961 48.2980 46.8430 59.6233 56.6787
+ -87.3042 -127.4990 4.2610 66.1079 70.1396 -108.9488 103.8242 -122.5265
+ -90.2854 -108.3282 180.0000
+ 90.5307 101.5748 163.1951 148.2278 164.5930 123.6495 156.2016 106.9744
+ 153.4470 180.0000 180.0000 101.7709 144.5146 161.0471 180.0000 139.8455
+ 115.6096 118.5749 118.9588 128.9250
+ -178.4521 -78.5297 -7.4402 -110.3334 -141.6382 -21.9127 -108.7501 -55.9598
+ -128.6458 180.0000 180.0000 -115.5797 -129.2177 -100.1770 180.0000 -132.7159
+ -118.0237 -122.4174 -126.2067 -37.3415
--- /dev/null
+1l2y
+SEED=-3059743 CSA MINIMIZE RESCALE_MODE=0 OVERLAP NOSEARCHSC
+MAXMIN=3000 MAXFUN=1000
+NCONF=50 NSTMAX=10000 N1=2 N2=2 N6=5 N3=0 N4=0 N8=0 IS1=1 IS2=25 NSEED=10 &
+NTOTAL=10000 CUT1=2.0 CUT2=5.0 ESTOP=-900000.0 IRESTART=0 NCONF_IN=0 &
+DELE=30.0 DIFCUT=720.0 IREF=1 RMSCUT=3.5 IZ_SC=1 PNCCUT=0.45 &
+ICMAX=1 IUCUT=2 NBANKM=200
+WLONG=1.00000 WSCP=2.73684 WELEC=0.06833 WANG=4.15526 WSCLOC=0.16761 &
+WTOR=2.99546 WTORD=2.89720 WCORRH=1.98989 WCORR5=0.00000 WCORR6=0.00000 &
+WEL_LOC=1.60072 WTURN3=2.36351 WTURN4=1.34051 WTURN6=0.00000 &
+WSCCOR=0.1 &
+CUTOFF=7.00000 WCORR4=0.00000
+22
+ D ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER SER GLY ARG PRO PRO PRO
+ SER D
+0
+0
--- /dev/null
+1L2Y microcanonical simulation with VTS algorithm in ff_1l2y
+SEED=-3059743 PDBREF MD RESCALE_MODE=2
+nstep=100000 ntwe=1000 ntwx=10000 dt=0.01 damax=20.0 dvmax=20.0 lang=0 &
+t_bath=300 reset_vel=0 PRINT_COMPON
+WLONG=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
+1L2Y.pdb
+22
+ D ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER SER GLY ARG PRO PRO PRO
+ SER D
+ 0
+ 0
+ 123.3156 86.6740 84.7116 86.7723 88.3113 88.7783 87.9593 91.8650
+ 85.6691 96.8119 120.2171 94.5567 89.7129 90.0127 87.8886 139.9802
+ 115.3568 105.7843 110.2352 142.9354
+ -81.2685 64.8566 59.2424 47.3521 48.5272 53.2835 44.9630 77.3277
+ -75.8230 -54.9973 -61.4804 60.8916 144.3285 -69.8206 63.7254 -74.1345
+ -109.8218 -138.6153 60.9332
+ 94.7900 118.7380 156.8878 142.9433 120.6781 155.4634 142.9074 127.2232
+ 140.8296 0.0000 0.0000 117.8482 136.4043 128.3119 0.0000 105.0494
+ 112.4179 114.3846 93.1584 154.6625
+ -84.6887 -57.0623 80.4447 -89.8194 -133.2169 45.2658 -157.8500 -142.4471
+ -141.1460 180.0000 180.0000 -131.6010 -105.7006 -120.1868 180.0000 -109.0446
+ -121.4661 -122.3572 -101.8309 -130.6995
--- /dev/null
+BEGIN{
+i=0
+k=1
+kk=0
+}{
+if ($0=="Gradient in virtual-bond and SC vectors") found=1
+if (found==1 && NF==0) found=2
+if (found==2 && NF>0) {
+ i=i+1
+ if (i>3) {
+ i=1
+ k=k+6
+ }
+# print "###",i
+# print
+ if (i==1) {
+# print "TTT",substr($0,0,3)
+ if (!(substr($0,0,3) ~ /^[[:blank:]]*[0-9]*$/)) exit
+ }
+ if (found==2) {
+ for (j=0;j<6;j++){
+ a[i,k+j]=strtonum(substr($0,4+j*12,12))
+# print "OOO",i,j,k,k+j,a[i,k+j]
+# print "AAA",i,a[2,k+j]
+ if(i==3 && a[2,k+j]!=0) {
+ kk++
+ d[kk]=a[i,k+j]
+# print "III",i,j,k,kk,d[kk]
+ }
+ }}
+}
+}END{
+diffmax=0
+for (x in d){
+ diff=d[x]-1
+ if (diff<0)diff=-diff
+ if (diff>diffmax) diffmax=diff
+}
+
+print "Largest abs(1-numerical/analytical)= ",diffmax
+print "Sorted:"
+n = asort(d,sorted)
+for (i = 1; i <= n; i++)
+ printf "%4d %12.5E\n",i,sorted[i]
+}
\ No newline at end of file
--- /dev/null
+#!/bin/bash
+
+if [ "$1" == "1l2y_clust_int" ]; then
+ file=1l2y_csa_GB000_clust.int
+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 1l2y_csa_GB000_clust.out|head -1|awk '{print $3}'`
+grep THERE 1l2y_csa_GB000_clust.out
+grep REMARK 1l2y_csa*[0-9][0-9][1-9].pdb
+
+ if [ "$fam" != "6" ]; then
+ echo 'ERROR: number of families not equal 6'
+ exit 1
+ fi
+
--- /dev/null
+#!/bin/bash
+
+if [ "$1" == "1L2Y_clust" ]; then
+ file=1L2Y_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 1L2Y_clust_clust.out_000|awk '{print $3}'`
+grep THERE 1L2Y_clust_clust.out_000
+grep REMARK 1L2Y_wham*[1-9].pdb
+
+ if [ "$fam" != "5" ]; then
+ echo 'ERROR: number of families not equal 5'
+ exit 1
+ fi
+
--- /dev/null
+#!/bin/bash
+
+if [ "$1" == "1l2y_csa_4P" ]; then
+ file=1l2y_csa_4P.CSA.history
+elif [ "$1" == "1l2y_csa_local_4P" ]; then
+ file=1l2y_csa_local_4P.CSA.history
+elif [ "$1" == "1l2y_csa" ]; then
+ file=1l2y_csa.CSA.history
+elif [ "$1" == "1l2y_csa_local" ]; then
+ file=1l2y_csa_local.CSA.history
+else
+ exit 1
+fi
+
+# Check if file exist
+if [ ! -f $file ]; then
+ echo "CRITICAL: out $file do not exist"
+ exit 2
+fi
+
+emin=`grep jlee $file |awk '{print $10}'`
+echo 'Emin= ' $emin
+
+if [ "$1" == "1l2y_csa_4P" ]; then
+ echo 'difference ' `echo "a=$emin+215.41208;if(0>a)a*=-1;a"|bc -l` ' from reference emin -215.41208'
+ if [ `echo "a=$emin+215.41208;if(0>a)a*=-1;a>5.0"|bc -l` != "0" ]; then
+ echo 'ERROR difference from reference emin -215.41208 greater than 5.0'
+ exit 1
+ fi
+elif [ "$1" == "1l2y_csa_local_4P" ]; then
+ echo 'difference ' `echo "a=$emin+200.13486;if(0>a)a*=-1;a"|bc -l` ' from reference emin -200.13486'
+ grep rms 1l2y_csa_local_4P*.pdb
+ if [ `echo "a=$emin+200.13486;if(0>a)a*=-1;a>5.0"|bc -l` != "0" ]; then
+ echo 'ERROR difference from reference emin 200.13486 greater than 5.0'
+ exit 1
+ fi
+elif [ "$1" == "1l2y_csa" ]; then
+ echo 'difference ' `echo "a=$emin-29.92824;if(0>a)a*=-1;a"|bc -l` ' from reference emin 29.92824'
+ if [ `echo "a=$emin-29.92824;if(0>a)a*=-1;a>5.0"|bc -l` != "0" ]; then
+ echo 'ERROR difference from reference emin 29.92824 greater than 5.0'
+ exit 1
+ fi
+elif [ "$1" == "1l2y_csa_local" ]; then
+ echo 'difference ' `echo "a=$emin-31.52677;if(0>a)a*=-1;a"|bc -l` ' from reference emin 31.52677'
+ grep rms 1l2y_csa_local_4P*.pdb
+ if [ `echo "a=$emin-31.52677;if(0>a)a*=-1;a>5.0"|bc -l` != "0" ]; then
+ echo 'ERROR difference from reference emin 31.52677 greater than 5.0'
+ exit 1
+ fi
+
+fi
--- /dev/null
+#! /usr/bin/env python
+
+import matplotlib
+#matplotlib.use('GTK')
+matplotlib.use('Agg')
+import matplotlib.pyplot as plt
+import numpy as np
+from scipy.optimize import curve_fit
+from math import sqrt
+import sys
+
+def prob_T(x,a):
+ gg=np.float128(g)
+ aa=np.float128(10**(-gg-2)*a)
+ Tr=np.float128(300.)
+ return np.exp( np.log(aa) + (gg-2)/2*np.log(x) - gg*x/(2*Tr) )
+# return aa * ( x**((gg-2)/2) * np.exp( -gg*x/(2*Tr) ) )
+
+#x,y= np.loadtxt('1L2Y_L_GB000.stat',usecols=(0,10),skiprows=30,unpack=True)
+#x,y= np.loadtxt('1L2Y_NH_GB000.stat',usecols=(0,11),skiprows=10000,unpack=True)
+#x,y= np.loadtxt('1L2Y_B_GB000.stat',usecols=(0,10),skiprows=30,unpack=True)
+g=int(sys.argv[2])
+if (sys.argv[1] == '1L2Y_NH_GB000.stat' or sys.argv[1] == '1L2Y_NH_GB.stat'):
+ x,y= np.loadtxt(sys.argv[1],usecols=(0,11),skiprows=10000,unpack=True)
+else:
+ x,y= np.loadtxt(sys.argv[1],usecols=(0,10),skiprows=10000,unpack=True)
+
+h,bin=np.histogram(y,bins=50,density=True)
+
+plt.bar(bin[:-1], h, width = bin[2]-bin[1])
+plt.xlim(min(bin), max(bin))
+plt.ylim(0,max(h))
+plt.ylabel('probality')
+plt.xlabel('temperature')
+
+center = (bin[:-1] + bin[1:]) / 2
+#print bin
+#print center
+popt, pcov = curve_fit(prob_T, center, h)
+xfine = np.linspace(min(bin), max(bin), 100)
+#print popt
+
+chi_squared = np.sum((prob_T(center, *popt)-h)**2)
+print '%15.10f' % chi_squared
+
+#print xfine
+#print prob_T(xfine,popt[0])
+plt.plot(xfine,prob_T(xfine,popt[0]),'-',c='red')
+plt.savefig(sys.argv[1]+'.png')
+#plt.show()
--- /dev/null
+#! /usr/bin/env python
+
+import matplotlib
+#matplotlib.use('GTK')
+matplotlib.use('Agg')
+import matplotlib.pyplot as plt
+import matplotlib.cm as cm
+import numpy as np
+
+x,y= np.loadtxt('remd_all.stat',usecols=(11,3),unpack=True)
+
+h,bin=np.histogram(y,bins=40,density=False)
+
+plt.xlim(min(bin), max(bin))
+plt.ylim(0,max(h)/4)
+plt.ylabel('number of samples')
+plt.xlabel('potential energy [kcal/mol]')
+
+Tremd=[240, 260, 280, 300, 320, 340, 360, 390]
+colors = cm.rainbow(np.linspace(0, 1, len(Tremd)))
+for T,c in zip(Tremd,colors):
+ yt=y[x==T]
+ h,bin=np.histogram(yt,bins=40,density=False)
+ center = (bin[:-1] + bin[1:]) / 2
+ plt.plot(center,h,'-',color=c)
+# plt.bar(bin[:-1], h, width = bin[2]-bin[1],color=c)
+
+plt.savefig('1L2Y_remd_ene_hist.png')
+#plt.show()
+
+plt.clf()
+plt.xlabel('bath temperature [K]')
+plt.ylabel('potential energy [kcal/mol]')
+
+plt.xlim(230, 400)
+Tremd=[240, 260, 280, 300, 320, 340, 360, 390]
+colors = cm.rainbow(np.linspace(0, 1, len(Tremd)))
+for T,c in zip(Tremd,colors):
+ yt=y[x==T]
+ xt=x[x==T]
+ plt.plot(xt,yt,'.',color=c)
+
+plt.savefig('1L2Y_remd_Tene.png')
--- /dev/null
+ATOM 146 N GLN 10 6.514 5.664 1.428 1.00 1.00
+ATOM 147 HN GLN 10 7.446 5.967 1.464 1.00 0.00
+ATOM 148 CA GLN 10 6.189 4.203 1.357 1.00 1.00
+ATOM 149 HA GLN 10 5.240 4.096 0.869 1.00 0.00
+ATOM 150 CB GLN 10 7.294 3.444 0.565 1.00 1.00
+ATOM 151 HB1 GLN 10 6.877 2.537 0.151 1.00 0.00
+ATOM 152 HB2 GLN 10 8.104 3.185 1.227 1.00 0.00
+ATOM 153 CG GLN 10 7.833 4.313 -0.568 1.00 1.00
+ATOM 154 HG1 GLN 10 8.657 3.806 -1.050 1.00 0.00
+ATOM 155 HG2 GLN 10 8.180 5.247 -0.172 1.00 0.00
+ATOM 156 CD GLN 10 6.731 4.567 -1.601 1.00 1.00
+ATOM 157 OE1 GLN 10 5.589 4.205 -1.413 1.00 1.00
+ATOM 158 NE2 GLN 10 7.034 5.175 -2.716 1.00 1.00
+ATOM 159 HE21 GLN 10 7.955 5.462 -2.883 1.00 0.00
+ATOM 160 HE22 GLN 10 6.339 5.343 -3.386 1.00 0.00
+ATOM 161 C GLN 10 6.071 3.571 2.746 1.00 1.00
+ATOM 162 O GLN 10 4.990 3.264 3.204 1.00 1.00
+ATOM 163 N GLN 11 7.188 3.395 3.381 1.00 1.00
+ATOM 164 HN GLN 11 8.021 3.685 2.975 1.00 0.00
+ATOM 165 CA GLN 11 7.192 2.779 4.731 1.00 1.00
+ATOM 166 HA GLN 11 7.059 1.704 4.624 1.00 0.00
+ATOM 167 CB GLN 11 8.551 3.094 5.412 1.00 1.00
+ATOM 168 HB1 GLN 11 9.046 2.169 5.668 1.00 0.00
+ATOM 169 HB2 GLN 11 8.375 3.656 6.316 1.00 0.00
+ATOM 170 CG GLN 11 9.462 3.918 4.466 1.00 1.00
+ATOM 171 HG1 GLN 11 9.589 3.405 3.522 1.00 0.00
+ATOM 172 HG2 GLN 11 10.437 4.052 4.920 1.00 0.00
+ATOM 173 CD GLN 11 8.835 5.295 4.225 1.00 1.00
+ATOM 174 OE1 GLN 11 8.616 6.059 5.145 1.00 1.00
+ATOM 175 NE2 GLN 11 8.531 5.649 3.007 1.00 1.00
+ATOM 176 HE21 GLN 11 8.705 5.037 2.262 1.00 0.00
+ATOM 177 HE22 GLN 11 8.130 6.527 2.838 1.00 0.00
+ATOM 178 C GLN 11 6.060 3.329 5.602 1.00 1.00
+ATOM 179 O GLN 11 5.210 2.587 6.097 1.00 1.00
+ATOM 180 N ASN 12 6.060 4.614 5.763 1.00 1.00
+ATOM 181 HN ASN 12 6.752 5.162 5.330 1.00 0.00
+ATOM 182 CA ASN 12 5.013 5.253 6.593 1.00 1.00
+ATOM 183 HA ASN 12 5.149 4.943 7.626 1.00 0.00
+ATOM 184 CB ASN 12 5.161 6.773 6.458 1.00 1.00
+ATOM 185 HB1 ASN 12 5.658 7.171 7.331 1.00 0.00
+ATOM 186 HB2 ASN 12 4.185 7.228 6.365 1.00 0.00
+ATOM 187 CG ASN 12 5.993 7.098 5.208 1.00 1.00
+ATOM 188 OD1 ASN 12 6.834 7.976 5.223 1.00 1.00
+ATOM 189 ND2 ASN 12 5.792 6.418 4.103 1.00 1.00
+ATOM 190 HD21 ASN 12 5.115 5.709 4.076 1.00 0.00
+ATOM 191 HD22 ASN 12 6.320 6.619 3.303 1.00 0.00
+ATOM 192 C ASN 12 3.611 4.863 6.148 1.00 1.00
+ATOM 193 O ASN 12 2.818 4.389 6.938 1.00 1.00
+ATOM 194 N ALA 13 3.322 5.067 4.897 1.00 1.00
+ATOM 195 HN ALA 13 3.986 5.445 4.289 1.00 0.00
+ATOM 196 CA ALA 13 1.971 4.716 4.407 1.00 1.00
+ATOM 197 HA ALA 13 1.240 5.309 4.952 1.00 0.00
+ATOM 198 CB ALA 13 1.891 5.014 2.916 1.00 1.00
+ATOM 199 HB1 ALA 13 1.899 6.082 2.753 1.00 0.00
+ATOM 200 HB2 ALA 13 0.976 4.601 2.522 1.00 0.00
+ATOM 201 HB3 ALA 13 2.733 4.568 2.408 1.00 0.00
+ATOM 202 C ALA 13 1.656 3.246 4.622 1.00 1.00
+ATOM 203 O ALA 13 0.611 2.924 5.124 1.00 1.00
+ATOM 204 N PHE 14 2.561 2.380 4.232 1.00 1.00
+ATOM 205 HN PHE 14 3.396 2.687 3.826 1.00 0.00
+ATOM 206 CA PHE 14 2.306 0.920 4.418 1.00 1.00
+ATOM 207 HA PHE 14 1.645 0.558 3.616 1.00 0.00
+ATOM 208 CB PHE 14 3.660 0.180 4.383 1.00 1.00
+ATOM 209 HB1 PHE 14 4.432 0.814 4.787 1.00 0.00
+ATOM 210 HB2 PHE 14 3.908 -0.071 3.363 1.00 0.00
+ATOM 211 CG PHE 14 3.584 -1.110 5.214 1.00 1.00
+ATOM 212 CD1 PHE 14 4.614 -1.448 6.077 1.00 1.00
+ATOM 213 HD1 PHE 14 5.472 -0.796 6.170 1.00 0.00
+ATOM 214 CD2 PHE 14 2.492 -1.960 5.108 1.00 1.00
+ATOM 215 HD2 PHE 14 1.679 -1.709 4.444 1.00 0.00
+ATOM 216 CE1 PHE 14 4.554 -2.612 6.816 1.00 1.00
+ATOM 217 HE1 PHE 14 5.364 -2.869 7.484 1.00 0.00
+ATOM 218 CE2 PHE 14 2.438 -3.123 5.849 1.00 1.00
+ATOM 219 HE2 PHE 14 1.584 -3.779 5.760 1.00 0.00
+ATOM 220 CZ PHE 14 3.467 -3.446 6.704 1.00 1.00
+ATOM 221 HZ PHE 14 3.421 -4.354 7.288 1.00 0.00
+ATOM 222 C PHE 14 1.626 0.668 5.750 1.00 1.00
+ATOM 223 O PHE 14 0.516 0.173 5.790 1.00 1.00
+ATOM 224 N TYR 15 2.262 1.044 6.823 1.00 1.00
+ATOM 225 HN TYR 15 3.150 1.491 6.768 1.00 0.00
+ATOM 226 CA TYR 15 1.603 0.795 8.131 1.00 1.00
+ATOM 227 HA TYR 15 1.595 -0.283 8.311 1.00 0.00
+ATOM 228 CB TYR 15 2.371 1.539 9.235 1.00 1.00
+ATOM 229 HB1 TYR 15 1.846 1.441 10.173 1.00 0.00
+ATOM 230 HB2 TYR 15 2.453 2.584 8.982 1.00 0.00
+ATOM 231 CG TYR 15 3.771 0.941 9.376 1.00 1.00
+ATOM 232 CD1 TYR 15 3.939 -0.344 9.849 1.00 1.00
+ATOM 233 HD1 TYR 15 3.076 -0.932 10.124 1.00 0.00
+ATOM 234 CD2 TYR 15 4.888 1.680 9.035 1.00 1.00
+ATOM 235 HD2 TYR 15 4.772 2.687 8.666 1.00 0.00
+ATOM 236 CE1 TYR 15 5.204 -0.882 9.980 1.00 1.00
+ATOM 237 HE1 TYR 15 5.322 -1.889 10.351 1.00 0.00
+ATOM 238 CE2 TYR 15 6.151 1.142 9.167 1.00 1.00
+ATOM 239 HE2 TYR 15 7.016 1.730 8.897 1.00 0.00
+ATOM 240 CZ TYR 15 6.318 -0.142 9.640 1.00 1.00
+ATOM 241 OH TYR 15 7.582 -0.679 9.771 1.00 1.00
+ATOM 242 HH TYR 15 8.128 -0.329 9.064 1.00 0.00
+ATOM 243 C TYR 15 0.156 1.291 8.111 1.00 1.00
+ATOM 244 O TYR 15 -0.700 0.737 8.771 1.00 1.00
+ATOM 245 N GLU 16 -0.091 2.325 7.354 1.00 1.00
+ATOM 246 HN GLU 16 0.630 2.755 6.856 1.00 0.00
+ATOM 247 CA GLU 16 -1.480 2.859 7.281 1.00 1.00
+ATOM 248 HA GLU 16 -1.928 2.796 8.272 1.00 0.00
+ATOM 249 CB GLU 16 -1.422 4.321 6.809 1.00 1.00
+ATOM 250 HB1 GLU 16 -2.406 4.760 6.872 1.00 0.00
+ATOM 251 HB2 GLU 16 -1.084 4.364 5.788 1.00 0.00
+ATOM 252 CG GLU 16 -0.455 5.098 7.707 1.00 1.00
+ATOM 253 HG1 GLU 16 0.524 5.130 7.251 1.00 0.00
+ATOM 254 HG2 GLU 16 -0.384 4.616 8.672 1.00 0.00
+ATOM 255 CD GLU 16 -0.976 6.525 7.891 1.00 1.00
+ATOM 256 OE1 GLU 16 -1.834 6.681 8.744 1.00 1.00
+ATOM 257 OE2 GLU 16 -0.485 7.377 7.170 1.00 1.00
+ATOM 258 C GLU 16 -2.342 2.047 6.298 1.00 1.00
+ATOM 259 O GLU 16 -3.448 1.674 6.620 1.00 1.00
+ATOM 260 N ILE 17 -1.818 1.794 5.114 1.00 1.00
+ATOM 261 HN ILE 17 -0.927 2.116 4.892 1.00 0.00
+ATOM 262 CA ILE 17 -2.605 1.006 4.111 1.00 1.00
+ATOM 263 HA ILE 17 -3.345 1.651 3.644 1.00 0.00
+ATOM 264 CB ILE 17 -1.631 0.419 3.058 1.00 1.00
+ATOM 265 HB ILE 17 -0.966 -0.293 3.547 1.00 0.00
+ATOM 266 CG1 ILE 17 -0.798 1.518 2.432 1.00 1.00
+ATOM 267 HG11 ILE 17 -0.184 1.979 3.181 1.00 0.00
+ATOM 268 HG12 ILE 17 -1.447 2.260 1.999 1.00 0.00
+ATOM 269 CG2 ILE 17 -2.427 -0.268 1.920 1.00 1.00
+ATOM 270 HG21 ILE 17 -2.438 0.370 1.040 1.00 0.00
+ATOM 271 HG22 ILE 17 -3.444 -0.460 2.224 1.00 0.00
+ATOM 272 HG23 ILE 17 -1.952 -1.210 1.664 1.00 0.00
+ATOM 273 CD1 ILE 17 0.091 0.910 1.342 1.00 1.00
+ATOM 274 HD11 ILE 17 0.123 -0.163 1.448 1.00 0.00
+ATOM 275 HD12 ILE 17 1.085 1.298 1.433 1.00 0.00
+ATOM 276 HD13 ILE 17 -0.302 1.159 0.366 1.00 0.00
+ATOM 277 C ILE 17 -3.309 -0.158 4.785 1.00 1.00
+ATOM 278 O ILE 17 -4.378 -0.556 4.381 1.00 1.00
+ATOM 279 N LEU 18 -2.710 -0.667 5.820 1.00 1.00
+ATOM 280 HN LEU 18 -1.850 -0.293 6.137 1.00 0.00
+ATOM 281 CA LEU 18 -3.334 -1.820 6.517 1.00 1.00
+ATOM 282 HA LEU 18 -3.803 -2.452 5.770 1.00 0.00
+ATOM 283 CB LEU 18 -2.218 -2.574 7.236 1.00 1.00
+ATOM 284 HB1 LEU 18 -2.621 -3.164 8.039 1.00 0.00
+ATOM 285 HB2 LEU 18 -1.525 -1.859 7.641 1.00 0.00
+ATOM 286 CG LEU 18 -1.489 -3.481 6.221 1.00 1.00
+ATOM 287 HG LEU 18 -0.615 -3.910 6.689 1.00 0.00
+ATOM 288 CD1 LEU 18 -1.055 -2.625 5.016 1.00 1.00
+ATOM 289 HD11 LEU 18 -0.354 -3.169 4.412 1.00 0.00
+ATOM 290 HD12 LEU 18 -0.590 -1.734 5.365 1.00 0.00
+ATOM 291 HD13 LEU 18 -1.909 -2.357 4.417 1.00 0.00
+ATOM 292 CD2 LEU 18 -2.428 -4.619 5.748 1.00 1.00
+ATOM 293 HD21 LEU 18 -1.916 -5.565 5.817 1.00 0.00
+ATOM 294 HD22 LEU 18 -2.727 -4.456 4.720 1.00 0.00
+ATOM 295 HD23 LEU 18 -3.311 -4.649 6.370 1.00 0.00
+ATOM 296 C LEU 18 -4.404 -1.396 7.513 1.00 1.00
+ATOM 297 O LEU 18 -4.560 -1.998 8.559 1.00 1.00
+ATOM 298 N HIS 19 -5.117 -0.367 7.165 1.00 1.00
+ATOM 299 HN HIS 19 -4.916 0.099 6.331 1.00 0.00
+ATOM 300 CA HIS 19 -6.201 0.118 8.071 1.00 1.00
+ATOM 301 HA HIS 19 -6.433 -0.675 8.779 1.00 0.00
+ATOM 302 CB HIS 19 -5.693 1.341 8.815 1.00 1.00
+ATOM 303 HB1 HIS 19 -6.507 1.851 9.298 1.00 0.00
+ATOM 304 HB2 HIS 19 -5.191 2.012 8.138 1.00 0.00
+ATOM 305 CG HIS 19 -4.719 0.842 9.859 1.00 1.00
+ATOM 306 ND1 HIS 19 -3.529 1.186 9.944 1.00 1.00
+ATOM 307 HD1 HIS 19 -3.106 1.865 9.377 1.00 0.00
+ATOM 308 CD2 HIS 19 -4.900 -0.112 10.840 1.00 1.00
+ATOM 309 HD2 HIS 19 -5.820 -0.640 11.038 1.00 0.00
+ATOM 310 CE1 HIS 19 -2.937 0.552 10.861 1.00 1.00
+ATOM 311 HE1 HIS 19 -1.911 0.667 11.080 1.00 0.00
+ATOM 312 NE2 HIS 19 -3.736 -0.300 11.492 1.00 1.00
+ATOM 313 C HIS 19 -7.475 0.474 7.287 1.00 1.00
+ATOM 314 O HIS 19 -8.558 0.480 7.831 1.00 1.00
+ATOM 315 N LEU 20 -7.307 0.749 6.019 1.00 1.00
+ATOM 316 HN LEU 20 -6.409 0.719 5.632 1.00 0.00
+ATOM 317 CA LEU 20 -8.470 1.107 5.152 1.00 1.00
+ATOM 318 HA LEU 20 -8.716 2.138 5.313 1.00 0.00
+ATOM 319 CB LEU 20 -7.992 0.901 3.730 1.00 1.00
+ATOM 320 HB1 LEU 20 -8.808 1.051 3.040 1.00 0.00
+ATOM 321 HB2 LEU 20 -7.616 -0.103 3.636 1.00 0.00
+ATOM 322 CG LEU 20 -6.855 1.906 3.448 1.00 1.00
+ATOM 323 HG LEU 20 -6.110 1.834 4.229 1.00 0.00
+ATOM 324 CD1 LEU 20 -7.414 3.336 3.414 1.00 1.00
+ATOM 325 HD11 LEU 20 -8.451 3.324 3.115 1.00 0.00
+ATOM 326 HD12 LEU 20 -6.849 3.927 2.710 1.00 0.00
+ATOM 327 HD13 LEU 20 -7.333 3.783 4.394 1.00 0.00
+ATOM 328 CD2 LEU 20 -6.208 1.594 2.099 1.00 1.00
+ATOM 329 HD21 LEU 20 -6.909 1.795 1.304 1.00 0.00
+ATOM 330 HD22 LEU 20 -5.917 0.555 2.065 1.00 0.00
+ATOM 331 HD23 LEU 20 -5.331 2.213 1.964 1.00 0.00
+ATOM 332 C LEU 20 -9.703 0.176 5.430 1.00 1.00
+ATOM 333 O LEU 20 -9.779 -0.931 4.903 1.00 1.00
+ATOM 334 N PRO 21 -10.694 0.676 6.188 1.00 1.00
+ATOM 335 CA PRO 21 -11.882 -0.127 6.533 1.00 1.00
+ATOM 336 HA PRO 21 -11.578 -1.074 6.961 1.00 0.00
+ATOM 337 CB PRO 21 -12.624 0.729 7.579 1.00 1.00
+ATOM 338 HB1 PRO 21 -12.495 0.305 8.564 1.00 0.00
+ATOM 339 HB2 PRO 21 -13.677 0.773 7.340 1.00 0.00
+ATOM 340 CG PRO 21 -12.008 2.158 7.530 1.00 1.00
+ATOM 341 HG1 PRO 21 -11.761 2.494 8.522 1.00 0.00
+ATOM 342 HG2 PRO 21 -12.706 2.848 7.074 1.00 0.00
+ATOM 343 CD PRO 21 -10.743 2.076 6.680 1.00 1.00
+ATOM 344 HD1 PRO 21 -10.819 2.762 5.845 1.00 0.00
+ATOM 345 HD2 PRO 21 -9.876 2.304 7.277 1.00 0.00
+ATOM 346 C PRO 21 -12.832 -0.363 5.365 1.00 1.00
+ATOM 347 O PRO 21 -13.766 -1.130 5.490 1.00 1.00
+ATOM 348 N ASN 22 -12.589 0.277 4.256 1.00 1.00
+ATOM 349 HN ASN 22 -11.824 0.885 4.185 1.00 0.00
+ATOM 350 CA ASN 22 -13.506 0.082 3.107 1.00 1.00
+ATOM 351 HA ASN 22 -14.473 -0.233 3.487 1.00 0.00
+ATOM 352 CB ASN 22 -13.651 1.427 2.392 1.00 1.00
+ATOM 353 HB1 ASN 22 -14.550 1.917 2.729 1.00 0.00
+ATOM 354 HB2 ASN 22 -13.706 1.271 1.324 1.00 0.00
+ATOM 355 CG ASN 22 -12.445 2.314 2.714 1.00 1.00
+ATOM 356 OD1 ASN 22 -11.319 1.989 2.395 1.00 1.00
+ATOM 357 ND2 ASN 22 -12.638 3.442 3.343 1.00 1.00
+ATOM 358 HD21 ASN 22 -13.545 3.711 3.601 1.00 0.00
+ATOM 359 HD22 ASN 22 -11.878 4.020 3.558 1.00 0.00
+ATOM 360 C ASN 22 -13.030 -0.959 2.090 1.00 1.00
+ATOM 361 O ASN 22 -13.647 -1.087 1.051 1.00 1.00
+ATOM 362 N LEU 23 -11.959 -1.690 2.373 1.00 1.00
+ATOM 363 HN LEU 23 -11.438 -1.546 3.199 1.00 0.00
+ATOM 364 CA LEU 23 -11.517 -2.699 1.361 1.00 1.00
+ATOM 365 HA LEU 23 -12.284 -2.817 0.605 1.00 0.00
+ATOM 366 CB LEU 23 -10.203 -2.249 0.715 1.00 1.00
+ATOM 367 HB1 LEU 23 -10.229 -2.495 -0.329 1.00 0.00
+ATOM 368 HB2 LEU 23 -9.394 -2.785 1.174 1.00 0.00
+ATOM 369 CG LEU 23 -9.963 -0.747 0.877 1.00 1.00
+ATOM 370 HG LEU 23 -10.183 -0.432 1.879 1.00 0.00
+ATOM 371 CD1 LEU 23 -8.485 -0.470 0.583 1.00 1.00
+ATOM 372 HD11 LEU 23 -8.080 -1.257 -0.019 1.00 0.00
+ATOM 373 HD12 LEU 23 -7.941 -0.436 1.489 1.00 0.00
+ATOM 374 HD13 LEU 23 -8.376 0.471 0.079 1.00 0.00
+ATOM 375 CD2 LEU 23 -10.854 0.009 -0.116 1.00 1.00
+ATOM 376 HD21 LEU 23 -10.348 0.113 -1.063 1.00 0.00
+ATOM 377 HD22 LEU 23 -11.086 0.986 0.275 1.00 0.00
+ATOM 378 HD23 LEU 23 -11.771 -0.537 -0.267 1.00 0.00
+ATOM 379 C LEU 23 -11.224 -4.056 1.955 1.00 1.00
+ATOM 380 O LEU 23 -10.995 -4.198 3.141 1.00 1.00
+ATOM 381 N ASN 24 -11.245 -5.043 1.091 1.00 1.00
+ATOM 382 HN ASN 24 -11.460 -4.869 0.151 1.00 0.00
+ATOM 383 CA ASN 24 -10.949 -6.410 1.539 1.00 1.00
+ATOM 384 HA ASN 24 -11.210 -6.509 2.581 1.00 0.00
+ATOM 385 CB ASN 24 -11.707 -7.413 0.675 1.00 1.00
+ATOM 386 HB1 ASN 24 -12.584 -7.761 1.199 1.00 0.00
+ATOM 387 HB2 ASN 24 -11.064 -8.256 0.451 1.00 0.00
+ATOM 388 CG ASN 24 -12.127 -6.734 -0.617 1.00 1.00
+ATOM 389 OD1 ASN 24 -12.974 -5.864 -0.626 1.00 1.00
+ATOM 390 ND2 ASN 24 -11.566 -7.092 -1.725 1.00 1.00
+ATOM 391 HD21 ASN 24 -10.882 -7.795 -1.726 1.00 0.00
+ATOM 392 HD22 ASN 24 -11.819 -6.659 -2.552 1.00 0.00
+ATOM 393 C ASN 24 -9.464 -6.619 1.370 1.00 1.00
+ATOM 394 O ASN 24 -8.818 -5.864 0.651 1.00 1.00
+ATOM 395 N GLU 25 -8.930 -7.628 1.971 1.00 1.00
+ATOM 396 HN GLU 25 -9.474 -8.257 2.491 1.00 0.00
+ATOM 397 CA GLU 25 -7.477 -7.810 1.818 1.00 1.00
+ATOM 398 HA GLU 25 -7.049 -6.828 1.710 1.00 0.00
+ATOM 399 CB GLU 25 -6.898 -8.462 3.058 1.00 1.00
+ATOM 400 HB1 GLU 25 -6.529 -9.451 2.822 1.00 0.00
+ATOM 401 HB2 GLU 25 -7.652 -8.530 3.829 1.00 0.00
+ATOM 402 CG GLU 25 -5.748 -7.566 3.523 1.00 1.00
+ATOM 403 HG1 GLU 25 -6.135 -6.588 3.804 1.00 0.00
+ATOM 404 HG2 GLU 25 -5.039 -7.443 2.712 1.00 0.00
+ATOM 405 CD GLU 25 -5.045 -8.203 4.723 1.00 1.00
+ATOM 406 OE1 GLU 25 -3.852 -8.414 4.598 1.00 1.00
+ATOM 407 OE2 GLU 25 -5.741 -8.441 5.695 1.00 1.00
+ATOM 408 C GLU 25 -7.076 -8.589 0.589 1.00 1.00
+ATOM 409 O GLU 25 -5.932 -8.543 0.211 1.00 1.00
+ATOM 410 N GLU 26 -7.977 -9.294 -0.024 1.00 1.00
+ATOM 411 HN GLU 26 -8.902 -9.337 0.297 1.00 0.00
+ATOM 412 CA GLU 26 -7.543 -10.030 -1.233 1.00 1.00
+ATOM 413 HA GLU 26 -6.855 -10.827 -0.941 1.00 0.00
+ATOM 414 CB GLU 26 -8.777 -10.586 -1.967 1.00 1.00
+ATOM 415 HB1 GLU 26 -9.090 -9.891 -2.733 1.00 0.00
+ATOM 416 HB2 GLU 26 -9.585 -10.729 -1.265 1.00 0.00
+ATOM 417 CG GLU 26 -8.408 -11.927 -2.608 1.00 1.00
+ATOM 418 HG1 GLU 26 -8.288 -12.677 -1.840 1.00 0.00
+ATOM 419 HG2 GLU 26 -7.482 -11.828 -3.155 1.00 0.00
+ATOM 420 CD GLU 26 -9.518 -12.361 -3.568 1.00 1.00
+ATOM 421 OE1 GLU 26 -9.194 -13.137 -4.452 1.00 1.00
+ATOM 422 OE2 GLU 26 -10.626 -11.895 -3.364 1.00 1.00
+ATOM 423 C GLU 26 -6.813 -9.041 -2.135 1.00 1.00
+ATOM 424 O GLU 26 -5.678 -9.256 -2.536 1.00 1.00
+ATOM 425 N GLN 27 -7.466 -7.940 -2.384 1.00 1.00
+ATOM 426 HN GLN 27 -8.354 -7.799 -1.996 1.00 0.00
+ATOM 427 CA GLN 27 -6.854 -6.903 -3.239 1.00 1.00
+ATOM 428 HA GLN 27 -6.434 -7.372 -4.127 1.00 0.00
+ATOM 429 CB GLN 27 -7.926 -5.862 -3.614 1.00 1.00
+ATOM 430 HB1 GLN 27 -7.599 -5.309 -4.481 1.00 0.00
+ATOM 431 HB2 GLN 27 -8.066 -5.176 -2.792 1.00 0.00
+ATOM 432 CG GLN 27 -9.253 -6.562 -3.928 1.00 1.00
+ATOM 433 HG1 GLN 27 -10.002 -5.825 -4.180 1.00 0.00
+ATOM 434 HG2 GLN 27 -9.587 -7.123 -3.072 1.00 0.00
+ATOM 435 CD GLN 27 -9.057 -7.509 -5.113 1.00 1.00
+ATOM 436 OE1 GLN 27 -8.364 -8.502 -5.021 1.00 1.00
+ATOM 437 NE2 GLN 27 -9.652 -7.239 -6.243 1.00 1.00
+ATOM 438 HE21 GLN 27 -10.215 -6.440 -6.322 1.00 0.00
+ATOM 439 HE22 GLN 27 -9.536 -7.834 -7.012 1.00 0.00
+ATOM 440 C GLN 27 -5.744 -6.197 -2.470 1.00 1.00
+ATOM 441 O GLN 27 -4.635 -6.039 -2.968 1.00 1.00
+ATOM 442 N ARG 28 -6.053 -5.777 -1.257 1.00 1.00
+ATOM 443 HN ARG 28 -6.959 -5.918 -0.885 1.00 0.00
+ATOM 444 CA ARG 28 -5.011 -5.088 -0.467 1.00 1.00
+ATOM 445 HA ARG 28 -4.693 -4.232 -1.000 1.00 0.00
+ATOM 446 CB ARG 28 -5.567 -4.708 0.910 1.00 1.00
+ATOM 447 HB1 ARG 28 -5.231 -5.415 1.643 1.00 0.00
+ATOM 448 HB2 ARG 28 -6.646 -4.708 0.878 1.00 0.00
+ATOM 449 CG ARG 28 -5.070 -3.315 1.289 1.00 1.00
+ATOM 450 HG1 ARG 28 -5.641 -2.568 0.763 1.00 0.00
+ATOM 451 HG2 ARG 28 -4.029 -3.217 1.026 1.00 0.00
+ATOM 452 CD ARG 28 -5.238 -3.121 2.792 1.00 1.00
+ATOM 453 HD1 ARG 28 -5.455 -2.087 3.003 1.00 0.00
+ATOM 454 HD2 ARG 28 -4.333 -3.412 3.306 1.00 0.00
+ATOM 455 NE ARG 28 -6.369 -3.966 3.263 1.00 1.00
+ATOM 456 HE ARG 28 -6.931 -4.442 2.619 1.00 0.00
+ATOM 457 CZ ARG 28 -6.608 -4.063 4.539 1.00 1.00
+ATOM 458 NH1 ARG 28 -5.723 -4.641 5.303 1.00 1.00
+ATOM 459 HH11 ARG 28 -4.876 -4.998 4.905 1.00 0.00
+ATOM 460 HH12 ARG 28 -5.890 -4.727 6.285 1.00 0.00
+ATOM 461 NH2 ARG 28 -7.727 -3.580 5.011 1.00 1.00
+ATOM 462 HH21 ARG 28 -8.384 -3.143 4.393 1.00 0.00
+ATOM 463 HH22 ARG 28 -7.927 -3.645 5.987 1.00 0.00
+ATOM 464 C ARG 28 -3.823 -5.971 -0.311 1.00 1.00
+ATOM 465 O ARG 28 -2.769 -5.652 -0.819 1.00 1.00
+ATOM 466 N ASN 29 -3.988 -7.059 0.386 1.00 1.00
+ATOM 467 HN ASN 29 -4.850 -7.260 0.803 1.00 0.00
+ATOM 468 CA ASN 29 -2.840 -7.965 0.553 1.00 1.00
+ATOM 469 HA ASN 29 -2.160 -7.557 1.305 1.00 0.00
+ATOM 470 CB ASN 29 -3.342 -9.361 0.949 1.00 1.00
+ATOM 471 HB1 ASN 29 -3.977 -9.753 0.173 1.00 0.00
+ATOM 472 HB2 ASN 29 -3.895 -9.306 1.874 1.00 0.00
+ATOM 473 CG ASN 29 -2.147 -10.296 1.125 1.00 1.00
+ATOM 474 OD1 ASN 29 -1.296 -10.087 1.966 1.00 1.00
+ATOM 475 ND2 ASN 29 -2.047 -11.340 0.347 1.00 1.00
+ATOM 476 HD21 ASN 29 -2.732 -11.511 -0.333 1.00 0.00
+ATOM 477 HD22 ASN 29 -1.289 -11.951 0.443 1.00 0.00
+ATOM 478 C ASN 29 -2.111 -8.078 -0.763 1.00 1.00
+ATOM 479 O ASN 29 -0.942 -8.236 -0.792 1.00 1.00
+ATOM 480 N GLY 30 -2.829 -7.953 -1.841 1.00 1.00
+ATOM 481 HN GLY 30 -3.799 -7.793 -1.787 1.00 0.00
+ATOM 482 CA GLY 30 -2.163 -8.055 -3.155 1.00 1.00
+ATOM 483 HA1 GLY 30 -2.886 -7.864 -3.935 1.00 0.00
+ATOM 484 HA2 GLY 30 -1.770 -9.055 -3.278 1.00 0.00
+ATOM 485 C GLY 30 -1.013 -7.042 -3.276 1.00 1.00
+ATOM 486 O GLY 30 0.172 -7.412 -3.216 1.00 1.00
+ATOM 487 N PHE 31 -1.353 -5.773 -3.391 1.00 1.00
+ATOM 488 HN PHE 31 -2.301 -5.492 -3.360 1.00 0.00
+ATOM 489 CA PHE 31 -0.258 -4.785 -3.533 1.00 1.00
+ATOM 490 HA PHE 31 0.247 -5.001 -4.471 1.00 0.00
+ATOM 491 CB PHE 31 -0.764 -3.302 -3.545 1.00 1.00
+ATOM 492 HB1 PHE 31 -0.863 -2.973 -4.547 1.00 0.00
+ATOM 493 HB2 PHE 31 -0.029 -2.690 -3.053 1.00 0.00
+ATOM 494 CG PHE 31 -2.076 -3.039 -2.858 1.00 1.00
+ATOM 495 CD1 PHE 31 -3.267 -3.186 -3.534 1.00 1.00
+ATOM 496 HD1 PHE 31 -3.289 -3.700 -4.483 1.00 0.00
+ATOM 497 CD2 PHE 31 -2.082 -2.393 -1.640 1.00 1.00
+ATOM 498 HD2 PHE 31 -1.165 -2.271 -1.097 1.00 0.00
+ATOM 499 CE1 PHE 31 -4.427 -2.678 -3.000 1.00 1.00
+ATOM 500 HE1 PHE 31 -5.349 -2.800 -3.520 1.00 0.00
+ATOM 501 CE2 PHE 31 -3.238 -1.896 -1.124 1.00 1.00
+ATOM 502 HE2 PHE 31 -3.230 -1.398 -0.198 1.00 0.00
+ATOM 503 CZ PHE 31 -4.399 -2.028 -1.786 1.00 1.00
+ATOM 504 HZ PHE 31 -5.298 -1.656 -1.343 1.00 0.00
+ATOM 505 C PHE 31 0.773 -4.897 -2.432 1.00 1.00
+ATOM 506 O PHE 31 1.942 -5.149 -2.673 1.00 1.00
+ATOM 507 N ILE 32 0.344 -4.746 -1.251 1.00 1.00
+ATOM 508 HN ILE 32 -0.605 -4.608 -1.078 1.00 0.00
+ATOM 509 CA ILE 32 1.310 -4.819 -0.162 1.00 1.00
+ATOM 510 HA ILE 32 2.084 -4.088 -0.379 1.00 0.00
+ATOM 511 CB ILE 32 0.626 -4.452 1.126 1.00 1.00
+ATOM 512 HB ILE 32 1.064 -5.019 1.940 1.00 0.00
+ATOM 513 CG1 ILE 32 -0.865 -4.752 1.027 1.00 1.00
+ATOM 514 HG11 ILE 32 -0.996 -5.740 0.644 1.00 0.00
+ATOM 515 HG12 ILE 32 -1.335 -4.051 0.366 1.00 0.00
+ATOM 516 CG2 ILE 32 0.840 -2.947 1.306 1.00 1.00
+ATOM 517 HG21 ILE 32 0.598 -2.438 0.383 1.00 0.00
+ATOM 518 HG22 ILE 32 1.874 -2.758 1.547 1.00 0.00
+ATOM 519 HG23 ILE 32 0.216 -2.575 2.091 1.00 0.00
+ATOM 520 CD1 ILE 32 -1.517 -4.646 2.399 1.00 1.00
+ATOM 521 HD11 ILE 32 -0.842 -4.993 3.162 1.00 0.00
+ATOM 522 HD12 ILE 32 -2.410 -5.242 2.422 1.00 0.00
+ATOM 523 HD13 ILE 32 -1.776 -3.623 2.588 1.00 0.00
+ATOM 524 C ILE 32 1.982 -6.170 -0.026 1.00 1.00
+ATOM 525 O ILE 32 3.148 -6.218 0.292 1.00 1.00
+ATOM 526 N GLN 33 1.279 -7.247 -0.267 1.00 1.00
+ATOM 527 HN GLN 33 0.348 -7.192 -0.532 1.00 0.00
+ATOM 528 CA GLN 33 1.976 -8.551 -0.119 1.00 1.00
+ATOM 529 HA GLN 33 2.164 -8.704 0.942 1.00 0.00
+ATOM 530 CB GLN 33 1.158 -9.717 -0.719 1.00 1.00
+ATOM 531 HB1 GLN 33 0.785 -9.441 -1.695 1.00 0.00
+ATOM 532 HB2 GLN 33 0.331 -9.956 -0.068 1.00 0.00
+ATOM 533 CG GLN 33 2.058 -10.953 -0.851 1.00 1.00
+ATOM 534 HG1 GLN 33 2.642 -11.077 0.050 1.00 0.00
+ATOM 535 HG2 GLN 33 2.722 -10.839 -1.694 1.00 0.00
+ATOM 536 CD GLN 33 1.186 -12.190 -1.064 1.00 1.00
+ATOM 537 OE1 GLN 33 0.550 -12.345 -2.087 1.00 1.00
+ATOM 538 NE2 GLN 33 1.131 -13.095 -0.127 1.00 1.00
+ATOM 539 HE21 GLN 33 1.644 -12.977 0.699 1.00 0.00
+ATOM 540 HE22 GLN 33 0.575 -13.893 -0.248 1.00 0.00
+ATOM 541 C GLN 33 3.292 -8.473 -0.831 1.00 1.00
+ATOM 542 O GLN 33 4.262 -9.081 -0.423 1.00 1.00
+ATOM 543 N SER 34 3.318 -7.718 -1.896 1.00 1.00
+ATOM 544 HN SER 34 2.496 -7.238 -2.215 1.00 0.00
+ATOM 545 CA SER 34 4.593 -7.600 -2.617 1.00 1.00
+ATOM 546 HA SER 34 5.064 -8.582 -2.662 1.00 0.00
+ATOM 547 CB SER 34 4.326 -7.054 -4.019 1.00 1.00
+ATOM 548 HB1 SER 34 4.633 -7.767 -4.770 1.00 0.00
+ATOM 549 HB2 SER 34 4.832 -6.114 -4.165 1.00 0.00
+ATOM 550 OG SER 34 2.917 -6.880 -4.056 1.00 1.00
+ATOM 551 HG SER 34 2.521 -7.717 -4.309 1.00 0.00
+ATOM 552 C SER 34 5.513 -6.643 -1.856 1.00 1.00
+ATOM 553 O SER 34 6.709 -6.824 -1.834 1.00 1.00
+ATOM 554 N LEU 35 4.926 -5.638 -1.229 1.00 1.00
+ATOM 555 HN LEU 35 3.959 -5.514 -1.283 1.00 0.00
+ATOM 556 CA LEU 35 5.740 -4.668 -0.465 1.00 1.00
+ATOM 557 HA LEU 35 6.411 -4.170 -1.148 1.00 0.00
+ATOM 558 CB LEU 35 4.772 -3.656 0.192 1.00 1.00
+ATOM 559 HB1 LEU 35 4.055 -4.179 0.777 1.00 0.00
+ATOM 560 HB2 LEU 35 4.266 -3.096 -0.577 1.00 0.00
+ATOM 561 CG LEU 35 5.540 -2.712 1.099 1.00 1.00
+ATOM 562 HG LEU 35 6.576 -2.776 0.865 1.00 0.00
+ATOM 563 CD1 LEU 35 5.306 -3.115 2.559 1.00 1.00
+ATOM 564 HD11 LEU 35 5.597 -4.141 2.709 1.00 0.00
+ATOM 565 HD12 LEU 35 4.258 -3.004 2.803 1.00 0.00
+ATOM 566 HD13 LEU 35 5.889 -2.481 3.210 1.00 0.00
+ATOM 567 CD2 LEU 35 5.031 -1.266 0.915 1.00 1.00
+ATOM 568 HD21 LEU 35 5.656 -0.588 1.475 1.00 0.00
+ATOM 569 HD22 LEU 35 4.016 -1.190 1.278 1.00 0.00
+ATOM 570 HD23 LEU 35 5.052 -0.986 -0.125 1.00 0.00
+ATOM 571 C LEU 35 6.567 -5.355 0.625 1.00 1.00
+ATOM 572 O LEU 35 7.691 -4.970 0.875 1.00 1.00
+ATOM 573 N LYS 36 6.008 -6.354 1.259 1.00 1.00
+ATOM 574 HN LYS 36 5.097 -6.638 1.038 1.00 0.00
+ATOM 575 CA LYS 36 6.784 -7.045 2.332 1.00 1.00
+ATOM 576 HA LYS 36 7.454 -6.319 2.786 1.00 0.00
+ATOM 577 CB LYS 36 5.817 -7.610 3.397 1.00 1.00
+ATOM 578 HB1 LYS 36 5.718 -6.895 4.196 1.00 0.00
+ATOM 579 HB2 LYS 36 6.229 -8.522 3.801 1.00 0.00
+ATOM 580 CG LYS 36 4.430 -7.907 2.784 1.00 1.00
+ATOM 581 HG1 LYS 36 3.982 -8.744 3.302 1.00 0.00
+ATOM 582 HG2 LYS 36 4.541 -8.168 1.742 1.00 0.00
+ATOM 583 CD LYS 36 3.513 -6.673 2.914 1.00 1.00
+ATOM 584 HD1 LYS 36 2.581 -6.866 2.408 1.00 0.00
+ATOM 585 HD2 LYS 36 3.989 -5.814 2.459 1.00 0.00
+ATOM 586 CE LYS 36 3.222 -6.383 4.397 1.00 1.00
+ATOM 587 HE1 LYS 36 3.838 -5.562 4.734 1.00 0.00
+ATOM 588 HE2 LYS 36 3.443 -7.256 4.992 1.00 0.00
+ATOM 589 NZ LYS 36 1.788 -6.022 4.580 1.00 1.00
+ATOM 590 HZ1 LYS 36 1.193 -6.848 4.367 1.00 0.00
+ATOM 591 HZ2 LYS 36 1.543 -5.243 3.937 1.00 0.00
+ATOM 592 HZ3 LYS 36 1.629 -5.723 5.563 1.00 0.00
+ATOM 593 C LYS 36 7.633 -8.194 1.781 1.00 1.00
+ATOM 594 O LYS 36 8.790 -8.330 2.132 1.00 1.00
+ATOM 595 N ASP 37 7.055 -9.001 0.933 1.00 1.00
+ATOM 596 HN ASP 37 6.122 -8.862 0.674 1.00 0.00
+ATOM 597 CA ASP 37 7.833 -10.140 0.367 1.00 1.00
+ATOM 598 HA ASP 37 8.514 -10.513 1.128 1.00 0.00
+ATOM 599 CB ASP 37 6.847 -11.232 -0.066 1.00 1.00
+ATOM 600 HB1 ASP 37 7.389 -12.078 -0.464 1.00 0.00
+ATOM 601 HB2 ASP 37 6.184 -10.846 -0.826 1.00 0.00
+ATOM 602 CG ASP 37 6.024 -11.682 1.142 1.00 1.00
+ATOM 603 OD1 ASP 37 5.766 -10.824 1.970 1.00 1.00
+ATOM 604 OD2 ASP 37 5.698 -12.859 1.167 1.00 1.00
+ATOM 605 C ASP 37 8.645 -9.708 -0.852 1.00 1.00
+ATOM 606 O ASP 37 9.464 -10.453 -1.349 1.00 1.00
+ATOM 607 N ASP 38 8.403 -8.517 -1.308 1.00 1.00
+ATOM 608 HN ASP 38 7.733 -7.949 -0.871 1.00 0.00
+ATOM 609 CA ASP 38 9.147 -8.019 -2.491 1.00 1.00
+ATOM 610 HA ASP 38 10.142 -8.451 -2.496 1.00 0.00
+ATOM 611 CB ASP 38 8.375 -8.442 -3.751 1.00 1.00
+ATOM 612 HB1 ASP 38 8.430 -7.662 -4.496 1.00 0.00
+ATOM 613 HB2 ASP 38 7.340 -8.629 -3.503 1.00 0.00
+ATOM 614 CG ASP 38 9.001 -9.721 -4.310 1.00 1.00
+ATOM 615 OD1 ASP 38 9.649 -9.603 -5.337 1.00 1.00
+ATOM 616 OD2 ASP 38 8.799 -10.744 -3.678 1.00 1.00
+ATOM 617 C ASP 38 9.229 -6.487 -2.453 1.00 1.00
+ATOM 618 O ASP 38 8.419 -5.811 -3.057 1.00 1.00
+ATOM 619 N PRO 39 10.203 -5.957 -1.725 1.00 1.00
+ATOM 620 CA PRO 39 10.363 -4.508 -1.618 1.00 1.00
+ATOM 621 HA PRO 39 9.444 -4.085 -1.245 1.00 0.00
+ATOM 622 CB PRO 39 11.508 -4.314 -0.595 1.00 1.00
+ATOM 623 HB1 PRO 39 11.160 -3.724 0.240 1.00 0.00
+ATOM 624 HB2 PRO 39 12.343 -3.820 -1.062 1.00 0.00
+ATOM 625 CG PRO 39 11.938 -5.724 -0.102 1.00 1.00
+ATOM 626 HG1 PRO 39 11.687 -5.843 0.943 1.00 0.00
+ATOM 627 HG2 PRO 39 13.001 -5.854 -0.237 1.00 0.00
+ATOM 628 CD PRO 39 11.172 -6.751 -0.943 1.00 1.00
+ATOM 629 HD1 PRO 39 11.853 -7.268 -1.604 1.00 0.00
+ATOM 630 HD2 PRO 39 10.653 -7.455 -0.309 1.00 0.00
+ATOM 631 C PRO 39 10.745 -3.854 -2.966 1.00 1.00
+ATOM 632 O PRO 39 11.449 -2.864 -2.996 1.00 1.00
+ATOM 633 N SER 40 10.263 -4.415 -4.051 1.00 1.00
+ATOM 634 HN SER 40 9.704 -5.205 -3.989 1.00 0.00
+ATOM 635 CA SER 40 10.591 -3.842 -5.388 1.00 1.00
+ATOM 636 HA SER 40 11.574 -3.378 -5.335 1.00 0.00
+ATOM 637 CB SER 40 10.601 -4.998 -6.396 1.00 1.00
+ATOM 638 HB1 SER 40 9.602 -5.353 -6.582 1.00 0.00
+ATOM 639 HB2 SER 40 11.226 -5.804 -6.042 1.00 0.00
+ATOM 640 OG SER 40 11.150 -4.433 -7.575 1.00 1.00
+ATOM 641 HG SER 40 11.846 -3.824 -7.316 1.00 0.00
+ATOM 642 C SER 40 9.568 -2.783 -5.847 1.00 1.00
+ATOM 643 O SER 40 9.811 -1.599 -5.732 1.00 1.00
+ATOM 644 N GLN 41 8.441 -3.233 -6.365 1.00 1.00
+ATOM 645 HN GLN 41 8.282 -4.195 -6.433 1.00 0.00
+ATOM 646 CA GLN 41 7.400 -2.264 -6.840 1.00 1.00
+ATOM 647 HA GLN 41 7.890 -1.438 -7.351 1.00 0.00
+ATOM 648 CB GLN 41 6.448 -3.014 -7.790 1.00 1.00
+ATOM 649 HB1 GLN 41 5.449 -2.612 -7.694 1.00 0.00
+ATOM 650 HB2 GLN 41 6.432 -4.062 -7.531 1.00 0.00
+ATOM 651 CG GLN 41 6.931 -2.852 -9.234 1.00 1.00
+ATOM 652 HG1 GLN 41 7.016 -1.804 -9.480 1.00 0.00
+ATOM 653 HG2 GLN 41 6.228 -3.319 -9.908 1.00 0.00
+ATOM 654 CD GLN 41 8.297 -3.523 -9.389 1.00 1.00
+ATOM 655 OE1 GLN 41 9.247 -3.187 -8.710 1.00 1.00
+ATOM 656 NE2 GLN 41 8.436 -4.478 -10.268 1.00 1.00
+ATOM 657 HE21 GLN 41 7.671 -4.755 -10.816 1.00 0.00
+ATOM 658 HE22 GLN 41 9.305 -4.917 -10.382 1.00 0.00
+ATOM 659 C GLN 41 6.583 -1.714 -5.673 1.00 1.00
+ATOM 660 O GLN 41 5.580 -1.055 -5.860 1.00 1.00
+ATOM 661 N SER 42 7.040 -1.994 -4.501 1.00 1.00
+ATOM 662 HN SER 42 7.858 -2.526 -4.414 1.00 0.00
+ATOM 663 CA SER 42 6.338 -1.522 -3.281 1.00 1.00
+ATOM 664 HA SER 42 5.454 -2.122 -3.117 1.00 0.00
+ATOM 665 CB SER 42 7.308 -1.693 -2.151 1.00 1.00
+ATOM 666 HB1 SER 42 6.802 -1.908 -1.241 1.00 0.00
+ATOM 667 HB2 SER 42 7.922 -0.813 -2.046 1.00 0.00
+ATOM 668 OG SER 42 8.080 -2.803 -2.568 1.00 1.00
+ATOM 669 HG SER 42 7.806 -3.566 -2.054 1.00 0.00
+ATOM 670 C SER 42 5.951 -0.049 -3.347 1.00 1.00
+ATOM 671 O SER 42 4.928 0.351 -2.829 1.00 1.00
+ATOM 672 N ALA 43 6.780 0.736 -3.955 1.00 1.00
+ATOM 673 HN ALA 43 7.607 0.381 -4.345 1.00 0.00
+ATOM 674 CA ALA 43 6.463 2.177 -4.048 1.00 1.00
+ATOM 675 HA ALA 43 6.213 2.540 -3.063 1.00 0.00
+ATOM 676 CB ALA 43 7.701 2.889 -4.599 1.00 1.00
+ATOM 677 HB1 ALA 43 8.522 2.779 -3.902 1.00 0.00
+ATOM 678 HB2 ALA 43 7.490 3.935 -4.740 1.00 0.00
+ATOM 679 HB3 ALA 43 7.982 2.449 -5.544 1.00 0.00
+ATOM 680 C ALA 43 5.279 2.414 -4.977 1.00 1.00
+ATOM 681 O ALA 43 4.280 3.026 -4.604 1.00 1.00
+ATOM 682 N ASN 44 5.397 1.939 -6.164 1.00 1.00
+ATOM 683 HN ASN 44 6.206 1.458 -6.433 1.00 0.00
+ATOM 684 CA ASN 44 4.293 2.127 -7.101 1.00 1.00
+ATOM 685 HA ASN 44 4.146 3.194 -7.268 1.00 0.00
+ATOM 686 CB ASN 44 4.667 1.416 -8.394 1.00 1.00
+ATOM 687 HB1 ASN 44 5.384 0.638 -8.178 1.00 0.00
+ATOM 688 HB2 ASN 44 5.115 2.129 -9.076 1.00 0.00
+ATOM 689 CG ASN 44 3.418 0.806 -9.034 1.00 1.00
+ATOM 690 OD1 ASN 44 2.415 1.467 -9.221 1.00 1.00
+ATOM 691 ND2 ASN 44 3.437 -0.452 -9.384 1.00 1.00
+ATOM 692 HD21 ASN 44 4.242 -0.989 -9.236 1.00 0.00
+ATOM 693 HD22 ASN 44 2.645 -0.858 -9.795 1.00 0.00
+ATOM 694 C ASN 44 3.020 1.536 -6.497 1.00 1.00
+ATOM 695 O ASN 44 1.937 2.046 -6.700 1.00 1.00
+ATOM 696 N LEU 45 3.181 0.463 -5.752 1.00 1.00
+ATOM 697 HN LEU 45 4.069 0.070 -5.633 1.00 0.00
+ATOM 698 CA LEU 45 2.007 -0.171 -5.109 1.00 1.00
+ATOM 699 HA LEU 45 1.306 -0.513 -5.859 1.00 0.00
+ATOM 700 CB LEU 45 2.514 -1.325 -4.217 1.00 1.00
+ATOM 701 HB1 LEU 45 1.907 -1.378 -3.324 1.00 0.00
+ATOM 702 HB2 LEU 45 3.527 -1.141 -3.930 1.00 0.00
+ATOM 703 CG LEU 45 2.436 -2.667 -4.948 1.00 1.00
+ATOM 704 HG LEU 45 1.456 -3.060 -4.834 1.00 0.00
+ATOM 705 CD1 LEU 45 2.780 -2.538 -6.442 1.00 1.00
+ATOM 706 HD11 LEU 45 3.254 -3.449 -6.776 1.00 0.00
+ATOM 707 HD12 LEU 45 3.453 -1.719 -6.600 1.00 0.00
+ATOM 708 HD13 LEU 45 1.880 -2.383 -7.018 1.00 0.00
+ATOM 709 CD2 LEU 45 3.435 -3.620 -4.327 1.00 1.00
+ATOM 710 HD21 LEU 45 3.457 -3.485 -3.255 1.00 0.00
+ATOM 711 HD22 LEU 45 4.418 -3.431 -4.730 1.00 0.00
+ATOM 712 HD23 LEU 45 3.150 -4.624 -4.557 1.00 0.00
+ATOM 713 C LEU 45 1.327 0.853 -4.234 1.00 1.00
+ATOM 714 O LEU 45 0.121 0.994 -4.254 1.00 1.00
+ATOM 715 N LEU 46 2.119 1.551 -3.468 1.00 1.00
+ATOM 716 HN LEU 46 3.085 1.398 -3.470 1.00 0.00
+ATOM 717 CA LEU 46 1.562 2.567 -2.599 1.00 1.00
+ATOM 718 HA LEU 46 1.059 2.105 -1.763 1.00 0.00
+ATOM 719 CB LEU 46 2.743 3.446 -2.148 1.00 1.00
+ATOM 720 HB1 LEU 46 2.708 4.391 -2.660 1.00 0.00
+ATOM 721 HB2 LEU 46 3.666 2.952 -2.397 1.00 0.00
+ATOM 722 CG LEU 46 2.736 3.696 -0.657 1.00 1.00
+ATOM 723 HG LEU 46 3.438 4.463 -0.466 1.00 0.00
+ATOM 724 CD1 LEU 46 1.352 4.158 -0.168 1.00 1.00
+ATOM 725 HD11 LEU 46 0.687 4.303 -0.991 1.00 0.00
+ATOM 726 HD12 LEU 46 1.458 5.095 0.351 1.00 0.00
+ATOM 727 HD13 LEU 46 0.936 3.425 0.501 1.00 0.00
+ATOM 728 CD2 LEU 46 3.181 2.425 0.088 1.00 1.00
+ATOM 729 HD21 LEU 46 4.232 2.251 -0.088 1.00 0.00
+ATOM 730 HD22 LEU 46 2.629 1.573 -0.259 1.00 0.00
+ATOM 731 HD23 LEU 46 3.018 2.549 1.146 1.00 0.00
+ATOM 732 C LEU 46 0.575 3.417 -3.376 1.00 1.00
+ATOM 733 O LEU 46 -0.565 3.549 -2.995 1.00 1.00
+ATOM 734 N ALA 47 1.024 3.962 -4.463 1.00 1.00
+ATOM 735 HN ALA 47 1.958 3.806 -4.754 1.00 0.00
+ATOM 736 CA ALA 47 0.108 4.814 -5.270 1.00 1.00
+ATOM 737 HA ALA 47 -0.129 5.710 -4.702 1.00 0.00
+ATOM 738 CB ALA 47 0.819 5.175 -6.580 1.00 1.00
+ATOM 739 HB1 ALA 47 0.146 5.723 -7.221 1.00 0.00
+ATOM 740 HB2 ALA 47 1.134 4.271 -7.085 1.00 0.00
+ATOM 741 HB3 ALA 47 1.684 5.784 -6.369 1.00 0.00
+ATOM 742 C ALA 47 -1.195 4.081 -5.610 1.00 1.00
+ATOM 743 O ALA 47 -2.274 4.491 -5.211 1.00 1.00
+ATOM 744 N GLU 48 -1.065 3.010 -6.336 1.00 1.00
+ATOM 745 HN GLU 48 -0.171 2.717 -6.620 1.00 0.00
+ATOM 746 CA GLU 48 -2.269 2.225 -6.731 1.00 1.00
+ATOM 747 HA GLU 48 -2.824 2.793 -7.474 1.00 0.00
+ATOM 748 CB GLU 48 -1.789 0.896 -7.327 1.00 1.00
+ATOM 749 HB1 GLU 48 -2.639 0.297 -7.613 1.00 0.00
+ATOM 750 HB2 GLU 48 -1.205 0.359 -6.595 1.00 0.00
+ATOM 751 CG GLU 48 -0.928 1.189 -8.559 1.00 1.00
+ATOM 752 HG1 GLU 48 0.080 0.839 -8.392 1.00 0.00
+ATOM 753 HG2 GLU 48 -0.909 2.252 -8.747 1.00 0.00
+ATOM 754 CD GLU 48 -1.518 0.472 -9.774 1.00 1.00
+ATOM 755 OE1 GLU 48 -2.405 1.060 -10.373 1.00 1.00
+ATOM 756 OE2 GLU 48 -1.050 -0.624 -10.035 1.00 1.00
+ATOM 757 C GLU 48 -3.200 1.927 -5.549 1.00 1.00
+ATOM 758 O GLU 48 -4.405 1.975 -5.691 1.00 1.00
+ATOM 759 N ALA 49 -2.639 1.627 -4.408 1.00 1.00
+ATOM 760 HN ALA 49 -1.662 1.602 -4.325 1.00 0.00
+ATOM 761 CA ALA 49 -3.508 1.323 -3.231 1.00 1.00
+ATOM 762 HA ALA 49 -4.150 0.479 -3.479 1.00 0.00
+ATOM 763 CB ALA 49 -2.617 0.987 -2.033 1.00 1.00
+ATOM 764 HB1 ALA 49 -3.234 0.724 -1.185 1.00 0.00
+ATOM 765 HB2 ALA 49 -2.014 1.843 -1.777 1.00 0.00
+ATOM 766 HB3 ALA 49 -1.975 0.156 -2.278 1.00 0.00
+ATOM 767 C ALA 49 -4.384 2.510 -2.856 1.00 1.00
+ATOM 768 O ALA 49 -5.597 2.414 -2.863 1.00 1.00
+ATOM 769 N LYS 50 -3.755 3.606 -2.524 1.00 1.00
+ATOM 770 HN LYS 50 -2.778 3.636 -2.532 1.00 0.00
+ATOM 771 CA LYS 50 -4.544 4.805 -2.143 1.00 1.00
+ATOM 772 HA LYS 50 -4.956 4.650 -1.150 1.00 0.00
+ATOM 773 CB LYS 50 -3.631 6.049 -2.178 1.00 1.00
+ATOM 774 HB1 LYS 50 -4.163 6.900 -1.774 1.00 0.00
+ATOM 775 HB2 LYS 50 -3.358 6.263 -3.200 1.00 0.00
+ATOM 776 CG LYS 50 -2.353 5.794 -1.350 1.00 1.00
+ATOM 777 HG1 LYS 50 -1.650 6.595 -1.525 1.00 0.00
+ATOM 778 HG2 LYS 50 -1.905 4.871 -1.652 1.00 0.00
+ATOM 779 CD LYS 50 -2.689 5.732 0.149 1.00 1.00
+ATOM 780 HD1 LYS 50 -3.732 5.949 0.304 1.00 0.00
+ATOM 781 HD2 LYS 50 -2.096 6.463 0.679 1.00 0.00
+ATOM 782 CE LYS 50 -2.366 4.327 0.688 1.00 1.00
+ATOM 783 HE1 LYS 50 -1.293 4.172 0.687 1.00 0.00
+ATOM 784 HE2 LYS 50 -2.828 3.574 0.062 1.00 0.00
+ATOM 785 NZ LYS 50 -2.881 4.181 2.080 1.00 1.00
+ATOM 786 HZ1 LYS 50 -3.219 5.103 2.422 1.00 0.00
+ATOM 787 HZ2 LYS 50 -2.119 3.839 2.698 1.00 0.00
+ATOM 788 HZ3 LYS 50 -3.667 3.499 2.089 1.00 0.00
+ATOM 789 C LYS 50 -5.695 5.004 -3.118 1.00 1.00
+ATOM 790 O LYS 50 -6.754 5.465 -2.745 1.00 1.00
+ATOM 791 N LYS 51 -5.464 4.655 -4.355 1.00 1.00
+ATOM 792 HN LYS 51 -4.580 4.303 -4.618 1.00 0.00
+ATOM 793 CA LYS 51 -6.543 4.809 -5.365 1.00 1.00
+ATOM 794 HA LYS 51 -6.954 5.815 -5.303 1.00 0.00
+ATOM 795 CB LYS 51 -5.946 4.533 -6.753 1.00 1.00
+ATOM 796 HB1 LYS 51 -6.390 3.640 -7.166 1.00 0.00
+ATOM 797 HB2 LYS 51 -4.881 4.388 -6.665 1.00 0.00
+ATOM 798 CG LYS 51 -6.229 5.721 -7.676 1.00 1.00
+ATOM 799 HG1 LYS 51 -5.805 6.620 -7.254 1.00 0.00
+ATOM 800 HG2 LYS 51 -7.296 5.850 -7.789 1.00 0.00
+ATOM 801 CD LYS 51 -5.596 5.446 -9.041 1.00 1.00
+ATOM 802 HD1 LYS 51 -6.033 4.556 -9.470 1.00 0.00
+ATOM 803 HD2 LYS 51 -4.532 5.298 -8.924 1.00 0.00
+ATOM 804 CE LYS 51 -5.851 6.638 -9.964 1.00 1.00
+ATOM 805 HE1 LYS 51 -4.909 7.037 -10.309 1.00 0.00
+ATOM 806 HE2 LYS 51 -6.384 7.407 -9.424 1.00 0.00
+ATOM 807 NZ LYS 51 -6.661 6.219 -11.139 1.00 1.00
+ATOM 808 HZ1 LYS 51 -6.416 5.242 -11.396 1.00 0.00
+ATOM 809 HZ2 LYS 51 -6.459 6.850 -11.941 1.00 0.00
+ATOM 810 HZ3 LYS 51 -7.671 6.272 -10.900 1.00 0.00
+ATOM 811 C LYS 51 -7.652 3.792 -5.100 1.00 1.00
+ATOM 812 O LYS 51 -8.821 4.132 -5.032 1.00 1.00
+ATOM 813 N LEU 52 -7.253 2.556 -4.952 1.00 1.00
+ATOM 814 HN LEU 52 -6.300 2.337 -5.015 1.00 0.00
+ATOM 815 CA LEU 52 -8.245 1.486 -4.688 1.00 1.00
+ATOM 816 HA LEU 52 -8.926 1.426 -5.534 1.00 0.00
+ATOM 817 CB LEU 52 -7.458 0.152 -4.521 1.00 1.00
+ATOM 818 HB1 LEU 52 -6.648 0.296 -3.820 1.00 0.00
+ATOM 819 HB2 LEU 52 -7.042 -0.125 -5.478 1.00 0.00
+ATOM 820 CG LEU 52 -8.393 -0.974 -4.012 1.00 1.00
+ATOM 821 HG LEU 52 -9.417 -0.734 -4.251 1.00 0.00
+ATOM 822 CD1 LEU 52 -8.023 -2.330 -4.646 1.00 1.00
+ATOM 823 HD11 LEU 52 -6.999 -2.326 -4.968 1.00 0.00
+ATOM 824 HD12 LEU 52 -8.659 -2.523 -5.489 1.00 0.00
+ATOM 825 HD13 LEU 52 -8.159 -3.121 -3.915 1.00 0.00
+ATOM 826 CD2 LEU 52 -8.234 -1.108 -2.506 1.00 1.00
+ATOM 827 HD21 LEU 52 -8.095 -0.144 -2.066 1.00 0.00
+ATOM 828 HD22 LEU 52 -7.379 -1.722 -2.276 1.00 0.00
+ATOM 829 HD23 LEU 52 -9.111 -1.564 -2.090 1.00 0.00
+ATOM 830 C LEU 52 -9.054 1.810 -3.419 1.00 1.00
+ATOM 831 O LEU 52 -10.074 1.207 -3.158 1.00 1.00
+ATOM 832 N ASN 53 -8.586 2.777 -2.660 1.00 1.00
+ATOM 833 HN ASN 53 -7.765 3.252 -2.910 1.00 0.00
+ATOM 834 CA ASN 53 -9.311 3.156 -1.416 1.00 1.00
+ATOM 835 HA ASN 53 -9.507 2.270 -0.834 1.00 0.00
+ATOM 836 CB ASN 53 -8.430 4.141 -0.638 1.00 1.00
+ATOM 837 HB1 ASN 53 -8.428 5.071 -1.145 1.00 0.00
+ATOM 838 HB2 ASN 53 -7.421 3.763 -0.576 1.00 0.00
+ATOM 839 CG ASN 53 -8.983 4.347 0.773 1.00 1.00
+ATOM 840 OD1 ASN 53 -8.478 5.138 1.544 1.00 1.00
+ATOM 841 ND2 ASN 53 -10.016 3.669 1.138 1.00 1.00
+ATOM 842 HD21 ASN 53 -10.420 3.052 0.511 1.00 0.00
+ATOM 843 HD22 ASN 53 -10.387 3.771 2.050 1.00 0.00
+ATOM 844 C ASN 53 -10.633 3.843 -1.749 1.00 1.00
+ATOM 845 O ASN 53 -11.694 3.342 -1.435 1.00 1.00
+ATOM 846 N ASP 54 -10.540 4.982 -2.381 1.00 1.00
+ATOM 847 HN ASP 54 -9.661 5.347 -2.612 1.00 0.00
+ATOM 848 CA ASP 54 -11.774 5.722 -2.745 1.00 1.00
+ATOM 849 HA ASP 54 -12.307 5.994 -1.837 1.00 0.00
+ATOM 850 CB ASP 54 -11.367 6.975 -3.535 1.00 1.00
+ATOM 851 HB1 ASP 54 -11.139 6.704 -4.555 1.00 0.00
+ATOM 852 HB2 ASP 54 -10.495 7.425 -3.083 1.00 0.00
+ATOM 853 CG ASP 54 -12.520 7.983 -3.525 1.00 1.00
+ATOM 854 OD1 ASP 54 -13.609 7.563 -3.879 1.00 1.00
+ATOM 855 OD2 ASP 54 -12.244 9.117 -3.168 1.00 1.00
+ATOM 856 C ASP 54 -12.684 4.872 -3.621 1.00 1.00
+ATOM 857 O ASP 54 -13.892 4.925 -3.501 1.00 1.00
+ATOM 858 N ALA 55 -12.089 4.098 -4.486 1.00 1.00
+ATOM 859 HN ALA 55 -11.108 4.081 -4.545 1.00 0.00
+ATOM 860 CA ALA 55 -12.910 3.242 -5.380 1.00 1.00
+ATOM 861 HA ALA 55 -13.466 3.881 -6.064 1.00 0.00
+ATOM 862 CB ALA 55 -11.969 2.312 -6.155 1.00 1.00
+ATOM 863 HB1 ALA 55 -10.947 2.520 -5.883 1.00 0.00
+ATOM 864 HB2 ALA 55 -12.092 2.471 -7.217 1.00 0.00
+ATOM 865 HB3 ALA 55 -12.196 1.282 -5.921 1.00 0.00
+ATOM 866 C ALA 55 -13.902 2.394 -4.583 1.00 1.00
+ATOM 867 O ALA 55 -14.737 1.720 -5.153 1.00 1.00
+END
--- /dev/null
+Test of cartesian gradient - 1bdd - pdbstart unres_pdb
+SEED=-3059743 pdbstart pdbref refstr rescale_mode=2 unres_pdb checkgrad cart
+WLONG=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
+prota_unres.pdb
+ 0
+ 0
+0 0 0 0
+300.0
--- /dev/null
+Test energii - 1bdd - pdbstart unres_pdb
+SEED=-3059743 energy pdbstart pdbref refstr rescale_mode=2 unres_pdb energy_dec
+WLONG=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
+prota_unres.pdb
+ 0
+ 0
--- /dev/null
+Test minimize cart - 1bdd - pdbstart
+SEED=-3059743 minimize pdbstart pdbref refstr rescale_mode=2 cart overlap &
+nosearchsc
+print_min_ini print_min_res print_min_stat MAXMIN=10000 MAXFUN=15000
+WLONG=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
+prota.pdb
+ 0
+ 0
--- /dev/null
+REMARK Test minimize cart - 1bdd - pdbs ENERGY -1.23871E+02
+HELIX 1 H1 GLN 2 LEU 11 1 9
+HELIX 2 H2 GLU 16 LEU 26 1 10
+HELIX 3 H3 PRO 30 ALA 46 1 16
+ATOM 1 CA GLN 1 -2.757 -0.811 2.840 0.000
+ATOM 2 CB GLN 1 -4.938 -0.116 1.268 0.000
+ATOM 3 CA GLN 2 -3.672 -4.127 4.398 0.000
+ATOM 4 CB GLN 2 -3.118 -5.783 6.077 0.000
+ATOM 5 CA ASN 3 -5.224 -2.011 7.157 0.000
+ATOM 6 CB ASN 3 -3.573 -1.485 8.167 0.000
+ATOM 7 CA ALA 4 -7.798 -1.156 4.451 0.000
+ATOM 8 CB ALA 4 -7.966 -0.552 3.998 0.000
+ATOM 9 CA PHE 5 -8.434 -4.919 4.503 0.000
+ATOM 10 CB PHE 5 -7.114 -7.496 5.252 0.000
+ATOM 11 CA TYR 6 -9.555 -4.313 8.094 0.000
+ATOM 12 CB TYR 6 -6.376 -4.738 9.070 0.000
+ATOM 13 CA GLU 7 -11.875 -1.672 6.594 0.000
+ATOM 14 CB GLU 7 -10.073 0.393 7.073 0.000
+ATOM 15 CA ILE 8 -13.162 -4.508 4.374 0.000
+ATOM 16 CB ILE 8 -12.113 -5.539 3.161 0.000
+ATOM 17 CA LEU 9 -13.802 -6.405 7.659 0.000
+ATOM 18 CB LEU 9 -11.933 -7.308 7.924 0.000
+ATOM 19 CA HIS 10 -15.869 -3.341 8.632 0.000
+ATOM 20 CB HIS 10 -13.244 -2.769 9.123 0.000
+ATOM 21 CA LEU 11 -17.718 -3.337 5.287 0.000
+ATOM 22 CB LEU 11 -17.456 -2.679 3.322 0.000
+ATOM 23 CA PRO 12 -21.055 -4.502 6.738 0.000
+ATOM 24 CB PRO 12 -20.685 -3.550 7.726 0.000
+ATOM 25 CA ASN 13 -22.947 -4.677 3.496 0.000
+ATOM 26 CB ASN 13 -21.970 -3.646 2.074 0.000
+ATOM 27 CA LEU 14 -20.634 -7.368 2.045 0.000
+ATOM 28 CB LEU 14 -18.630 -6.942 1.655 0.000
+ATOM 29 CA ASN 15 -20.130 -11.001 1.119 0.000
+ATOM 30 CB ASN 15 -19.730 -10.565 -0.801 0.000
+ATOM 31 CA GLU 16 -17.855 -11.450 4.182 0.000
+ATOM 32 CB GLU 16 -16.688 -10.491 6.521 0.000
+ATOM 33 CA GLU 17 -16.954 -14.795 2.630 0.000
+ATOM 34 CB GLU 17 -18.975 -16.364 3.726 0.000
+ATOM 35 CA GLN 18 -15.845 -12.775 -0.418 0.000
+ATOM 36 CB GLN 18 -16.198 -11.302 -2.745 0.000
+ATOM 37 CA ARG 19 -13.707 -10.645 1.912 0.000
+ATOM 38 CB ARG 19 -15.119 -8.314 3.987 0.000
+ATOM 39 CA ASN 20 -12.261 -13.936 3.187 0.000
+ATOM 40 CB ASN 20 -12.897 -13.941 5.089 0.000
+ATOM 41 CA GLY 21 -11.084 -14.918 -0.267 0.000
+ATOM 42 CA PHE 22 -10.446 -11.372 -1.466 0.000
+ATOM 43 CB PHE 22 -12.583 -9.276 -1.315 0.000
+ATOM 44 CA ILE 23 -8.243 -11.084 1.611 0.000
+ATOM 45 CB ILE 23 -9.604 -10.692 2.886 0.000
+ATOM 46 CA GLN 24 -6.410 -14.155 0.283 0.000
+ATOM 47 CB GLN 24 -8.022 -15.580 2.036 0.000
+ATOM 48 CA SER 25 -5.965 -12.064 -2.894 0.000
+ATOM 49 CB SER 25 -7.160 -11.909 -3.403 0.000
+ATOM 50 CA LEU 26 -4.070 -9.853 -0.369 0.000
+ATOM 51 CB LEU 26 -3.553 -9.208 1.538 0.000
+ATOM 52 CA LYS 27 -1.338 -12.410 -1.187 0.000
+ATOM 53 CB LYS 27 -2.318 -13.974 0.786 0.000
+ATOM 54 CA ASP 28 -1.412 -10.739 -4.654 0.000
+ATOM 55 CB ASP 28 -3.316 -10.054 -4.446 0.000
+ATOM 56 CA ASP 29 1.177 -8.185 -3.533 0.000
+ATOM 57 CB ASP 29 1.379 -6.549 -4.715 0.000
+ATOM 58 CA PRO 30 -0.357 -6.263 -0.625 0.000
+ATOM 59 CB PRO 30 0.694 -6.876 0.110 0.000
+ATOM 60 CA SER 31 -0.779 -3.493 -3.108 0.000
+ATOM 61 CB SER 31 0.299 -2.876 -3.518 0.000
+ATOM 62 CA GLN 32 -3.248 -5.830 -4.871 0.000
+ATOM 63 CB GLN 32 -2.195 -6.000 -7.433 0.000
+ATOM 64 CA SER 33 -5.010 -5.848 -1.449 0.000
+ATOM 65 CB SER 33 -4.173 -5.416 -0.535 0.000
+ATOM 66 CA ALA 34 -5.440 -2.120 -2.127 0.000
+ATOM 67 CB ALA 34 -4.771 -1.975 -2.500 0.000
+ATOM 68 CA ASN 35 -7.302 -3.137 -5.274 0.000
+ATOM 69 CB ASN 35 -6.482 -4.758 -6.122 0.000
+ATOM 70 CA LEU 36 -9.300 -5.644 -3.251 0.000
+ATOM 71 CB LEU 36 -8.257 -7.227 -2.387 0.000
+ATOM 72 CA LEU 37 -10.006 -2.852 -0.765 0.000
+ATOM 73 CB LEU 37 -8.426 -3.302 0.516 0.000
+ATOM 74 CA ALA 38 -11.324 -0.910 -3.738 0.000
+ATOM 75 CB ALA 38 -10.853 -1.141 -4.313 0.000
+ATOM 76 CA GLU 39 -13.570 -3.901 -4.429 0.000
+ATOM 77 CB GLU 39 -12.782 -6.155 -4.844 0.000
+ATOM 78 CA ALA 40 -14.677 -3.725 -0.801 0.000
+ATOM 79 CB ALA 40 -14.043 -3.547 -0.389 0.000
+ATOM 80 CA LYS 41 -15.353 -0.016 -1.314 0.000
+ATOM 81 CB LYS 41 -12.486 0.776 -0.531 0.000
+ATOM 82 CA LYS 42 -17.370 -1.016 -4.416 0.000
+ATOM 83 CB LYS 42 -14.988 -1.973 -6.108 0.000
+ATOM 84 CA LEU 43 -19.163 -3.419 -2.048 0.000
+ATOM 85 CB LEU 43 -18.377 -5.240 -2.683 0.000
+ATOM 86 CA ASN 44 -20.078 -0.235 -0.109 0.000
+ATOM 87 CB ASN 44 -20.126 0.754 1.635 0.000
+ATOM 88 CA ASP 45 -22.053 0.637 -3.278 0.000
+ATOM 89 CB ASP 45 -22.695 1.661 -4.907 0.000
+ATOM 90 CA ALA 46 -24.070 -2.579 -2.844 0.000
+ATOM 91 CB ALA 46 -23.537 -2.984 -2.444 0.000
+TER
+CONECT 1 3 2
+CONECT 3 5 4
+CONECT 5 7 6
+CONECT 7 9 8
+CONECT 9 11 10
+CONECT 11 13 12
+CONECT 13 15 14
+CONECT 15 17 16
+CONECT 17 19 18
+CONECT 19 21 20
+CONECT 21 23 22
+CONECT 23 25 24
+CONECT 25 27 26
+CONECT 27 29 28
+CONECT 29 31 30
+CONECT 31 33 32
+CONECT 33 35 34
+CONECT 35 37 36
+CONECT 37 39 38
+CONECT 39 41 40
+CONECT 41 42
+CONECT 42 44 43
+CONECT 44 46 45
+CONECT 46 48 47
+CONECT 48 50 49
+CONECT 50 52 51
+CONECT 52 54 53
+CONECT 54 56 55
+CONECT 56 58 57
+CONECT 58 60 59
+CONECT 60 62 61
+CONECT 62 64 63
+CONECT 64 66 65
+CONECT 66 68 67
+CONECT 68 70 69
+CONECT 70 72 71
+CONECT 72 74 73
+CONECT 74 76 75
+CONECT 76 78 77
+CONECT 78 80 79
+CONECT 80 82 81
+CONECT 82 84 83
+CONECT 84 86 85
+CONECT 86 88 87
+CONECT 88 90 89
+CONECT 90 91
+ENDMDL
--- /dev/null
+#!/bin/bash
+#
+# Writen by Dawid Jagieła and Adam Sieradzan
+# and Cezary Czaplewski
+#
+#
+#----------------------------------------
+# variables
+
+if [[ "$2" =~ "MPI" ]]; then
+ file=$1.out_GB000
+ file_stat=$1_GB000.stat
+else
+ file=$1.out_GB # Output file to search energy value from
+ file_stat=$1_GB.stat
+fi
+
+if [ "$1" == "prota_ENE" ]; then
+ extremediff="10000.0" # extreme energy difference, comething went terribly wrong
+ expectenergy="145.1742" # - expected total energy
+ cutoffdiff="0.01" # energy cutoff variation - more then this rises warning
+elif [ "$1" == "prota_MIN_CART" ]; then
+ extremediff="10.0" # extreme energy difference, comething went terribly wrong
+ expectenergy="154.9622" # - expected total energy
+ cutoffdiff="0.1" # energy cutoff variation - more then this rises warning
+
+ sumsl_return=`grep SUMSL $file|awk '{print $4}'`
+ echo 'SUMSL return code' $sumsl_return
+ if [ "$sumsl_return" != "4" ]; then
+ echo 'ERROR = SUMSL return code' $sumsl_return 'is not 4'
+ exit 1
+ fi
+elif [ "$1" == "1l2y_MIN_INT" ]; then
+ extremediff="10.0" # extreme energy difference, comething went terribly wrong
+ expectenergy="-47.88137" # expected total energy
+ cutoffdiff="0.1" # energy cutoff variation - more then this rises warning
+
+ sumsl_return=`grep SUMSL $file|awk '{print $4}'`
+ echo 'SUMSL return code' $sumsl_return
+ if [ "$sumsl_return" != "4" ]; then
+ echo 'ERROR = SUMSL return code' $sumsl_return 'is not 4'
+ exit 1
+ fi
+elif [ "$1" == "1l2y_MIN_REGULAR_INT" ]; then
+ extremediff="10.0" # extreme energy difference, comething went terribly wrong
+ expectenergy="5.258893" # expected total energy
+#
+# something wrong with REGULAR and sometimes gives code 8 and different energy
+# for now 8 is only warning and cutoffdiff is large
+#
+ cutoffdiff="6.0" # energy cutoff variation - more then this rises warning
+
+ sumsl_return=`grep "SUMSL return code:" $file|awk '{print $4}'`
+ echo 'SUMSL return code' $sumsl_return
+ if [ "$sumsl_return" != "4" ]; then
+ echo 'WARNING = SUMSL return code' $sumsl_return 'is not 4'
+ fi
+
+elif [ "$1" == "1l2y_micro" ]; then
+ refe="74.2623"
+ stat=`awk '{if ( $1 != "#" ) {n++;a=a+$5;a2=a2+$5^2}}END{print a/n,sqrt((a2-a^2/n)/n)}' $file_stat`
+ array=(${stat// / })
+ echo 'average total energy ' ${array[0]}
+ echo 'standard deviation ' ${array[1]}
+ if [ `echo "a=${array[0]}-${refe};if(0>a)a*=-1;a>5.0"|bc -l` != "0" ]; then
+ echo 'difference ' `echo "a=${array[0]}-${refe};if(0>a)a*=-1;a"|bc -l` "from reference ave etot ${refe} greater than 5.0"
+ exit 1
+ elif [ `echo "a=${array[1]};a>0.15"|bc -l` != "0" ]; then
+ echo 'standard deviation greater than 0.15'
+ exit 1
+ else
+ exit 0
+ fi
+elif [ "$1" == "1L2Y_L" ] || [ "$1" == "1L2Y_NH" ]; then
+ if [ ! -s $file_stat ]; then
+ echo 'FATAL error - stat file empty'
+ exit 2
+ fi
+ chi2=`./matplotlib_fit_hist.py $file_stat 111`
+ echo 'Chi2 for fitting theoretical temperature distribution ' ${chi2}
+ echo "<DartMeasurementFile name=\"Temperature distribution $1\" type=\"image/png\">`pwd`/${file_stat}.png</DartMeasurementFile>"
+
+ if [ `echo "a=${chi2};a>0.001"|bc -l` != "0" ]; then
+ echo 'chi2 greater than 0.001'
+ exit 1
+ else
+ exit 0
+ fi
+elif [ "$1" == "1L2Y_B" ]; then
+ if [ ! -s $file_stat ]; then
+ echo 'FATAL error - stat file empty'
+ exit 2
+ fi
+ chi2=`./matplotlib_fit_hist.py $file_stat 111`
+ echo 'Chi2 for fitting theoretical temperature distribution ' ${chi2}
+ echo "<DartMeasurementFile name=\"Temperature distribution $1\" type=\"image/png\">`pwd`/${file_stat}.png</DartMeasurementFile>"
+
+ if [ `echo "a=${chi2};a>0.01"|bc -l` != "0" ]; then
+ echo 'chi2 greater than 0.01'
+ exit 1
+ else
+ exit 0
+ fi
+
+
+elif [ "$1" == "1L2Y_remd" ]; then
+ rm -rf remd_all.stat
+ tail -q -n +1000 1L2Y_remd*.stat >remd_all.stat
+ if [ ! -s remd_all.stat ]; then
+ echo 'FATAL error - stat files empty'
+ exit 2
+ fi
+ ./matplotlib_hist.py
+
+ echo "<DartMeasurementFile name=\"Histograms $1\" type=\"image/png\">`pwd`/1L2Y_remd_ene_hist.png</DartMeasurementFile>"
+ echo "<DartMeasurementFile name=\"Energy $1\" type=\"image/png\">`pwd`/1L2Y_remd_Tene.png</DartMeasurementFile>"
+ grep ACC 1L2Y_remd.out_GB000 |tail -7
+ exchange=`grep ACC 1L2Y_remd.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
+
+elif [ "$1" == "1DKZcut-ber" ]; then
+ chi2=`./matplotlib_fit_hist.py $file_stat 519`
+ echo 'Chi2 for fitting theoretical temperature distribution ' ${chi2}
+ echo "<DartMeasurementFile name=\"Temperature distribution $1\" type=\"image/png\">`pwd`/${file_stat}.png</DartMeasurementFile>"
+
+ if [ `echo "a=${chi2};a>0.01"|bc -l` != "0" ]; then
+ echo 'chi2 greater than 0.01'
+ exit 1
+ else
+ exit 0
+ fi
+
+elif [ "$1" == "1DKZcut-lang" ]; then
+ chi2=`./matplotlib_fit_hist.py $file_stat 519`
+ echo 'Chi2 for fitting theoretical temperature distribution ' ${chi2}
+ echo "<DartMeasurementFile name=\"Temperature distribution $1\" type=\"image/png\">`pwd`/${file_stat}.png</DartMeasurementFile>"
+
+ if [ `echo "a=${chi2};a>0.001"|bc -l` != "0" ]; then
+ echo 'chi2 greater than 0.001'
+ exit 1
+ else
+ exit 0
+ fi
+
+elif [ "$1" == "1DKZcut-min" ]; then
+ extremediff="10.0" # extreme energy difference, comething went terribly wrong
+ expectenergy="332.1213" # - expected total energy
+ cutoffdiff="3.0" # energy cutoff variation - more then this rises warning
+
+ sumsl_return=`grep SUMSL $file|awk '{print $4}'`
+ echo 'SUMSL return code' $sumsl_return
+ if [ "$sumsl_return" != "4" ]; then
+ echo 'ERROR = SUMSL return code' $sumsl_return 'is not 4'
+ echo 'but not failing this test, it is known problem with esccor'
+# exit 1
+ fi
+
+elif [ "$1" == "1DKZcut-ene" ]; then
+ extremediff="10000.0" # extreme energy difference, comething went terribly wrong
+ expectenergy="-452.4430" # - expected total energy
+ cutoffdiff="0.01" # energy cutoff variation - more then this rises warning
+
+elif [ "$1" == "1DKZcut-micro" ]; then
+ refe="-173.573"
+ stat=`awk '{if ( $1 != "#" ) {n++;a=a+$5;a2=a2+$5^2}}END{print a/n,sqrt((a2-a^2/n)/n)}' $file_stat`
+ array=(${stat// / })
+ echo 'average total energy ' ${array[0]}
+ echo 'standard deviation ' ${array[1]}
+ if [ `echo "a=${array[0]}-(${refe});if(0>a)a*=-1;a>5.0"|bc -l` != "0" ]; then
+ echo 'difference ' `echo "a=${array[0]}-${refe};if(0>a)a*=-1;a"|bc -l` "from reference ave etot ${refe} greater than 5.0"
+ exit 1
+ elif [ `echo "a=${array[1]};a>0.005"|bc -l` != "0" ]; then
+ echo 'standard deviation greater than 0.005'
+ exit 1
+ else
+ exit 0
+ fi
+
+elif [ "$1" == "1ei0_min" ]; then
+ extremediff="10.0" # extreme energy difference, comething went terribly wrong
+ expectenergy="151.3218" # - expected total energy
+ cutoffdiff="6.0" # energy cutoff variation - more then this rises warning
+
+ refe="134.8382"
+ startene=`grep ETOT $file|head -1| awk '{print $2*1.0}'`
+ echo "initial energy=${startene} reference=${refe}"
+ if [ `echo "a=${startene}-(${refe});if(0>a)a*=-1;a>0.01"|bc -l` != "0" ]; then
+ echo 'difference ' `echo "a=${startene}-${refe};if(0>a)a*=-1;a"|bc -l` "from reference etot ${refe} greater than 0.01"
+ exit 1
+ fi
+
+ sumsl_return=`grep SUMSL $file|awk '{print $4}'`
+ echo 'SUMSL return code' $sumsl_return
+ if [ "$sumsl_return" != "4" ]; then
+ echo 'ERROR = SUMSL return code' $sumsl_return 'is not 4'
+ echo 'but not failing this test, it is known problem with dissulfides'
+# exit 1
+ fi
+
+elif [ "$1" == "prota_CHECKGRAD" ] || [ "$1" == "1DKZcut-checkgrad" ]; then
+ diff=`gawk -f checkgrad.awk $file |grep 'Largest abs(1-numerical/analytical)='|awk '{printf "%15.10f",$3}'`
+ gawk -f checkgrad.awk $file
+
+ if [ `echo "a=${diff};a>0.0002"|bc -l` != "0" ]; then
+ echo 'ERROR largest abs(numerical/analytical)' ${diff}
+ echo ' greater than 0.0002'
+ exit 1
+ else
+ exit 0
+ fi
+
+
+else
+ exit 1
+fi
+
+
+
+function floating(){
+ echo $1 | sed -e 's/[eE]+/*10^/'
+}
+
+#---------------------------------------------------------------------------
+# MAIN CODE
+#---------------------------------------------------------------------------
+
+# Check if file exist
+if [ ! -f $file ]; then
+ echo "CRITICAL: out file do not exist"
+ exit 2
+fi
+
+# Check if energy value is not a number
+grepene=`grep ETOT $file|tail -1| awk '{print $2}'`
+if [[ $grepene == "NaN" ]]; then
+ echo "CRITICAL: energy is NaN"
+ exit 2
+fi
+
+# Check if energy value is extremely different from expected
+blaene=`floating $grepene`
+myene=`echo $blaene |bc`
+diff=`echo $myene"+("$expectenergy")"|bc`
+absdiff=`echo $diff| sed 's/-//'`
+
+true1=`echo "$absdiff >= $extremediff"|bc`
+if [ $true1 -eq 1 ]; then
+ echo "CRITICAL: energy is loo large $absdiff, ene= $myene"
+ exit 2
+fi
+
+# Check if Energy value is as expected
+true2=`echo "$absdiff<=$cutoffdiff"|bc`
+if [ $true2 -eq 1 ]; then
+ echo "OK: absdiff= $absdiff, ene= $myene"
+ exit 0
+else
+ echo "WARNING: energy is somewhat different $absdiff, ene= $myene"
+ exit 1
+fi
+
--- /dev/null
+#!/bin/bash
+
+if [ "$1" == "1L2Y_wham" ]; then
+ file=1L2Y_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<260) {a=a+$5;n++}}END{print a/n}' $file`
+echo 'average rms for T<260 ' $rms
+
+ if [ `grep differs 1L2Y_wham.out* |wc -l` != "0" ]; then
+ echo 'ERROR: energy differs remarkably from the value read in'
+ echo 'first 10 warnings'
+ grep differs 1L2Y_wham.out*|head -10
+ error=1
+ fi
+
+ if [ `echo "a=$max-316;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-3.0;if(0>a)a*=-1;a>0.2"|bc -l` != "0" ]; then
+ echo 'ERROR wrong average rms for T<260 by more than 0.2'
+ error=1
+ fi
+
+ if [ "$error" != "0" ];then
+ exit 1
+ fi
+
\ No newline at end of file
#=========================================
install(TARGETS UNRES_CLUSTER_BIN DESTINATION ${CMAKE_INSTALL_PREFIX}/cluster)
+
+#=========================================
+# TESTS
+#=========================================
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/cluster_int.sh
+"#!/bin/sh
+export INPUT=$1
+export INTIN=1l2y_csa_GB000
+export OUTPUT=1l2y_csa_GB000
+#-----------------------------------------------------------------------------
+CLUSTER_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_CLUSTER_BIN}
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+$CLUSTER_BIN
+./cluster_check.sh $1
+")
+
+#
+# File permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/cluster_int.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/cluster_check.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_clust_int.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_GB000.int
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
+add_test(NAME CLUSTER_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/cluster_int.sh 1l2y_clust_int )
write (igeom,200) (rad2deg*omeg(i),i=2,nres-1)
c endif
close(igeom)
- 180 format (I5,F12.3,I2,8(1X,2I3,$))
+ 180 format (I5,2F12.3,I2,8(1X,2I3,$))
190 format (3X,11(1X,2I3,$))
200 format (8F10.4)
return
# Set comipiler flags for different sourcefiles
#================================================
if (Fortran_COMPILER_NAME STREQUAL "ifort")
- set(FFLAGS0 "-ip -w -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+ set(FFLAGS0 "-mcmodel=medium -shared-intel -ip -w -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " )
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
- set(FFLAGS0 "-std=legacy -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+ set(FFLAGS0 "-std=legacy -mcmodel=medium -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " )
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(FFLAGS0 "-mcmodel=medium -Mlarge_arrays -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
else ()
- set(FFLAGS0 "-I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+ set(FFLAGS0 "-mcmodel=medium -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " )
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
#=========================================
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
# Add old gfortran flags
set(CPPFLAGS "${CPPFLAGS} -DG77")
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(CPPFLAGS "${CPPFLAGS} -DPGI")
+ FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+ list(APPEND UNRES_CLUSTER_WHAM_M_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
#=========================================
install(TARGETS UNRES_CLUSTER_WHAM_M_BIN DESTINATION ${CMAKE_INSTALL_PREFIX}/cluster)
+
+#=========================================
+# 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(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/cluster_wham_mpi_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export INPUT=$1
+export INTIN=1L2Y_wham
+export OUTPUT=1L2Y_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.parm
+export THETPAR=$DD/theta_abinitio.parm
+export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/scinter_$POT.parm
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export THETPARPDB=$DD/thetaml.5parm
+export ROTPARPDB=$DD/scgauss.parm
+export PATTERN=$DD/patterns.cart
+export CONTFUNC=GB
+export SIDEP=$DD/contact.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
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/cluster_wham_check.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_clust.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_wham.cx
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
+if(UNRES_MD_FF STREQUAL "E0LL2Y")
+ add_test(NAME CLUSTER_WHAM_M_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/cluster_wham_mpi_E0LL2Y.sh 1L2Y_clust 2 )
+endif(UNRES_MD_FF STREQUAL "E0LL2Y")
real*4 diss,allcart
double precision enetb,entfac,totfree,energy,rmstb
integer ncut,ngr,licz,nconf,iass,icc,mult,list_conf,
- & nss_all,ihpb_all,jhpb_all,iass_tot,iscore,nprop
+ & nss_all,ihpb_all,jhpb_all,iass_tot,iscore,nprop,nclust
common /clu/ diss(maxdist),energy(0:maxconf),
& enetb(max_ene,maxstr_proc),ecut,
& entfac(maxconf),totfree(0:maxconf),totfree_gr(maxgr),
- & rcutoff(max_cut+1),ncut,min_var,tree,plot_tree,lgrp
+ & rcutoff(max_cut+1),ncut,nclust,min_var,tree,plot_tree,lgrp
common /clu1/ ngr,licz(maxgr),nconf(maxgr,maxingr),iass(maxgr),
& iass_tot(maxgr,max_cut),list_conf(maxconf)
common /alles/ allcart(3,maxres2,maxstr_proc),rmstb(maxconf),
********************************************************************************
C Max. number of processors.
integer maxprocs
- parameter (maxprocs=16)
+ parameter (maxprocs=24)
C Max. number of AA residues
integer maxres,maxres2
- parameter (maxres=650)
+ parameter (maxres=1140)
C Appr. max. number of interaction sites
parameter (maxres2=2*maxres)
C Max. number of variables
+++ /dev/null
-C
-C Program to cluster united-residue MCM results.
-C
- implicit none
- include 'DIMENSIONS'
- include 'sizesclu.dat'
-#ifdef MPI
- include "mpif.h"
- integer IERROR,ERRCODE,STATUS(MPI_STATUS_SIZE)
- include "COMMON.MPI"
-#endif
- include 'COMMON.TIME1'
- include 'COMMON.INTERACT'
- include 'COMMON.NAMES'
- include 'COMMON.GEO'
- include 'COMMON.HEADER'
- include 'COMMON.CONTROL'
- include 'COMMON.CHAIN'
- include 'COMMON.VAR'
- include 'COMMON.CLUSTER'
- include 'COMMON.IOUNITS'
- include 'COMMON.FREE'
- logical printang(max_cut)
- integer printpdb(max_cut)
- integer printmol2(max_cut)
- character*240 lineh
- REAL CRIT(maxconf),MEMBR(maxconf)
- REAL CRITVAL(maxconf-1)
- INTEGER IA(maxconf),IB(maxconf)
- INTEGER ICLASS(maxconf,maxconf-1),HVALS(maxconf-1)
- INTEGER IORDER(maxconf-1),HEIGHT(maxconf-1)
- integer nn,ndis
- real*4 DISNN
- DIMENSION NN(maxconf),DISNN(maxconf)
- LOGICAL FLAG(maxconf)
- integer i,j,k,l,m,n,len,lev,idum,ii,ind,ioffset,jj,icut,ncon,
- & it,ncon_work,ind1
- double precision t1,t2,tcpu,difconf
-
- double precision varia(maxvar)
- double precision hrtime,mintime,sectime
- logical eof
-#ifdef MPI
- call MPI_Init( IERROR )
- call MPI_Comm_rank( MPI_COMM_WORLD, me, IERROR )
- call MPI_Comm_size( MPI_COMM_WORLD, nprocs, IERROR )
- Master = 0
- if (ierror.gt.0) then
- write(iout,*) "SEVERE ERROR - Can't initialize MPI."
- call mpi_finalize(ierror)
- stop
- endif
- if (nprocs.gt.MaxProcs+1) then
- write (2,*) "Error - too many processors",
- & nprocs,MaxProcs+1
- write (2,*) "Increase MaxProcs and recompile"
- call MPI_Finalize(IERROR)
- stop
- endif
-#endif
-
- call initialize
- call openunits
- call parmread
- call read_control
- call molread
-c if (refstr) call read_ref_structure(*30)
- do i=1,nres
- phi(i)=0.0D0
- theta(i)=0.0D0
- alph(i)=0.0D0
- omeg(i)=0.0D0
- enddo
- write (iout,*) "symetr", symetr
- call permut(symetr)
- print *,'MAIN: nnt=',nnt,' nct=',nct
-
- DO I=1,NCUT
- PRINTANG(I)=.FALSE.
- PRINTPDB(I)=0
- printmol2(i)=0
- IF (RCUTOFF(I).LT.0.0) THEN
- RCUTOFF(I)=ABS(RCUTOFF(I))
- PRINTANG(I)=.TRUE.
- PRINTPDB(I)=outpdb
- printmol2(i)=outmol2
- ENDIF
- ENDDO
- write (iout,*) 'Number of cutoffs:',NCUT
- write (iout,*) 'Cutoff values:'
- DO ICUT=1,NCUT
- WRITE(IOUT,'(8HRCUTOFF(,I2,2H)=,F8.1,2i2)')ICUT,RCUTOFF(ICUT),
- & printpdb(icut),printmol2(icut)
- ENDDO
- DO I=1,NRES-3
- MULT(I)=1
- ENDDO
- do i=1,maxconf
- list_conf(i)=i
- enddo
- call read_coords(ncon,*20)
- write (iout,*) 'from read_coords: ncon',ncon
-
- write (iout,*) "nT",nT
- do iT=1,nT
- write (iout,*) "iT",iT
-#ifdef MPI
- call work_partition(.true.,ncon)
-#endif
-
- call probabl(iT,ncon_work,ncon,*20)
-
- if (ncon_work.lt.2) then
- write (iout,*) "Too few conformations; clustering skipped"
- exit
- endif
-#ifdef MPI
- ndis=ncon_work*(ncon_work-1)/2
- call work_partition(.true.,ndis)
-#endif
-
- DO I=1,NCON_work
- ICC(I)=I
- ENDDO
- WRITE (iout,'(A80)') TITEL
- t1=tcpu()
-C
-C CALCULATE DISTANCES
-C
- call daread_ccoords(1,ncon_work)
- ind1=0
- DO I=1,NCON_work-1
- if (mod(i,100).eq.0) print *,'Calculating RMS i=',i
- do k=1,2*nres
- do l=1,3
- c(l,k)=allcart(l,k,i)
- enddo
- enddo
- do k=1,nres
- do l=1,3
- cref(l,k)=c(l,k)
- enddo
- enddo
- DO J=I+1,NCON_work
- IND=IOFFSET(NCON_work,I,J)
-#ifdef MPI
- if (ind.ge.indstart(me) .and. ind.le.indend(me)) then
-#endif
- ind1=ind1+1
- DISS(IND1)=DIFCONF(I,J)
-c write (iout,'(2i4,i10,f10.5)') i,j,ind,DISS(IND)
-#ifdef MPI
- endif
-#endif
- ENDDO
- ENDDO
- t2=tcpu()
- WRITE (iout,'(/a,1pe14.5,a/)')
- & 'Time for distance calculation:',T2-T1,' sec.'
- t1=tcpu()
- PRINT '(a)','End of distance computation'
-
-#ifdef MPI
- call MPI_Gatherv(diss(1),scount(me),MPI_REAL,diss(1),
- & scount(0),idispl(0),MPI_REAL,Master,MPI_COMM_WORLD, IERROR)
- if (me.eq.master) then
-#endif
- open(80,file='/tmp/distance',form='unformatted')
- do i=1,ndis
- write(80) diss(i)
- enddo
- if (punch_dist) then
- do i=1,ncon_work-1
- do j=i+1,ncon_work
- IND=IOFFSET(NCON,I,J)
- write (jrms,'(2i5,2f10.5)') i,j,diss(IND),
- & energy(j)-energy(i)
- enddo
- enddo
- endif
-C
-C Print out the RMS deviation matrix.
-C
- if (print_dist) CALL DISTOUT(NCON_work)
-C
-C call hierarchical clustering HC from F. Murtagh
-C
- N=NCON_work
- LEN = (N*(N-1))/2
- write(iout,*) "-------------------------------------------"
- write(iout,*) "HIERARCHICAL CLUSTERING using"
- if (iopt.eq.1) then
- write(iout,*) "WARD'S MINIMUM VARIANCE METHOD"
- elseif (iopt.eq.2) then
- write(iout,*) "SINGLE LINK METHOD"
- elseif (iopt.eq.3) then
- write(iout,*) "COMPLETE LINK METHOD"
- elseif (iopt.eq.4) then
- write(iout,*) "AVERAGE LINK (OR GROUP AVERAGE) METHOD"
- elseif (iopt.eq.5) then
- write(iout,*) "MCQUITTY'S METHOD"
- elseif (iopt.eq.6) then
- write(iout,*) "MEDIAN (GOWER'S) METHOD"
- elseif (iopt.eq.7) then
- write(iout,*) "CENTROID METHOD"
- else
- write(iout,*) "IOPT=",iopt," IS INVALID, use 1-7"
- write(*,*) "IOPT=",iopt," IS INVALID, use 1-7"
- stop
- endif
- write(iout,*)
- write(iout,*) "hc.f by F. Murtagh, ESA/ESO/STECF, Garching"
- write(iout,*) "February 1986"
- write(iout,*) "References:"
- write(iout,*) "1. Multidimensional clustering algorithms"
- write(iout,*) " Fionn Murtagh"
- write(iout,*) " Vienna : Physica-Verlag, 1985."
- write(iout,*) "2. Multivariate data analysis"
- write(iout,*) " Fionn Murtagh and Andre Heck"
- write(iout,*) " Kluwer Academic Publishers, 1987"
- write(iout,*) "-------------------------------------------"
- write(iout,*)
-
-#ifdef DEBUG
- write (iout,*) "The TOTFREE array"
- do i=1,ncon_work
- write (iout,'(2i5,f10.5)') i,list_conf(i),totfree(i)
- enddo
-#endif
- call flush(iout)
- CALL HC(N,M,LEN,IOPT,IA,IB,CRIT,MEMBR,NN,DISNN,FLAG,DISS)
- LEV = N-1
- write (iout,*) "n",n," ncon_work",ncon_work," lev",lev
- if (lev.lt.2) then
- write (iout,*) "Too few conformations to cluster."
- goto 192
- endif
- CALL HCASS(N,IA,IB,CRIT,LEV,ICLASS,HVALS,IORDER,CRITVAL,HEIGHT)
-c CALL HCDEN(LEV,IORDER,HEIGHT,CRITVAL)
-
- do i=1,maxgr
- licz(i)=0
- enddo
- icut=1
- i=1
- NGR=i+1
- do j=1,n
- licz(iclass(j,i))=licz(iclass(j,i))+1
- nconf(iclass(j,i),licz(iclass(j,i)))=j
-c write (iout,*) i,j,iclass(j,i),licz(iclass(j,i)),
-c & nconf(iclass(j,i),licz(iclass(j,i)))
- enddo
- do i=1,lev-1
-
- idum=lev-i
- DO L=1,LEV
- IF (HEIGHT(L).EQ.IDUM) GOTO 190
- ENDDO
- 190 IDUM=L
- write(IOUT,*) "i+1",i+1," idum",idum," critval",CRITVAL(IDUM),
- & " icut",icut," cutoff",rcutoff(icut)
- IF (CRITVAL(IDUM).LT. RCUTOFF(ICUT)) THEN
- WRITE (iout,'(/a,f10.5)') 'AT CUTOFF:',rcutoff(icut)
- write (iout,'(a,f8.2)') 'Maximum distance found:',
- & CRITVAL(IDUM)
- CALL SRTCLUST(ICUT,ncon_work,iT)
- CALL TRACK(ICUT)
- CALL WRTCLUST(ncon_work,ICUT,PRINTANG,PRINTPDB,PRINTMOL2,iT)
- icut=icut+1
- if (icut.gt.ncut) goto 191
- ENDIF
- NGR=i+1
- do l=1,maxgr
- licz(l)=0
- enddo
- do j=1,n
- licz(iclass(j,i))=licz(iclass(j,i))+1
- nconf(iclass(j,i),licz(iclass(j,i)))=j
-c write (iout,*) i,j,iclass(j,i),licz(iclass(j,i)),
-c & nconf(iclass(j,i),licz(iclass(j,i)))
-cd print *,j,iclass(j,i),
-cd & licz(iclass(j,i)),nconf(iclass(j,i),licz(iclass(j,i)))
- enddo
- enddo
- 191 continue
-C
- if (plot_tree) then
- CALL WRITRACK
- CALL PLOTREE
- endif
-C
- t2=tcpu()
- WRITE (iout,'(/a,1pe14.5,a/)')
- & 'Total time for clustering:',T2-T1,' sec.'
-
-#ifdef MPI
- endif
-#endif
- 192 continue
- enddo
-C
- close(icbase,status="delete")
-#ifdef MPI
- call MPI_Finalize(MPI_COMM_WORLD,IERROR)
-#endif
- stop '********** Program terminated normally.'
- 20 write (iout,*) "Error reading coordinates"
-#ifdef MPI
- call MPI_Finalize(MPI_COMM_WORLD,IERROR)
-#endif
- stop
- 30 write (iout,*) "Error reading reference structure"
-#ifdef MPI
- call MPI_Finalize(MPI_COMM_WORLD,IERROR)
-#endif
- stop
- end
-c---------------------------------------------------------------------------
- double precision function difconf(icon,jcon)
- implicit none
- include 'DIMENSIONS'
- include 'sizesclu.dat'
- include 'COMMON.CONTROL'
- include 'COMMON.CLUSTER'
- include 'COMMON.CHAIN'
- include 'COMMON.INTERACT'
- include 'COMMON.VAR'
- include 'COMMON.IOUNITS'
- logical non_conv
- double precision przes(3),obrot(3,3)
- double precision xx(3,maxres2),yy(3,maxres2)
- integer i,ii,j,icon,jcon,kkk,nperm,chalen,zzz
- integer iaperm,ibezperm,run
- double precision rms,rmsmina
-c write (iout,*) "tu dochodze"
- rmsmina=10d10
- nperm=1
- do i=1,symetr
- nperm=i*nperm
- enddo
-c write (iout,*) "nperm",nperm
- call permut(symetr)
-c write (iout,*) "tabperm", tabperm(1,1)
- do kkk=1,nperm
- if (lside) then
- ii=0
- chalen=int((nend-nstart+2)/symetr)
- do run=1,symetr
- do i=nstart,(nstart+chalen-1)
- zzz=tabperm(kkk,run)
-c write (iout,*) "tutaj",zzz
- ii=ii+1
- iaperm=(zzz-1)*chalen+i
- ibezperm=(run-1)*chalen+i
- do j=1,3
- xx(j,ii)=allcart(j,iaperm,jcon)
- yy(j,ii)=cref(j,ibezperm)
- enddo
- enddo
- enddo
- do run=1,symetr
- do i=nstart,(nstart+chalen-1)
- zzz=tabperm(kkk,run)
- ii=ii+1
- iaperm=(zzz-1)*chalen+i
- ibezperm=(run-1)*chalen+i
-c if (itype(i).ne.10) then
- ii=ii+1
- do j=1,3
- xx(j,ii)=allcart(j,iaperm+nres,jcon)
- yy(j,ii)=cref(j,ibezperm+nres)
- enddo
- enddo
-c endif
- enddo
- call fitsq(rms,xx(1,1),yy(1,1),ii,przes,obrot,non_conv)
- else
- chalen=int((nct-nnt+2)/symetr)
- do run=1,symetr
- do i=nnt,(nnt+chalen-1)
- zzz=tabperm(kkk,run)
-c write (iout,*) "tu szukaj", zzz,run,kkk
- iaperm=(zzz-1)*chalen+i
- ibezperm=(run-1)*chalen+i
-c do i=nnt,nct
- do j=1,3
- c(j,i)=allcart(j,iaperm,jcon)
- enddo
- enddo
- enddo
- call fitsq(rms,c(1,nstart),cref(1,nstart),nend-nstart+1,przes,
- & obrot,non_conv)
- endif
- if (rms.lt.0.0) then
- print *,'error, rms^2 = ',rms,icon,jcon
- stop
- endif
- if (non_conv) print *,non_conv,icon,jcon
- if (rmsmina.gt.rms) rmsmina=rms
- enddo
- difconf=dsqrt(rmsmina)
- RETURN
- END
-C------------------------------------------------------------------------------
- subroutine distout(ncon)
- implicit none
- include 'DIMENSIONS'
- include 'sizesclu.dat'
- integer ncol,ncon
- parameter (ncol=10)
- include 'COMMON.IOUNITS'
- include 'COMMON.CLUSTER'
- integer i,j,k,jlim,jlim1,nlim,ind,ioffset
- real*4 b
- dimension b(ncol)
- write (iout,'(a)') 'The distance matrix'
- do 1 i=1,ncon,ncol
- nlim=min0(i+ncol-1,ncon)
- write (iout,1000) (k,k=i,nlim)
- write (iout,'(8h--------,10a)') ('-------',k=i,nlim)
- 1000 format (/8x,10(i4,3x))
- 1020 format (/1x,80(1h-)/)
- do 2 j=i,ncon
- jlim=min0(j,nlim)
- if (jlim.eq.j) then
- b(jlim-i+1)=0.0d0
- jlim1=jlim-1
- else
- jlim1=jlim
- endif
- do 3 k=i,jlim1
- if (j.lt.k) then
- IND=IOFFSET(NCON,j,k)
- else
- IND=IOFFSET(NCON,k,j)
- endif
- 3 b(k-i+1)=diss(IND)
- write (iout,1010) j,(b(k),k=1,jlim-i+1)
- 2 continue
- 1 continue
- 1010 format (i5,3x,10(f6.2,1x))
- return
- end
+++ /dev/null
- subroutine permut(isym)
- implicit real*8 (a-h,o-z)
- include 'DIMENSIONS'
- include 'COMMON.LOCAL'
- include 'COMMON.VAR'
- include 'COMMON.CHAIN'
- include 'COMMON.INTERACT'
- include 'COMMON.IOUNITS'
- include 'COMMON.GEO'
- include 'COMMON.NAMES'
- include 'COMMON.CONTROL'
-c include 'COMMON.DISTFIT'
-c include 'COMMON.SETUP'
- integer n,a
- logical nextp
- external nextp
- dimension a(isym)
-c parameter(n=symetr)
- n=isym
- kkk=0
- do i=1,n
- a(i)=i
- enddo
- 10 print *,(a(i),i=1,n)
- kkk=kkk+1
- do i=1,n
- tabperm(kkk,i)=a(i)
-c write (iout,*) "tututu", kkk
- enddo
- if(nextp(n,a)) go to 10
- end
-
- function nextp(n,a)
- integer n,a,i,j,k,t
- logical nextp
- dimension a(n)
- i=n-1
- 10 if(a(i).lt.a(i+1)) go to 20
- i=i-1
- if(i.eq.0) go to 20
- go to 10
- 20 j=i+1
- k=n
- 30 t=a(j)
- a(j)=a(k)
- a(k)=t
- j=j+1
- k=k-1
- if(j.lt.k) go to 30
- j=i
- if(j.ne.0) go to 40
- nextp=.false.
- return
- 40 j=j+1
- if(a(j).lt.a(i)) go to 40
- t=a(i)
- a(i)=a(j)
- a(j)=t
- nextp=.true.
- end
+++ /dev/null
- subroutine probabl(ib,nlist,ncon,*)
-! construct the conformational ensembles at REMD temperatures
- implicit none
- include "DIMENSIONS"
- include "sizesclu.dat"
-#ifdef MPI
- include "mpif.h"
- include "COMMON.MPI"
- integer ierror,errcode,status(MPI_STATUS_SIZE)
-#endif
- include "COMMON.IOUNITS"
- include "COMMON.FREE"
- include "COMMON.FFIELD"
- include "COMMON.INTERACT"
- include "COMMON.SBRIDGE"
- include "COMMON.CHAIN"
- include "COMMON.CLUSTER"
- real*4 csingle(3,maxres2)
- double precision fT(6),fTprim(6),fTbis(6),quot,quotl1,quotl,kfacl,
- & eprim,ebis,temper,kfac/2.4d0/,T0/300.0d0/
- double precision etot,evdw,evdw2,ees,evdw1,ebe,etors,escloc,
- & ehpb,ecorr,ecorr5,ecorr6,eello_turn4,eello_turn3,
- & eturn6,eel_loc,edihcnstr,etors_d,estr,evdw2_14,esccor,
- & evdw_t
- integer i,ii,ik,iproc,iscor,j,k,l,ib,nlist,ncon
- double precision qfree,sumprob,eini,efree,rmsdev
- character*80 bxname
- character*2 licz1
- character*5 ctemper
- integer ilen
- external ilen
- real*4 Fdimless(maxconf)
- double precision energia(0:max_ene)
- do i=1,ncon
- list_conf(i)=i
- enddo
-c do i=1,ncon
-c write (iout,*) i,list_conf(i)
-c enddo
-#ifdef MPI
- write (iout,*) me," indstart",indstart(me)," indend",indend(me)
- call daread_ccoords(indstart(me),indend(me))
-#endif
-c write (iout,*) "ncon",ncon
- temper=1.0d0/(beta_h(ib)*1.987D-3)
-c write (iout,*) "ib",ib," beta_h",beta_h(ib)," temper",temper
-c quot=1.0d0/(T0*beta_h(ib)*1.987D-3)
-c quotl=1.0d0
-c kfacl=1.0d0
-c do l=1,5
-c quotl1=quotl
-c quotl=quotl*quot
-c kfacl=kfacl*kfac
-c fT(l)=kfacl/(kfacl-1.0d0+quotl)
-c enddo
- if (rescale_mode.eq.1) then
- quot=1.0d0/(T0*beta_h(ib)*1.987D-3)
- quotl=1.0d0
- kfacl=1.0d0
- do l=1,5
- quotl1=quotl
- quotl=quotl*quot
- kfacl=kfacl*kfac
- fT(l)=kfacl/(kfacl-1.0d0+quotl)
- enddo
-#if defined(FUNCTH)
- ft(6)=(320.0d0+80.0d0*dtanh((betaT-320.0d0)/80.0d0))/
- & 320.0d0
- ftprim(6)=1.0d0/(320.0d0*dcosh((betaT-320.0d0)/80.0d0)**2)
- ftbis(6)=-2.0d0*dtanh((betaT-320.0d0)/80.0d0)
- & /(320.0d0*80.0d0*dcosh((betaT-320.0d0)/80.0d0)**3)
-#elif defined(FUNCT)
- fT(6)=betaT/T0
- ftprim(6)=1.0d0/T0
- ftbis(6)=0.0d0
-#else
- fT(6)=1.0d0
- ftprim(6)=0.0d0
- ftbis(6)=0.0d0
-#endif
-
- else if (rescale_mode.eq.2) then
- quot=1.0d0/(T0*beta_h(ib)*1.987D-3)
- quotl=1.0d0
- do l=1,5
- quotl=quotl*quot
- fT(l)=1.12692801104297249644d0/
- & dlog(dexp(quotl)+dexp(-quotl))
- enddo
-c write (iout,*) 1.0d0/(beta_h(ib)*1.987D-3),ft
- call flush(iout)
-#if defined(FUNCTH)
- ft(6)=(320.0d0+80.0d0*dtanh((betaT-320.0d0)/80.0d0))/
- & 320.0d0
- ftprim(6)=1.0d0/(320.0d0*dcosh((betaT-320.0d0)/80.0d0)**2)
- ftbis(6)=-2.0d0*dtanh((betaT-320.0d0)/80.0d0)
- & /(320.0d0*80.0d0*dcosh((betaT-320.0d0)/80.0d0)**3)
-#elif defined(FUNCT)
- fT(6)=betaT/T0
- ftprim(6)=1.0d0/T0
- ftbis(6)=0.0d0
-#else
- fT(6)=1.0d0
- ftprim(6)=0.0d0
- ftbis(6)=0.0d0
-#endif
- endif
-
-#ifdef MPI
- do i=1,scount(me)
- ii=i+indstart(me)-1
-#else
- do i=1,ncon
- ii=i
-#endif
-c write (iout,*) "i",i," ii",ii
- call flush(iout)
- if (ib.eq.1) then
- do j=1,nres
- do k=1,3
- c(k,j)=allcart(k,j,i)
- c(k,j+nres)=allcart(k,j+nres,i)
- enddo
- enddo
- do k=1,3
- c(k,nres+1)=c(k,1)
- c(k,nres+nres)=c(k,nres)
- enddo
- nss=nss_all(i)
- do j=1,nss
- ihpb(j)=ihpb_all(j,i)
- jhpb(j)=jhpb_all(j,i)
- enddo
- call int_from_cart1(.false.)
- call etotal(energia(0),fT)
- totfree(i)=energia(0)
-c write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
-c write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
-c call enerprint(energia(0),fT)
-c call pdbout(totfree(i),16,i)
-#ifdef DEBUG
- write (iout,*) i," energia",(energia(j),j=0,19)
- write (iout,*) "etot", etot
- write (iout,*) "ft(6)", ft(6)
-#endif
- do k=1,max_ene
- enetb(k,i)=energia(k)
- enddo
- endif
- evdw=enetb(1,i)
- write (iout,*) evdw
- etot=energia(0)
-#ifdef SCP14
- evdw2_14=enetb(17,i)
- evdw2=enetb(2,i)+evdw2_14
-#else
- evdw2=enetb(2,i)
- evdw2_14=0.0d0
-#endif
-#ifdef SPLITELE
- ees=enetb(3,i)
- evdw1=enetb(16,i)
-#else
- ees=enetb(3,i)
- evdw1=0.0d0
-#endif
- ecorr=enetb(4,i)
- ecorr5=enetb(5,i)
- ecorr6=enetb(6,i)
- eel_loc=enetb(7,i)
- eello_turn3=enetb(8,i)
- eello_turn4=enetb(9,i)
- eturn6=enetb(10,i)
- ebe=enetb(11,i)
- escloc=enetb(12,i)
- etors=enetb(13,i)
- etors_d=enetb(14,i)
- ehpb=enetb(15,i)
- estr=enetb(18,i)
- esccor=enetb(19,i)
- edihcnstr=enetb(20,i)
-c#ifdef SPLITELE
-c etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+
-c &ft(1)*welec*ees+wvdwpp*evdw1
-c & +wang*ebe+ft(1)*wtor*etors+wscloc*escloc
-c & +wstrain*ehpb+nss*ebr+ft(3)*wcorr*ecorr+ft(4)*wcorr5*ecorr5
-c & +ft(5)*wcorr6*ecorr6+ft(3)*wturn4*eello_turn4
-c & +ft(2)*wturn3*eello_turn3
-c & +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
-c & +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
-c & +wbond*estr
-c#else
-c etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+ft(1)*welec*(ees+evdw1)
-c & +wang*ebe+ft(1)*wtor*etors+wscloc*escloc
-c & +wstrain*ehpb+nss*ebr+ft(3)*wcorr*ecorr+ft(4)*wcorr5*ecorr5
-c & +ft(5)*wcorr6*ecorr6+ft(3)*wturn4*eello_turn4
-c & +ft(2)*wturn3*eello_turn3
-c & +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
-c & +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
-c & +wbond*estr
-c#endif
-#ifdef DEBUG
- write (iout,*) "etot2", etot
- write (iout,*) "evdw", wsc, evdw,evdw_t
- write (iout,*) "evdw2", wscp, evdw2
- write (iout,*) "welec", ft(1),welec,ees
- write (iout,*) "evdw1", wvdwpp,evdw1
- write (iout,*) "ebe" ebe,wang
-#endif
- Fdimless(i)=beta_h(ib)*etot+entfac(ii)
- totfree(i)=etot
-#ifdef DEBUG
- write (iout,*) "fdim calc", i,ii,ib,
- & 1.0d0/(1.987d-3*beta_h(ib)),totfree(i),
- & entfac(ii),Fdimless(i)
-#endif
- enddo ! i
-#ifdef MPI
- call MPI_Gatherv(Fdimless(1),scount(me),
- & MPI_REAL,Fdimless(1),
- & scount(0),idispl(0),MPI_REAL,Master,
- & MPI_COMM_WORLD, IERROR)
- call MPI_Gatherv(totfree(1),scount(me),
- & MPI_DOUBLE_PRECISION,totfree(1),
- & scount(0),idispl(0),MPI_DOUBLE_PRECISION,Master,
- & MPI_COMM_WORLD, IERROR)
- call MPI_Gatherv(entfac(indstart(me)+1),scount(me),
- & MPI_DOUBLE_PRECISION,entfac(1),
- & scount(0),idispl(0),MPI_DOUBLE_PRECISION,Master,
- & MPI_COMM_WORLD, IERROR)
- if (me.eq.Master) then
-#endif
-#ifdef DEBUG
- write (iout,*) "The FDIMLESS array before sorting"
- do i=1,ncon
- write (iout,*) i,fdimless(i)
- enddo
-#endif
- call mysort1(ncon,Fdimless,list_conf)
-#ifdef DEBUG
- write (iout,*) "The FDIMLESS array after sorting"
- do i=1,ncon
- write (iout,*) i,list_conf(i),fdimless(i)
- enddo
-#endif
- do i=1,ncon
- totfree(i)=fdimless(i)
- enddo
- qfree=0.0d0
- do i=1,ncon
- qfree=qfree+exp(-fdimless(i)+fdimless(1))
- write (iout,*) "fdimless", fdimless(i)
- enddo
- write (iout,*) "qfree",qfree
- nlist=1
- sumprob=0.0
- write (iout,*) "ncon", ncon,maxstr_proc
- do i=1,min0(ncon,maxstr_proc)-1
- sumprob=sumprob+exp(-fdimless(i)+fdimless(1))/qfree
-#ifdef DEBUG
- write (iout,*) i,ib,beta_h(ib),
- & 1.0d0/(1.987d-3*beta_h(ib)),list_conf(i),
- & totfree(list_conf(i)),
- & -entfac(list_conf(i)),fdimless(i),sumprob
-#endif
- if (sumprob.gt.prob_limit) goto 122
-c if (sumprob.gt.1.00d0) goto 122
- nlist=nlist+1
- enddo
- 122 continue
-#ifdef MPI
- endif
- call MPI_Bcast(nlist, 1, MPI_INTEGER, Master, MPI_COMM_WORLD,
- & IERROR)
- call MPI_Bcast(list_conf,nlist,MPI_INTEGER,Master,MPI_COMM_WORLD,
- & IERROR)
-c do iproc=0,nprocs
-c write (iout,*) "iproc",iproc," indstart",indstart(iproc),
-c & " indend",indend(iproc)
-c enddo
- write (iout,*) "nlist",nlist
-#endif
- return
- end
-!--------------------------------------------------
- subroutine mysort1(n, x, ipermut)
- implicit none
- integer i,j,imax,ipm,n
- real x(n)
- integer ipermut(n)
- real xtemp
- do i=1,n
- xtemp=x(i)
- imax=i
- do j=i+1,n
- if (x(j).lt.xtemp) then
- imax=j
- xtemp=x(j)
- endif
- enddo
- x(imax)=x(i)
- x(i)=xtemp
- ipm=ipermut(imax)
- ipermut(imax)=ipermut(i)
- ipermut(i)=ipm
- enddo
- return
- end
+++ /dev/null
- subroutine read_coords(ncon,*)
- implicit none
- include "DIMENSIONS"
- include "sizesclu.dat"
-#ifdef MPI
- include "mpif.h"
- integer IERROR,ERRCODE,STATUS(MPI_STATUS_SIZE)
- include "COMMON.MPI"
-#endif
- include "COMMON.CONTROL"
- include "COMMON.CHAIN"
- include "COMMON.INTERACT"
- include "COMMON.IOUNITS"
- include "COMMON.VAR"
- include "COMMON.SBRIDGE"
- include "COMMON.GEO"
- include "COMMON.CLUSTER"
- character*3 liczba
- integer ncon
- integer i,j,jj,jjj,jj_old,icount,k,kk,l,ii,if,ib,
- & nn,nn1,inan
- integer ixdrf,iret,itmp
- real*4 prec,reini,refree,rmsdev
- integer nrec,nlines,iscor,lenrec,lenrec_in
- double precision energ,t_acq,tcpu
- integer ilen,iroof
- external ilen,iroof
- double precision rjunk
- integer ntot_all(0:maxprocs-1)
- logical lerr
- double precision energia(0:max_ene),etot
- real*4 csingle(3,maxres2+2)
- integer Previous,Next
- character*256 bprotfiles
-c print *,"Processor",me," calls read_protein_data"
-#ifdef MPI
- if (me.eq.master) then
- Previous=MPI_PROC_NULL
- else
- Previous=me-1
- endif
- if (me.eq.nprocs-1) then
- Next=MPI_PROC_NULL
- else
- Next=me+1
- endif
-c Set the scratchfile names
- write (liczba,'(bz,i3.3)') me
-#endif
-c 1/27/05 AL Change stored coordinates to single precision and don't store
-c energy components in the binary databases.
- lenrec=12*(nres+nct-nnt+1)+4*(2*nss+2)+16
- lenrec_in=12*(nres+nct-nnt+1)+4*(2*nss+2)+24
-#ifdef DEBUG
- write (iout,*) "nres",nres," nnt",nnt," nct",nct," nss", nss
- write (iout,*) "lenrec_in",lenrec_in
-#endif
- bprotfiles=scratchdir(:ilen(scratchdir))//
- & "/"//prefix(:ilen(prefix))//liczba//".xbin"
-
-#ifdef CHUJ
- ICON=1
- 123 continue
- if (from_cart .and. .not. from_bx .and. .not. from_cx) then
- if (efree) then
- read (intin,*,end=13,err=11) energy(icon),totfree(icon),
- & rmstb(icon),
- & nss_all(icon),(ihpb_all(ii,icon),jhpb_all(i,icon),
- & i=1,nss_all(icon)),iscore(icon)
- else
- read (intin,*,end=13,err=11) energy(icon),rmstb(icon),
- & nss_all(icon),(ihpb_all(ii,icon),jhpb_all(i,icon),
- & i=1,nss_all(icon)),iscore(icon)
- endif
- read (intin,'(8f10.5)',end=13,err=10)
- & ((allcart(j,i,icon),j=1,3),i=1,nres),
- & ((allcart(j,i+nres,icon),j=1,3),i=nnt,nct)
- print *,icon,energy(icon),nss_all(icon),rmstb(icon)
- else
- read(intin,'(a80)',end=13,err=12) lineh
- read(lineh(:5),*,err=8) ic
- if (efree) then
- read(lineh(6:),*,err=8) energy(icon)
- else
- read(lineh(6:),*,err=8) energy(icon)
- endif
- goto 9
- 8 ic=1
- print *,'error, assuming e=1d10',lineh
- energy(icon)=1d10
- nss=0
- 9 continue
-cold read(lineh(18:),*,end=13,err=11) nss_all(icon)
- ii = index(lineh(15:)," ")+15
- read(lineh(ii:),*,end=13,err=11) nss_all(icon)
- IF (NSS_all(icon).LT.9) THEN
- read (lineh(20:),*,end=102)
- & (IHPB_all(I,icon),JHPB_all(I,icon),I=1,NSS_all(icon)),
- & iscore(icon)
- ELSE
- read (lineh(20:),*,end=102)
- & (IHPB_all(I,icon),JHPB_all(I,icon),I=1,8)
- read (intin,*) (IHPB_all(I,icon),JHPB_all(I,icon),
- & I=9,NSS_all(icon)),iscore(icon)
- ENDIF
-
- 102 continue
-
- PRINT *,'IC:',IC,' ENERGY:',ENERGY(ICON)
- call read_angles(intin,*13)
- do i=1,nres
- phiall(i,icon)=phi(i)
- thetall(i,icon)=theta(i)
- alphall(i,icon)=alph(i)
- omall(i,icon)=omeg(i)
- enddo
- endif
- ICON=ICON+1
- GOTO 123
-C
-C CALCULATE DISTANCES
-C
- 10 print *,'something wrong with angles'
- goto 13
- 11 print *,'something wrong with NSS',nss
- goto 13
- 12 print *,'something wrong with header'
-
- 13 NCON=ICON-1
-
-#endif
- call flush(iout)
- jj_old=1
- open (icbase,file=bprotfiles,status="unknown",
- & form="unformatted",access="direct",recl=lenrec)
-c Read conformations from binary DA files (one per batch) and write them to
-c a binary DA scratchfile.
- jj=0
- jjj=0
-#ifdef MPI
- write (liczba,'(bz,i3.3)') me
- IF (ME.EQ.MASTER) THEN
-c Only the master reads the database; it'll send it to the other procs
-c through a ring.
-#endif
- t_acq = tcpu()
- icount=0
-
- if (from_bx) then
-
- open (intin,file=intinname,status="old",form="unformatted",
- & access="direct",recl=lenrec_in)
-
- else if (from_cx) then
-#if (defined(AIX) && !defined(JUBL))
- call xdrfopen_(ixdrf,intinname, "r", iret)
-#else
- call xdrfopen(ixdrf,intinname, "r", iret)
-#endif
- prec=10000.0
- write (iout,*) "xdrfopen: iret",iret
- if (iret.eq.0) then
- write (iout,*) "Error: coordinate file ",
- & intinname(:ilen(intinname))," does not exist."
- call flush(iout)
-#ifdef MPI
- call MPI_ABORT(MPI_COMM_WORLD,IERROR,ERRCODE)
-#endif
- stop
- endif
- else
- write (iout,*) "Error: coordinate format not specified"
- call flush(iout)
-#ifdef MPI
- call MPI_ABORT(MPI_COMM_WORLD,IERROR,ERRCODE)
-#else
- stop
-#endif
- endif
-
-#define DEBUG
-#ifdef DEBUG
- write (iout,*) "Opening file ",intinname(:ilen(intinname))
- write (iout,*) "lenrec",lenrec_in
- call flush(iout)
-#endif
-#undef DEBUG
-c write (iout,*) "maxconf",maxconf
- i=0
- do while (.true.)
- i=i+1
- if (i.gt.maxconf) then
- write (iout,*) "Error: too many conformations ",
- & "(",maxconf,") maximum."
-#ifdef MPI
- call MPI_Abort(MPI_COMM_WORLD,errcode,ierror)
-#endif
- stop
- endif
-c write (iout,*) "i",i
-c call flush(iout)
- if (from_bx) then
- read(intin,err=101,end=101)
- & ((csingle(l,k),l=1,3),k=1,nres),
- & ((csingle(l,k+nres),l=1,3),k=nnt,nct),
- & nss,(ihpb(k),jhpb(k),k=1,nss),
- & energy(jj+1),
- & entfac(jj+1),rmstb(jj+1),iscor
- do j=1,2*nres
- do k=1,3
- c(k,j)=csingle(k,j)
- enddo
- enddo
- else
-#if (defined(AIX) && !defined(JUBL))
- call xdrf3dfcoord_(ixdrf, csingle, itmp, prec, iret)
- if (iret.eq.0) goto 101
- call xdrfint_(ixdrf, nss, iret)
- if (iret.eq.0) goto 101
- do j=1,nss
- call xdrfint_(ixdrf, ihpb(j), iret)
- if (iret.eq.0) goto 101
- call xdrfint_(ixdrf, jhpb(j), iret)
- if (iret.eq.0) goto 101
- enddo
- call xdrffloat_(ixdrf,reini,iret)
- if (iret.eq.0) goto 101
- call xdrffloat_(ixdrf,refree,iret)
- if (iret.eq.0) goto 101
- call xdrffloat_(ixdrf,rmsdev,iret)
- if (iret.eq.0) goto 101
- call xdrfint_(ixdrf,iscor,iret)
- if (iret.eq.0) goto 101
-#else
- write (iout,*) "calling xdrf3dfcoord"
- call xdrf3dfcoord(ixdrf, csingle, itmp, prec, iret)
- write (iout,*) "iret",iret
-c call flush(iout)
- if (iret.eq.0) goto 101
- call xdrfint(ixdrf, nss, iret)
-c write (iout,*) "iret",iret
-c write (iout,*) "nss",nss
- call flush(iout)
- if (iret.eq.0) goto 101
- do k=1,nss
- call xdrfint(ixdrf, ihpb(k), iret)
- if (iret.eq.0) goto 101
- call xdrfint(ixdrf, jhpb(k), iret)
- if (iret.eq.0) goto 101
- enddo
- call xdrffloat(ixdrf,reini,iret)
- if (iret.eq.0) goto 101
- call xdrffloat(ixdrf,refree,iret)
- if (iret.eq.0) goto 101
- call xdrffloat(ixdrf,rmsdev,iret)
- if (iret.eq.0) goto 101
- call xdrfint(ixdrf,iscor,iret)
- if (iret.eq.0) goto 101
-#endif
- energy(jj+1)=reini
- entfac(jj+1)=refree
- rmstb(jj+1)=rmsdev
- do k=1,nres
- do l=1,3
- c(l,k)=csingle(l,k)
- enddo
- enddo
- do k=nnt,nct
- do l=1,3
- c(l,nres+k)=csingle(l,nres+k-nnt+1)
- enddo
- enddo
- endif
-#ifdef DEBUG
- write (iout,'(5hREAD ,i5,3f15.4,i10)')
- & jj+1,energy(jj+1),entfac(jj+1),
- & rmstb(jj+1),iscor
- write (iout,*) "Conformation",jjj+1,jj+1
- write (iout,'(8f10.5)') ((c(j,i),j=1,3),i=1,nres)
- write (iout,'(8f10.5)') ((c(j,i+nres),j=1,3),i=nnt,nct)
- call flush(iout)
-#endif
- call add_new_cconf(jjj,jj,jj_old,icount,Next)
- enddo
- 101 continue
- write (iout,*) i-1," conformations read from DA file ",
- & intinname(:ilen(intinname))
- write (iout,*) jj," conformations read so far"
- if (from_bx) then
- close(intin)
- else
-#if (defined(AIX) && !defined(JUBL))
- call xdrfclose_(ixdrf, iret)
-#else
- call xdrfclose(ixdrf, iret)
-#endif
- endif
-#ifdef MPI
-c#ifdef DEBUG
- write (iout,*) "jj_old",jj_old," jj",jj
-c#endif
- call write_and_send_cconf(icount,jj_old,jj,Next)
- call MPI_Send(0,1,MPI_INTEGER,Next,570,
- & MPI_COMM_WORLD,IERROR)
- jj_old=jj+1
-#else
- call write_and_send_cconf(icount,jj_old,jj,Next)
-#endif
- t_acq = tcpu() - t_acq
-#ifdef MPI
- write (iout,*) "Processor",me,
- & " time for conformation read/send",t_acq
- ELSE
-c A worker gets the confs from the master and sends them to its neighbor
- t_acq = tcpu()
- call receive_and_pass_cconf(icount,jj_old,jj,
- & Previous,Next)
- t_acq = tcpu() - t_acq
- ENDIF
-#endif
- ncon=jj
-c close(icbase)
- close(intin)
-
- write(iout,*)"A total of",ncon," conformations read."
-
-#ifdef MPI
-c Check if everyone has the same number of conformations
- call MPI_Allgather(ncon,1,MPI_INTEGER,
- & ntot_all(0),1,MPI_INTEGER,MPI_Comm_World,IERROR)
- lerr=.false.
- do i=0,nprocs-1
- if (i.ne.me) then
- if (ncon.ne.ntot_all(i)) then
- write (iout,*) "Number of conformations at processor",i,
- & " differs from that at processor",me,
- & ncon,ntot_all(i)
- lerr = .true.
- endif
- endif
- enddo
- if (lerr) then
- write (iout,*)
- write (iout,*) "Number of conformations read by processors"
- write (iout,*)
- do i=0,nprocs-1
- write (iout,'(8i10)') i,ntot_all(i)
- enddo
- write (iout,*) "Calculation terminated."
- call flush(iout)
- return1
- endif
- return
-#endif
- 1111 write(iout,*) "Error opening coordinate file ",
- & intinname(:ilen(intinname))
- call flush(iout)
- return1
- end
-c------------------------------------------------------------------------------
- subroutine add_new_cconf(jjj,jj,jj_old,icount,Next)
- implicit none
- include "DIMENSIONS"
- include "sizesclu.dat"
- include "COMMON.CLUSTER"
- include "COMMON.CONTROL"
- include "COMMON.CHAIN"
- include "COMMON.INTERACT"
- include "COMMON.LOCAL"
- include "COMMON.IOUNITS"
- include "COMMON.NAMES"
- include "COMMON.VAR"
- include "COMMON.SBRIDGE"
- include "COMMON.GEO"
- integer i,j,jj,jjj,jj_old,icount,k,kk,l,ii,ib
- & nn,nn1,inan,Next,itj,chalen
- double precision etot,energia(0:max_ene)
- jjj=jjj+1
- chalen=int((nct-nnt+2)/symetr)
- call int_from_cart1(.false.)
- do j=nnt+1,nct
- if (vbld(j).lt.2.0d0 .or. vbld(j).gt.5.0d0) then
- if (j.gt.2) then
- if (itel(j).ne.0 .and. itel(j-1).ne.0) then
- write (iout,*) "Conformation",jjj,jj+1
- write (iout,*) "Bad CA-CA bond length",j," ",vbld(j),itel(j),
- & chalen
- write (iout,*) "The Cartesian geometry is:"
- write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
- write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
- write (iout,*) "The internal geometry is:"
- write (iout,'(8f10.4)') (vbld(k),k=nnt+1,nct)
- write (iout,'(8f10.4)') (vbld(k),k=nres+nnt,nres+nct)
- write (iout,'(8f10.4)') (rad2deg*theta(k),k=3,nres)
- write (iout,'(8f10.4)') (rad2deg*phi(k),k=4,nres)
- write (iout,'(8f10.4)') (rad2deg*alph(k),k=2,nres-1)
- write (iout,'(8f10.4)') (rad2deg*omeg(k),k=2,nres-1)
- write (iout,*)
- & "This conformation WILL NOT be added to the database."
- return
- endif
- endif
- endif
- enddo
- do j=nnt,nct
- itj=itype(j)
- if (itype(j).ne.10 .and. (vbld(nres+j)-dsc(itj)).gt.2.0d0) then
- write (iout,*) "Conformation",jjj,jj+1
- write (iout,*) "Bad CA-SC bond length",j," ",vbld(nres+j)
- write (iout,*) "The Cartesian geometry is:"
- write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
- write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
- write (iout,*) "The internal geometry is:"
- write (iout,'(8f10.4)') (vbld(k),k=nnt+1,nct)
- write (iout,'(8f10.4)') (vbld(k),k=nres+nnt,nres+nct)
- write (iout,'(8f10.4)') (rad2deg*theta(k),k=3,nres)
- write (iout,'(8f10.4)') (rad2deg*phi(k),k=4,nres)
- write (iout,'(8f10.4)') (rad2deg*alph(k),k=2,nres-1)
- write (iout,'(8f10.4)') (rad2deg*omeg(k),k=2,nres-1)
- write (iout,*)
- & "This conformation WILL NOT be added to the database."
- return
- endif
- enddo
- do j=3,nres
- if (theta(j).le.0.0d0) then
- write (iout,*)
- & "Zero theta angle(s) in conformation",jjj,jj+1
- write (iout,*) "The Cartesian geometry is:"
- write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
- write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
- write (iout,*) "The internal geometry is:"
- write (iout,'(8f10.4)') (vbld(k),k=nnt+1,nct)
- write (iout,'(8f10.4)') (vbld(k),k=nres+nnt,nres+nct)
- write (iout,'(8f10.4)') (rad2deg*theta(k),k=3,nres)
- write (iout,'(8f10.4)') (rad2deg*phi(k),k=4,nres)
- write (iout,'(8f10.4)') (rad2deg*alph(k),k=2,nres-1)
- write (iout,'(8f10.4)') (rad2deg*omeg(k),k=2,nres-1)
- write (iout,*)
- & "This conformation WILL NOT be added to the database."
- return
- endif
- if (theta(j).gt.179.97*deg2rad) theta(j)=179.97*deg2rad
- enddo
- jj=jj+1
-#ifdef DEBUG
- write (iout,*) "Conformation",jjj,jj
- write (iout,'(8f10.5)') ((c(j,i),j=1,3),i=1,nres)
- write (iout,'(8f10.5)') ((c(j,i+nres),j=1,3),i=nnt,nct)
- write (iout,'(8f10.4)') (vbld(k),k=nnt+1,nct)
- write (iout,'(8f10.4)') (vbld(k),k=nres+nnt,nres+nct)
- write (iout,'(8f10.4)') (rad2deg*theta(k),k=3,nres)
- write (iout,'(8f10.4)') (rad2deg*phi(k),k=4,nres)
- write (iout,'(8f10.4)') (vbld(k+nres),k=nnt,nct)
- write (iout,'(8f10.4)') (rad2deg*alph(k),k=2,nres-1)
- write (iout,'(8f10.4)') (rad2deg*omeg(k),k=2,nres-1)
- write (iout,'(16i5)') nss,(ihpb(k),jhpb(k),k=1,nss)
- write (iout,'(e15.5,16i5)') entfac(icount+1)
-c & iscore(icount+1,0)
-#endif
- icount=icount+1
- call store_cconf_from_file(jj,icount)
- if (icount.eq.maxstr_proc) then
-#ifdef DEBUG
- write (iout,* ) "jj_old",jj_old," jj",jj
-#endif
- call write_and_send_cconf(icount,jj_old,jj,Next)
- jj_old=jj+1
- icount=0
- endif
- return
- end
-c------------------------------------------------------------------------------
- subroutine store_cconf_from_file(jj,icount)
- implicit none
- include "DIMENSIONS"
- include "sizesclu.dat"
- include "COMMON.CLUSTER"
- include "COMMON.CHAIN"
- include "COMMON.SBRIDGE"
- include "COMMON.INTERACT"
- include "COMMON.IOUNITS"
- include "COMMON.VAR"
- integer i,j,jj,icount
-c Store the conformation that has been read in
- do i=1,2*nres
- do j=1,3
- allcart(j,i,icount)=c(j,i)
- enddo
- enddo
- nss_all(icount)=nss
- do i=1,nss
- ihpb_all(i,icount)=ihpb(i)
- jhpb_all(i,icount)=jhpb(i)
- enddo
- return
- end
-c------------------------------------------------------------------------------
- subroutine write_and_send_cconf(icount,jj_old,jj,Next)
- implicit none
- include "DIMENSIONS"
- include "sizesclu.dat"
-#ifdef MPI
- include "mpif.h"
- integer IERROR
- include "COMMON.MPI"
-#endif
- include "COMMON.CHAIN"
- include "COMMON.SBRIDGE"
- include "COMMON.INTERACT"
- include "COMMON.IOUNITS"
- include "COMMON.CLUSTER"
- include "COMMON.VAR"
- integer icount,jj_old,jj,Next
-c Write the structures to a scratch file
-#ifdef MPI
-c Master sends the portion of conformations that have been read in to the neighbor
-#ifdef DEBUG
- write (iout,*) "Processor",me," entered WRITE_AND_SEND_CONF"
- call flush(iout)
-#endif
- call MPI_Send(icount,1,MPI_INTEGER,Next,570,MPI_COMM_WORLD,IERROR)
- call MPI_Send(nss_all(1),icount,MPI_INTEGER,
- & Next,571,MPI_COMM_WORLD,IERROR)
- call MPI_Send(ihpb_all(1,1),icount,MPI_INTEGER,
- & Next,572,MPI_COMM_WORLD,IERROR)
- call MPI_Send(jhpb_all(1,1),icount,MPI_INTEGER,
- & Next,573,MPI_COMM_WORLD,IERROR)
- call MPI_Send(rmstb(jj_old),icount,MPI_DOUBLE_PRECISION,
- & Next,577,MPI_COMM_WORLD,IERROR)
- call MPI_Send(entfac(jj_old),icount,MPI_DOUBLE_PRECISION,
- & Next,579,MPI_COMM_WORLD,IERROR)
- call MPI_Send(allcart(1,1,1),3*icount*maxres2,
- & MPI_REAL,Next,580,MPI_COMM_WORLD,IERROR)
-#endif
- call dawrite_ccoords(jj_old,jj,icbase)
- return
- end
-c------------------------------------------------------------------------------
-#ifdef MPI
- subroutine receive_and_pass_cconf(icount,jj_old,jj,Previous,
- & Next)
- implicit none
- include "DIMENSIONS"
- include "sizesclu.dat"
- include "mpif.h"
- integer IERROR,STATUS(MPI_STATUS_SIZE)
- include "COMMON.MPI"
- include "COMMON.CHAIN"
- include "COMMON.SBRIDGE"
- include "COMMON.INTERACT"
- include "COMMON.IOUNITS"
- include "COMMON.VAR"
- include "COMMON.GEO"
- include "COMMON.CLUSTER"
- integer i,j,k,icount,jj_old,jj,Previous,Next
- icount=1
-#ifdef DEBUG
- write (iout,*) "Processor",me," entered RECEIVE_AND_PASS_CONF"
- call flush(iout)
-#endif
- do while (icount.gt.0)
- call MPI_Recv(icount,1,MPI_INTEGER,Previous,570,MPI_COMM_WORLD,
- & STATUS,IERROR)
- call MPI_Send(icount,1,MPI_INTEGER,Next,570,MPI_COMM_WORLD,
- & IERROR)
-#ifdef DEBUG
- write (iout,*) "Processor",me," icount",icount
-#endif
- if (icount.eq.0) return
- call MPI_Recv(nss_all(1),icount,MPI_INTEGER,
- & Previous,571,MPI_COMM_WORLD,STATUS,IERROR)
- call MPI_Send(nss_all(1),icount,MPI_INTEGER,
- & Next,571,MPI_COMM_WORLD,IERROR)
- call MPI_Recv(ihpb_all(1,1),icount,MPI_INTEGER,
- & Previous,572,MPI_COMM_WORLD,STATUS,IERROR)
- call MPI_Send(ihpb_all(1,1),icount,MPI_INTEGER,
- & Next,572,MPI_COMM_WORLD,IERROR)
- call MPI_Recv(jhpb_all(1,1),icount,MPI_INTEGER,
- & Previous,573,MPI_COMM_WORLD,STATUS,IERROR)
- call MPI_Send(jhpb_all(1,1),icount,MPI_INTEGER,
- & Next,573,MPI_COMM_WORLD,IERROR)
- call MPI_Recv(rmstb(jj_old),icount,MPI_DOUBLE_PRECISION,
- & Previous,577,MPI_COMM_WORLD,STATUS,IERROR)
- call MPI_Send(rmstb(jj_old),icount,MPI_DOUBLE_PRECISION,
- & Next,577,MPI_COMM_WORLD,IERROR)
- call MPI_Recv(entfac(jj_old),icount,MPI_DOUBLE_PRECISION,
- & Previous,579,MPI_COMM_WORLD,STATUS,IERROR)
- call MPI_Send(entfac(jj_old),icount,MPI_DOUBLE_PRECISION,
- & Next,579,MPI_COMM_WORLD,IERROR)
- call MPI_Recv(allcart(1,1,1),3*icount*maxres2,
- & MPI_REAL,Previous,580,MPI_COMM_WORLD,STATUS,IERROR)
- call MPI_Send(allcart(1,1,1),3*icount*maxres2,
- & MPI_REAL,Next,580,MPI_COMM_WORLD,IERROR)
- jj=jj_old+icount-1
- call dawrite_ccoords(jj_old,jj,icbase)
- jj_old=jj+1
-#ifdef DEBUG
- write (iout,*) "Processor",me," received",icount," conformations"
- do i=1,icount
- write (iout,'(8f10.4)') (allcart(l,k,i),l=1,3,k=1,nres)
- write (iout,'(8f10.4)')((allcart(l,k,i+nres),l=1,3,k=nnt,nct)
- write (iout,'(e15.5,16i5)') entfac(i)
- enddo
-#endif
- enddo
- return
- end
-#endif
-c------------------------------------------------------------------------------
- subroutine daread_ccoords(istart_conf,iend_conf)
- implicit none
- include "DIMENSIONS"
- include "sizesclu.dat"
-#ifdef MPI
- include "mpif.h"
- include "COMMON.MPI"
-#endif
- include "COMMON.CHAIN"
- include "COMMON.CLUSTER"
- include "COMMON.IOUNITS"
- include "COMMON.INTERACT"
- include "COMMON.VAR"
- include "COMMON.SBRIDGE"
- include "COMMON.GEO"
- integer istart_conf,iend_conf
- integer i,j,ij,ii,iii
- integer len
- character*16 form,acc
- character*32 nam
-c
-c Read conformations off a DA scratchfile.
-c
-#ifdef DEBUG
- write (iout,*) "DAREAD_COORDS"
- write (iout,*) "istart_conf",istart_conf," iend_conf",iend_conf
- inquire(unit=icbase,name=nam,recl=len,form=form,access=acc)
- write (iout,*) "len=",len," form=",form," acc=",acc
- write (iout,*) "nam=",nam
- call flush(iout)
-#endif
- do ii=istart_conf,iend_conf
- ij = ii - istart_conf + 1
- iii=list_conf(ii)
-#ifdef DEBUG
- write (iout,*) "Reading binary file, record",iii," ii",ii
- call flush(iout)
-#endif
- read(icbase,rec=iii) ((allcart(j,i,ij),j=1,3),i=1,nres),
- & ((allcart(j,i,ij),j=1,3),i=nnt+nres,nct+nres),
- & nss_all(ij),(ihpb_all(i,ij),jhpb_all(i,ij),i=1,nss),
- & entfac(ii),rmstb(ii)
-#ifdef DEBUG
- write (iout,*) ii,iii,ij,entfac(ii)
- write (iout,'(8f10.5)') ((allcart(j,i,ij),j=1,3),i=1,nres)
- write (iout,'(8f10.4)') ((allcart(j,i,ij),j=1,3),
- & i=nnt+nres,nct+nres)
- write (iout,'(2e15.5)') entfac(ij)
- write (iout,'(16i5)') nss_all(ij),(ihpb_all(i,ij),
- & jhpb_all(i,ij),i=1,nss)
- call flush(iout)
-#endif
- enddo
- return
- end
-c------------------------------------------------------------------------------
- subroutine dawrite_ccoords(istart_conf,iend_conf,unit_out)
- implicit none
- include "DIMENSIONS"
- include "sizesclu.dat"
-#ifdef MPI
- include "mpif.h"
- include "COMMON.MPI"
-#endif
- include "COMMON.CHAIN"
- include "COMMON.INTERACT"
- include "COMMON.IOUNITS"
- include "COMMON.VAR"
- include "COMMON.SBRIDGE"
- include "COMMON.GEO"
- include "COMMON.CLUSTER"
- integer istart_conf,iend_conf
- integer i,j,ii,ij,iii,unit_out
- integer len
- character*16 form,acc
- character*32 nam
-c
-c Write conformations to a DA scratchfile.
-c
-#ifdef DEBUG
- write (iout,*) "DAWRITE_COORDS"
- write (iout,*) "istart_conf",istart_conf," iend_conf",iend_conf
- write (iout,*) "lenrec",lenrec
- inquire(unit=unit_out,name=nam,recl=len,form=form,access=acc)
- write (iout,*) "len=",len," form=",form," acc=",acc
- write (iout,*) "nam=",nam
- call flush(iout)
-#endif
- do ii=istart_conf,iend_conf
- iii=list_conf(ii)
- ij = ii - istart_conf + 1
-#ifdef DEBUG
- write (iout,*) "Writing binary file, record",iii," ii",ii
- call flush(iout)
-#endif
- write(unit_out,rec=iii) ((allcart(j,i,ij),j=1,3),i=1,nres),
- & ((allcart(j,i,ij),j=1,3),i=nnt+nres,nct+nres),
- & nss_all(ij),(ihpb_all(i,ij),jhpb_all(i,ij),i=1,nss_all(ij)),
- & entfac(ii),rmstb(ii)
-#ifdef DEBUG
- write (iout,'(8f10.5)') ((allcart(j,i,ij),j=1,3),i=1,nres)
- write (iout,'(8f10.4)') ((allcart(j,i,ij),j=1,3),i=nnt+nres,
- & nct+nres)
- write (iout,'(2e15.5)') entfac(ij)
- write (iout,'(16i5)') nss_all(ij),(ihpb(i,ij),jhpb(i,ij),i=1,
- & nss_all(ij))
- call flush(iout)
-#endif
- enddo
- return
- end
etheta=0.0D0
c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
do i=ithet_start,ithet_end
- if (itype(i-1).eq.21) cycle
+ if ((itype(i-1).eq.ntyp1).or.(itype(i-2).eq.ntyp1).or.
+ &(itype(i).eq.ntyp1)) cycle
dethetai=0.0d0
dephii=0.0d0
dephii1=0.0d0
coskt(k)=dcos(k*theti2)
sinkt(k)=dsin(k*theti2)
enddo
- if (i.gt.3 .and. itype(i-2).ne.21) then
+ if (i.gt.3 .and. itype(max0(i-3,1)).ne.ntyp1) then
#ifdef OSF
phii=phi(i)
if (phii.ne.phii) phii=150.0
enddo
else
phii=0.0d0
- ityp1=nthetyp+1
+ ityp1=ithetyp(itype(i-2))
do k=1,nsingle
cosph1(k)=0.0d0
sinph1(k)=0.0d0
enddo
endif
- if (i.lt.nres .and. itype(i).ne.21) then
+ if (i.lt.nres .and. itype(i+1).ne.ntyp1) then
#ifdef OSF
phii1=phi(i+1)
if (phii1.ne.phii1) phii1=150.0
enddo
else
phii1=0.0d0
- ityp3=nthetyp+1
+ ityp3=ithetyp(itype(i))
do k=1,nsingle
cosph2(k)=0.0d0
sinph2(k)=0.0d0
+++ /dev/null
-C Change 12/1/95 - common block CONTACTS1 included.
- integer ncont,ncont_ref,icont,icont_ref,num_cont,jcont
- double precision facont,gacont
- common /contacts/ ncont,ncont_ref,icont(2,maxcont),
- & icont_ref(2,maxcont)
- common /contacts1/ facont(maxconts,maxres),
- & gacont(3,maxconts,maxres),
- & num_cont(maxres),jcont(maxconts,maxres)
-C 12/26/95 - H-bonding contacts
- common /contacts_hb/
- & gacontp_hb1(3,maxconts,maxres),gacontp_hb2(3,maxconts,maxres),
- & gacontp_hb3(3,maxconts,maxres),
- & gacontm_hb1(3,maxconts,maxres),gacontm_hb2(3,maxconts,maxres),
- & gacontm_hb3(3,maxconts,maxres),
- & gacont_hbr(3,maxconts,maxres),
- & grij_hb_cont(3,maxconts,maxres),
- & facont_hb(maxconts,maxres),ees0p(maxconts,maxres),
- & ees0m(maxconts,maxres),d_cont(maxconts,maxres),
- & num_cont_hb(maxres),jcont_hb(maxconts,maxres)
-C 9/23/99 Added improper rotation matrices and matrices of dipole-dipole
-C interactions
-C Interactions of pseudo-dipoles generated by loc-el interactions.
- double precision dip,dipderg,dipderx
- common /dipint/ dip(4,maxconts,maxres),dipderg(4,maxconts,maxres),
- & dipderx(3,5,4,maxconts,maxres)
-C 10/30/99 Added other pre-computed vectors and matrices needed
-C to calculate three - six-order el-loc correlation terms
- double precision Ug,Ugder,Ug2,Ug2der,obrot,obrot2,obrot_der,
- & obrot2_der,Ub2,Ub2der,mu,muder,EUg,EUgder,CUg,CUgder,
- & DUg,DUgder,DtUg2,DtUg2der,Ctobr,Ctobrder,Dtobr2,Dtobr2der
- common /rotat/ Ug(2,2,maxres),Ugder(2,2,maxres),Ug2(2,2,maxres),
- & Ug2der(2,2,maxres),obrot(2,maxres),obrot2(2,maxres),
- & obrot_der(2,maxres),obrot2_der(2,maxres)
-C This common block contains vectors and matrices dependent on a single
-C amino-acid residue.
- common /precomp1/ Ub2(2,maxres),Ub2der(2,maxres),mu(2,maxres),
- & EUg(2,2,maxres),EUgder(2,2,maxres),CUg(2,2,maxres),
- & CUgder(2,2,maxres),DUg(2,2,maxres),Dugder(2,2,maxres),
- & DtUg2(2,2,maxres),DtUg2der(2,2,maxres),Ctobr(2,maxres),
- & Ctobrder(2,maxres),Dtobr2(2,maxres),Dtobr2der(2,maxres)
-C This common block contains vectors and matrices dependent on two
-C consecutive amino-acid residues.
- double precision Ug2Db1t,Ug2Db1tder,CUgb2,CUgb2der,EUgC,
- & EUgCder,EUgD,EUgDder,DtUg2EUg,DtUg2EUgder
- common /precomp2/ Ug2Db1t(2,maxres),Ug2Db1tder(2,maxres),
- & CUgb2(2,maxres),CUgb2der(2,maxres),EUgC(2,2,maxres),
- & EUgCder(2,2,maxres),EUgD(2,2,maxres),EUgDder(2,2,maxres),
- & DtUg2EUg(2,2,maxres),DtUg2EUgder(2,2,2,maxres),
- & Ug2DtEUg(2,2,maxres),Ug2DtEUgder(2,2,2,maxres)
- double precision costab,sintab,costab2,sintab2
- common /rotat_old/ costab(maxres),sintab(maxres),
- & costab2(maxres),sintab2(maxres),muder(2,maxres)
-C This common block contains dipole-interaction matrices and their
-C Cartesian derivatives.
- double precision a_chuj,a_chuj_der
- common /dipmat/ a_chuj(2,2,maxconts,maxres),
- & a_chuj_der(2,2,3,5,maxconts,maxres)
- double precision AEA,AEAderg,AEAderx,AECA,AECAderg,AECAderx,
- & ADtEA,ADtEAderg,ADtEAderx,AEAb1,AEAb1derg,AEAb1derx,
- & AEAb2,AEAb2derg,AEAb2derx
- common /diploc/ AEA(2,2,2),AEAderg(2,2,2),AEAderx(2,2,3,5,2,2),
- & EAEA(2,2,2), EAEAderg(2,2,2,2), EAEAderx(2,2,3,5,2,2),
- & AECA(2,2,2),AECAderg(2,2,2),AECAderx(2,2,3,5,2,2),
- & ADtEA(2,2,2),ADtEAderg(2,2,2,2),ADtEAderx(2,2,3,5,2,2),
- & ADtEA1(2,2,2),ADtEA1derg(2,2,2,2),ADtEA1derx(2,2,3,5,2,2),
- & AEAb1(2,2,2),AEAb1derg(2,2,2),AEAb1derx(2,3,5,2,2,2),
- & AEAb2(2,2,2),AEAb2derg(2,2,2,2),AEAb2derx(2,3,5,2,2,2),
- & g_contij(3,2),ekont
+++ /dev/null
-C-----------------------------------------------------------------------
-C The following COMMON block selects the type of the force field used in
-C calculations and defines weights of various energy terms.
-C 12/1/95 wcorr added
-C-----------------------------------------------------------------------
- double precision wsc,wscp,welec,wstrain,wtor,wtor_d,wang,wscloc,
- & wcorr,wcorr4,wcorr5,wcorr6,wsccor,wel_loc,wturn3,wturn4,
- & wturn6,wvdwpp,wbond,weights,scal14,cutoff_corr,delt_corr,
- & r0_corr
- integer ipot,n_ene_comp
- common /ffield/ wsc,wscp,welec,wstrain,wtor,wtor_d,wang,wscloc,
- & wcorr,wcorr4,wcorr5,wcorr6,wsccor,wel_loc,wturn3,wturn4,
- & wturn6,wvdwpp,wbond,weights(max_ene),
- & scal14,cutoff_corr,delt_corr,r0_corr,ipot,n_ene_comp
- common /potentials/ potname(5)
- character*3 potname
-C-----------------------------------------------------------------------
-C wlong,welec,wtor,wang,wscloc are the weight of the energy terms
-C corresponding to side-chain, electrostatic, torsional, valence-angle,
-C and local side-chain terms.
-C
-C IPOT determines which SC...SC interaction potential will be used:
-C 1 - LJ: 2n-n Lennard-Jones
-C 2 - LJK: 2n-n Kihara type (shifted Lennard-Jones)
-C 3 - BP; Berne-Pechukas (angular dependence)
-C 4 - GB; Gay-Berne (angular dependence)
-C 5 - GBV; Gay-Berne-Vorobjev; angularly-dependent Kihara potential
-C------------------------------------------------------------------------
+++ /dev/null
- character*3 restyp
- character*1 onelet
- common /names/ restyp(ntyp+1),onelet(ntyp+1)
- character*10 ename,wname
- integer nprint_ene,print_order
- common /namterm/ ename(max_ene),wname(max_ene),nprint_ene,
- & print_order(max_ene)
+++ /dev/null
- double precision ebr,d0cm,akcm,akth,akct,v1ss,v2ss,v3ss,dhpb,
- & forcon,weidis
- integer ns,nss,nfree,iss,ihpb,jhpb,nhpb,link_start,link_end
- common /sbridge/ ebr,d0cm,akcm,akth,akct,v1ss,v2ss,v3ss,ns,nss,
- & nfree,iss(maxss)
- common /links/ dhpb(maxdim),forcon(maxdim),ihpb(maxdim),
- & jhpb(maxdim),nhpb
- common /restraints/ weidis
- common /links_split/ link_start,link_end
+++ /dev/null
-C Parameters of the SCCOR term
- double precision v1sccor,v2sccor
- integer nterm_sccor
- common/torsion/v1sccor(maxterm_sccor,20,20),
- & v2sccor(maxterm_sccor,20,20),
- & nterm_sccor
nint_gr(i)=1
istart(i,1)=i+1
iend(i,1)=nct
- ind_scint=int_scint+nct-i
+ ind_scint=ind_scint+nct-i
#endif
endif
#ifdef MPL
logical printang(max_cut)
integer printpdb(max_cut)
integer printmol2(max_cut)
- character*240 lineh
+ character*240 lineh,scrachdir2d
REAL CRIT(maxconf),MEMBR(maxconf)
REAL CRITVAL(maxconf-1)
INTEGER IA(maxconf),IB(maxconf)
DIMENSION NN(maxconf),DISNN(maxconf)
LOGICAL FLAG(maxconf)
integer i,j,k,l,m,n,len,lev,idum,ii,ind,ioffset,jj,icut,ncon,
- & it,ncon_work,ind1
+ & it,ncon_work,ind1,ilen,is,ie
double precision t1,t2,tcpu,difconf
+ real diss_(maxdist)
double precision varia(maxvar)
double precision hrtime,mintime,sectime
logical eof
+ external ilen
#ifdef MPI
call MPI_Init( IERROR )
call MPI_Comm_rank( MPI_COMM_WORLD, me, IERROR )
c call flush(iout)
print *,'MAIN: nnt=',nnt,' nct=',nct
+ if (nclust.gt.0) then
+ PRINTANG(1)=.TRUE.
+ PRINTPDB(1)=outpdb
+ printmol2(1)=outmol2
+ ncut=0
+ else
DO I=1,NCUT
PRINTANG(I)=.FALSE.
PRINTPDB(I)=0
printmol2(i)=outmol2
ENDIF
ENDDO
+ endif
+ if (ncut.gt.0) then
write (iout,*) 'Number of cutoffs:',NCUT
write (iout,*) 'Cutoff values:'
DO ICUT=1,NCUT
WRITE(IOUT,'(8HRCUTOFF(,I2,2H)=,F8.1,2i2)')ICUT,RCUTOFF(ICUT),
& printpdb(icut),printmol2(icut)
ENDDO
+ else if (nclust.gt.0) then
+ write (iout,'("Number of clusters requested",i5)') nclust
+ else
+ if (me.eq.Master)
+ & write (iout,*) "ERROR: Either nclust or ncut must be >0"
+ stop
+ endif
DO I=1,NRES-3
MULT(I)=1
ENDDO
#ifdef MPI
call work_partition(.true.,ncon)
#endif
-
call probabl(iT,ncon_work,ncon,*20)
if (ncon_work.lt.2) then
if (ind.ge.indstart(me) .and. ind.le.indend(me)) then
#endif
ind1=ind1+1
+#ifdef MPI
+ DISS_(IND1)=DIFCONF(I,J)
+#else
DISS(IND1)=DIFCONF(I,J)
+#endif
c write (iout,'(2i4,i10,f10.5)') i,j,ind,DISS(IND)
#ifdef MPI
endif
PRINT '(a)','End of distance computation'
#ifdef MPI
- call MPI_Gatherv(diss(1),scount(me),MPI_REAL,diss(1),
+ call MPI_Gatherv(diss_(1),scount(me),MPI_REAL,diss(1),
& scount(0),idispl(0),MPI_REAL,Master,MPI_COMM_WORLD, IERROR)
if (me.eq.master) then
#endif
- open(80,file='/tmp/distance',form='unformatted')
+ scrachdir2d=scratchdir(:ilen(scratchdir))//'distance'
+ open(80,file=scrachdir2d,form='unformatted')
do i=1,ndis
write(80) diss(i)
enddo
CALL HCASS(N,IA,IB,CRIT,LEV,ICLASS,HVALS,IORDER,CRITVAL,HEIGHT)
c CALL HCDEN(LEV,IORDER,HEIGHT,CRITVAL)
+c 3/3/16 AL: added explicit number of cluters
+ if (nclust.gt.0) then
+ is=nclust-1
+ ie=nclust-1
+ icut=1
+ else
+ is=1
+ ie=lev-1
+ endif
do i=1,maxgr
licz(i)=0
enddo
icut=1
- i=1
- NGR=i+1
+ i=is
+ NGR=is+1
do j=1,n
licz(iclass(j,i))=licz(iclass(j,i))+1
nconf(iclass(j,i),licz(iclass(j,i)))=j
c write (iout,*) i,j,iclass(j,i),licz(iclass(j,i)),
c & nconf(iclass(j,i),licz(iclass(j,i)))
enddo
- do i=1,lev-1
-
+c do i=1,lev-1
+ do i=is,ie
idum=lev-i
DO L=1,LEV
IF (HEIGHT(L).EQ.IDUM) GOTO 190
ENDDO
190 IDUM=L
- write(IOUT,*) "i+1",i+1," idum",idum," critval",CRITVAL(IDUM),
- & " icut",icut," cutoff",rcutoff(icut)
- IF (CRITVAL(IDUM).LT. RCUTOFF(ICUT)) THEN
- WRITE (iout,'(/a,f10.5)') 'AT CUTOFF:',rcutoff(icut)
+c write(IOUT,*) "i+1",i+1," idum",idum," critval",CRITVAL(IDUM),
+c & " icut",icut," cutoff",rcutoff(icut)
+ IF (nclust.gt.0.or.CRITVAL(IDUM).LT. RCUTOFF(ICUT)) THEN
+ if (nclust.le.0)
+ & WRITE (iout,'(/a,f10.5)') 'AT CUTOFF:',rcutoff(icut)
write (iout,'(a,f8.2)') 'Maximum distance found:',
& CRITVAL(IDUM)
CALL SRTCLUST(ICUT,ncon_work,iT)
do l=1,maxgr
licz(l)=0
enddo
+ ii=i-is+1
do j=1,n
- licz(iclass(j,i))=licz(iclass(j,i))+1
- nconf(iclass(j,i),licz(iclass(j,i)))=j
+ licz(iclass(j,ii))=licz(iclass(j,ii))+1
+ nconf(iclass(j,ii),licz(iclass(j,ii)))=j
c write (iout,*) i,j,iclass(j,i),licz(iclass(j,i)),
c & nconf(iclass(j,i),licz(iclass(j,i)))
cd print *,j,iclass(j,i),
C
close(icbase,status="delete")
#ifdef MPI
- call MPI_Finalize(MPI_COMM_WORLD,IERROR)
+ call MPI_Finalize(IERROR)
#endif
stop '********** Program terminated normally.'
20 write (iout,*) "Error reading coordinates"
#ifdef MPI
- call MPI_Finalize(MPI_COMM_WORLD,IERROR)
+ call MPI_Finalize(IERROR)
#endif
stop
30 write (iout,*) "Error reading reference structure"
#ifdef MPI
- call MPI_Finalize(MPI_COMM_WORLD,IERROR)
+ call MPI_Finalize(IERROR)
#endif
stop
end
close (isccor)
if (lprint) then
write (iout,'(/a/)') 'Torsional constants of SCCORR:'
+ do l=1,maxinter
do i=1,nsccortyp
do j=1,nsccortyp
write (iout,*) 'ityp',i,' jtyp',j
enddo
enddo
enddo
+ enddo
endif
C
C 9/18/99 (AL) Read coefficients of the Fourier expansion of the local
character*5 ctemper
integer ilen
external ilen
- real*4 Fdimless(maxconf)
+ real*4 Fdimless(maxconf),Fdimless_(maxconf)
double precision energia(0:max_ene)
+ double precision totfree_(maxconf),entfac_(maxconf)
do i=1,ncon
list_conf(i)=i
enddo
c call enerprint(energia(0),fT)
c call pdbout(totfree(i),16,i)
#ifdef DEBUG
- write (iout,*) i," energia",(energia(j),j=0,19)
+ write (iout,*) i," energia",(energia(j),j=0,max_ene)
write (iout,*) "etot", etot
write (iout,*) "ft(6)", ft(6)
#endif
estr=enetb(18,i)
esccor=enetb(19,i)
edihcnstr=enetb(20,i)
+ evdw_t=enetb(21,i)
c#ifdef SPLITELE
c etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+
c &ft(1)*welec*ees+wvdwpp*evdw1
write (iout,*) "evdw1", wvdwpp,evdw1
write (iout,*) "ebe" ebe,wang
#endif
+#ifdef MPI
+ Fdimless_(i)=beta_h(ib)*etot+entfac(ii)
+ totfree_(i)=etot
+#else
Fdimless(i)=beta_h(ib)*etot+entfac(ii)
totfree(i)=etot
+#endif
#ifdef DEBUG
write (iout,*) "fdim calc", i,ii,ib,
& 1.0d0/(1.987d-3*beta_h(ib)),totfree(i),
#endif
enddo ! i
#ifdef MPI
- call MPI_Gatherv(Fdimless(1),scount(me),
+ call MPI_Gatherv(Fdimless_(1),scount(me),
& MPI_REAL,Fdimless(1),
& scount(0),idispl(0),MPI_REAL,Master,
& MPI_COMM_WORLD, IERROR)
- call MPI_Gatherv(totfree(1),scount(me),
+ call MPI_Gatherv(totfree_(1),scount(me),
& MPI_DOUBLE_PRECISION,totfree(1),
& scount(0),idispl(0),MPI_DOUBLE_PRECISION,Master,
& MPI_COMM_WORLD, IERROR)
call MPI_Gatherv(entfac(indstart(me)+1),scount(me),
- & MPI_DOUBLE_PRECISION,entfac(1),
+ & MPI_DOUBLE_PRECISION,entfac_(1),
& scount(0),idispl(0),MPI_DOUBLE_PRECISION,Master,
& MPI_COMM_WORLD, IERROR)
if (me.eq.Master) then
+ do i=1,ncon
+ entfac(i)=entfac_(i)
+ enddo
#endif
#ifdef DEBUG
write (iout,*) "The FDIMLESS array before sorting"
enddo
enddo
else
+ itmp=0
#if (defined(AIX) && !defined(JUBL))
call xdrf3dfcoord_(ixdrf, csingle, itmp, prec, iret)
if (iret.eq.0) goto 101
min_var=(index(controlcard,'MINVAR').gt.0)
plot_tree=(index(controlcard,'PLOT_TREE').gt.0)
punch_dist=(index(controlcard,'PUNCH_DIST').gt.0)
- call readi(controlcard,'NCUT',ncut,1)
+ call readi(controlcard,'NCUT',ncut,0)
+ call readi(controlcard,'NCLUST',nclust,5)
call readi(controlcard,'SYM',symetr,1)
write (iout,*) 'sym', symetr
call readi(controlcard,'NSTART',nstart,0)
lgrp=(index(controlcard,'LGRP').gt.0)
caonly=(index(controlcard,'CA_ONLY').gt.0)
print_dist=(index(controlcard,'PRINT_DIST').gt.0)
- call multreada(controlcard,'CUTOFF',rcutoff,ncut,-1.0d0)
+ if (ncut.gt.0)
+ & call multreada(controlcard,'CUTOFF',rcutoff,ncut,-1.0d0)
call readi(controlcard,'IOPT',iopt,2)
lside = index(controlcard,"SIDE").gt.0
efree = index(controlcard,"EFREE").gt.0
do i=1,nres
itype(i)=rescode(i,sequence(i),iscode)
enddo
+ if (itype(2).eq.10.and.itype(1).eq.ntyp1) then
+ write (iout,*)
+ & "Glycine is the first full residue, initial dummy deleted"
+ do i=1,nres
+ itype(i)=itype(i+1)
+ enddo
+ nres=nres-1
+ endif
+ if (itype(nres-1).eq.10.and.itype(nres).eq.ntyp1) then
+ write (iout,*)
+ & "Glycine is the last full residue, terminal dummy deleted"
+ nres=nres-1
+ endif
print *,nres
print '(20i4)',(itype(i),i=1,nres)
* Max. number of conformations in the data set.
*
integer maxconf,maxstr_proc
- PARAMETER (MAXCONF=13000)
- parameter (maxstr_proc=maxconf/2)
+ PARAMETER (MAXCONF=7500)
+ parameter (maxstr_proc=maxconf/4)
*
* Max. number of "distances" between conformations.
*
ave_dim=0.0
amax_dim=0.0
c write (iout,*) "ecut",ecut
+ emin=totfree(nconf(igr,1))
+c write (2,*) "emin",emin," ecut",ecut
do i=2,licz(igr)
ii=nconf(igr,i)
+c write (2,*) " igr",igr," i",i," ii",ii," totfree",totfree(ii),
+c & " emin",emin," diff",totfree(ii)-emin," ecut",ecut
if (totfree(ii)-emin .gt. ecut) goto 10
do j=1,i-1
jj=nconf(igr,j)
- if (jj.eq.1) exit
+c if (jj.eq.1) exit
if (ii.lt.jj) then
ind=ioffset(ncon,ii,jj)
else
& '; average distance in the family:',ave_dim
rmsave(igr)=0.0d0
qpart=0.0d0
+ emin=totfree(nconf(igr,1))
do i=1,licz(igr)
icon=nconf(igr,i)
- boltz=dexp(-totfree(icon))
+ boltz=dexp(-totfree(icon)+emin)
+c write (2,*) "igr",igr," i",i," icon",icon," totfree",
+c & totfree(icon)," emin",emin," boltz",boltz," rms",rmstb(icon)
rmsave(igr)=rmsave(igr)+boltz*rmstb(icon)
qpart=qpart+boltz
enddo
c write (iout,*) i,ncon_out,nconf(i,ncon_out),
c & totfree(nconf(i,ncon_out)),emin1,ecut
enddo
- write (iout,*) "ncon_out",ncon_out
+c write (iout,*) "ncon_out",ncon_out
call flush(iout)
do j=1,nres
tempfac(1,j)=5.0d0
--- /dev/null
+../../../lib/xdrf
\ No newline at end of file
+++ /dev/null
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC = gcc
-CFLAGS = -O
-
-M4 = m4
-M4FILE = underscore.m4
-
-libxdrf.a: libxdrf.o ftocstr.o
- ar cr libxdrf.a $?
-
-clean:
- rm -f libxdrf.o ftocstr.o libxdrf.a
-
-ftocstr.o: ftocstr.c
- $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o: libxdrf.m4 $(M4FILE)
- $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
- $(CC) $(CFLAGS) -c libxdrf.c
- rm -f libxdrf.c
-
+++ /dev/null
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = /usr/bin/blrts_xlc
-CPPC = /usr/bin/blrts_xlc
-
-CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
-
-M4 = m4
-M4FILE = RS6K.m4
-
-libxdrf.a: libxdrf.o ftocstr.o xdr_array.o xdr.o xdr_float.o xdr_stdio.o
- ar cr libxdrf.a $?
-
-clean:
- rm -f *.o libxdrf.a
-
-ftocstr.o: ftocstr.c
- $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o: libxdrf.m4 $(M4FILE)
- $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
- $(CC) $(CFLAGS) -c libxdrf.c
-# rm -f libxdrf.c
-
+++ /dev/null
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC = cc
-CFLAGS = -O
-
-M4 = m4
-M4FILE = underscore.m4
-
-libxdrf.a: libxdrf.o ftocstr.o
- ar cr libxdrf.a $?
-
-clean:
- rm -f libxdrf.o ftocstr.o libxdrf.a
-
-ftocstr.o: ftocstr.c
- $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o: libxdrf.m4 $(M4FILE)
- $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
- $(CC) $(CFLAGS) -c libxdrf.c
- rm -f libxdrf.c
-
+++ /dev/null
-divert(-1)
-undefine(`len')
-#
-# do nothing special to FORTRAN function names
-#
-define(`FUNCTION',`$1')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
-
+++ /dev/null
-
-
-int ftocstr(ds, dl, ss, sl)
- char *ds, *ss; /* dst, src ptrs */
- int dl; /* dst max len */
- int sl; /* src len */
-{
- char *p;
-
- for (p = ss + sl; --p >= ss && *p == ' '; ) ;
- sl = p - ss + 1;
- dl--;
- ds[0] = 0;
- if (sl > dl)
- return 1;
- while (sl--)
- (*ds++ = *ss++);
- *ds = '\0';
- return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
- char *ds; /* dest space */
- int dl; /* max dest length */
- char *ss; /* src string (0-term) */
-{
- while (dl && *ss) {
- *ds++ = *ss++;
- dl--;
- }
- while (dl--)
- *ds++ = ' ';
- return 0;
-}
+++ /dev/null
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- | are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- | xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- | character *(*) filename
- | character *(*) mode
- |
- | this will open the file with the given filename (string)
- | and the given mode, it returns an id in xdrid, which is
- | to be used in all other calls to xdrf routines.
- | mode is 'w' to create, or update an file, for all other
- | values of mode the file is opened for reading
- |
- | you need to call xdrfclose to flush the output and close
- | the file.
- | Note that you should not use xdrstdio_create, which comes with the
- | standard xdr library
- |
- | xdrfclose(xdrid, ret)
- | flush the data to the file, and closes the file;
- | You should not use xdr_destroy (which comes standard with
- | the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- | integer pb
- |
- | This filter produces values of either 1 or 0
- |
- | xdrfchar(xdrid, cp, ret)
- | character cp
- |
- | filter that translate between characters and their xdr representation
- | Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- | double dp
- |
- | read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- | float fp
- |
- | read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- | integer ip
- |
- | read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- | integer lp
- |
- | this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- | integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- | character *(*)
- | integer maxsize
- |
- | read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- | character *(*)
- |
- | read/write a string (it is the same as xdrfstring accept that it finds
- | the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- | character *(*)
- | integer size
- | external xdrfproc
- |
- | read/write an array pointed to by cp, with number of elements
- | defined by 'size'. the routine 'xdrfproc' is the name
- | of one of the above routines to read/write data (like xdrfdouble)
- | In contrast with the c-version you don't need to specify the
- | byte size of an element.
- | xdrfstring is not allowed here (it is in the c version)
- |
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- | real (*) fp
- | real precision
- | integer size
- |
- | this is *NOT* a standard xdr routine. I named it this way, because
- | it invites people to use the other xdr routines.
- | It is introduced to store specifically 3d coordinates of molecules
- | (as found in molecular dynamics) and it writes it in a compressed way.
- | It starts by multiplying all numbers by precision and
- | rounding the result to integer. effectively converting
- | all floating point numbers to fixed point.
- | it uses an algorithm for compression that is optimized for
- | molecular data, but could be used for other 3d coordinates
- | as well. There is subtantial overhead involved, so call this
- | routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- | This will open the file with the given filename and the
- | given mode. You should pass it an allocated XDR struct
- | in xdrs, to be used in all other calls to xdr routines.
- | Mode is 'w' to create, or update an file, and for all
- | other values of mode the file is opened for reading.
- | You need to call xdrclose to flush the output and close
- | the file.
- |
- | Note that you should not use xdrstdio_create, which
- | comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- | Flush the data to the file, and close the file;
- | You should not use xdr_destroy (which comes standard
- | with the xdr libraries).
- |
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- | This is \fInot\fR a standard xdr routine. I named it this
- | way, because it invites people to use the other xdr
- | routines.
- |
- | (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
- *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
- cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
- *ret = xdr_char(xdridptr[*xdrid], cp);
- cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
- *ret = xdr_double(xdridptr[*xdrid], dp);
- cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
- *ret = xdr_float(xdridptr[*xdrid], fp);
- cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
- *ret = xdr_int(xdridptr[*xdrid], ip);
- cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
- *ret = xdr_long(xdridptr[*xdrid], lp);
- cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
- *ret = xdr_short(xdridptr[*xdrid], sp);
- cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
- *ret = xdr_u_char(xdridptr[*xdrid], ucp);
- cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
- *ret = xdr_u_long(xdridptr[*xdrid], ulp);
- cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
- *ret = xdr_u_short(xdridptr[*xdrid], usp);
- cnt += sizeof(unsigned short);
-}
-
-void
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
- *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
- char *tsp;
-
- tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
- if (tsp == NULL) {
- *ret = -1;
- return;
- }
- if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
- *ret = -1;
- free(tsp);
- return;
- }
- *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
- ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
- cnt += *maxsize;
- free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid, STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
- char *tsp;
- int maxsize;
- maxsize = (STRING_LEN(sp)) + 1;
- tsp = (char*) malloc(maxsize * sizeof(char));
- if (tsp == NULL) {
- *ret = -1;
- return;
- }
- if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
- *ret = -1;
- free(tsp);
- return;
- }
- *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
- ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
- cnt += maxsize;
- free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
- *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
- cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
- *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
- *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
- int lcnt;
- cnt = 0;
- for (lcnt = 0; lcnt < *size; lcnt++) {
- elproc(xdrid, (cp+cnt) , ret);
- }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
- *ret = xdrclose(xdridptr[*xdrid]);
- cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid, STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
- char fname[512];
- char fmode[3];
-
- if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
- *ret = 0;
- }
- if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
- STRING_LEN(mode))) {
- *ret = 0;
- }
-
- *xdrid = xdropen(NULL, fname, fmode);
- if (*xdrid == 0)
- *ret = 0;
- else
- *ret = 1;
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
- 80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
- 812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
- 8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
- 82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
- 832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
- 8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
- static int init_done = 0;
- enum xdr_op lmode;
- const char *type1;
- int xdrid;
-
- if (init_done == 0) {
- for (xdrid = 1; xdrid < MAXID; xdrid++) {
- xdridptr[xdrid] = NULL;
- }
- init_done = 1;
- }
- xdrid = 1;
- while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
- xdrid++;
- }
- if (xdrid == MAXID) {
- return 0;
- }
- if (*type == 'w' || *type == 'W') {
- type = "w+";
- type1 = "w+";
- lmode = XDR_ENCODE;
- } else if (*type == 'a' || *type == 'A') {
- type = "w+";
- type1 = "a+";
- lmode = XDR_ENCODE;
- } else {
- type = "r";
- type1 = "r";
- lmode = XDR_DECODE;
- }
- xdrfiles[xdrid] = fopen(filename, type1);
- if (xdrfiles[xdrid] == NULL) {
- xdrs = NULL;
- return 0;
- }
- xdrmodes[xdrid] = *type;
- /* next test isn't usefull in the case of C language
- * but is used for the Fortran interface
- * (C users are expected to pass the address of an already allocated
- * XDR staructure)
- */
- if (xdrs == NULL) {
- xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
- xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
- } else {
- xdridptr[xdrid] = xdrs;
- xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
- }
- return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-
-int xdrclose(XDR *xdrs) {
- int xdrid;
-
- if (xdrs == NULL) {
- fprintf(stderr, "xdrclose: passed a NULL pointer\n");
- exit(1);
- }
- for (xdrid = 1; xdrid < MAXID; xdrid++) {
- if (xdridptr[xdrid] == xdrs) {
-
- xdr_destroy(xdrs);
- fclose(xdrfiles[xdrid]);
- xdridptr[xdrid] = NULL;
- return 1;
- }
- }
- fprintf(stderr, "xdrclose: no such open xdr file\n");
- exit(1);
-
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-
- unsigned int cnt, lastbyte;
- int lastbits;
- unsigned char * cbuf;
-
- cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
- cnt = (unsigned int) buf[0];
- lastbits = buf[1];
- lastbyte =(unsigned int) buf[2];
- while (num_of_bits >= 8) {
- lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
- cbuf[cnt++] = lastbyte >> lastbits;
- num_of_bits -= 8;
- }
- if (num_of_bits > 0) {
- lastbyte = (lastbyte << num_of_bits) | num;
- lastbits += num_of_bits;
- if (lastbits >= 8) {
- lastbits -= 8;
- cbuf[cnt++] = lastbyte >> lastbits;
- }
- }
- buf[0] = cnt;
- buf[1] = lastbits;
- buf[2] = lastbyte;
- if (lastbits>0) {
- cbuf[cnt] = lastbyte << (8 - lastbits);
- }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
- unsigned int num = 1;
- int num_of_bits = 0;
-
- while (size >= num && num_of_bits < 32) {
- num_of_bits++;
- num <<= 1;
- }
- return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
- int i, num;
- unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
- num_of_bytes = 1;
- bytes[0] = 1;
- num_of_bits = 0;
- for (i=0; i < num_of_ints; i++) {
- tmp = 0;
- for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
- tmp = bytes[bytecnt] * sizes[i] + tmp;
- bytes[bytecnt] = tmp & 0xff;
- tmp >>= 8;
- }
- while (tmp != 0) {
- bytes[bytecnt++] = tmp & 0xff;
- tmp >>= 8;
- }
- num_of_bytes = bytecnt;
- }
- num = 1;
- num_of_bytes--;
- while (bytes[num_of_bytes] >= num) {
- num_of_bits++;
- num *= 2;
- }
- return num_of_bits + num_of_bytes * 8;
-
-}
-
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer.
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
- unsigned int sizes[], unsigned int nums[]) {
-
- int i;
- unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
- tmp = nums[0];
- num_of_bytes = 0;
- do {
- bytes[num_of_bytes++] = tmp & 0xff;
- tmp >>= 8;
- } while (tmp != 0);
-
- for (i = 1; i < num_of_ints; i++) {
- if (nums[i] >= sizes[i]) {
- fprintf(stderr,"major breakdown in sendints num %d doesn't "
- "match size %d\n", nums[i], sizes[i]);
- exit(1);
- }
- /* use one step multiply */
- tmp = nums[i];
- for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
- tmp = bytes[bytecnt] * sizes[i] + tmp;
- bytes[bytecnt] = tmp & 0xff;
- tmp >>= 8;
- }
- while (tmp != 0) {
- bytes[bytecnt++] = tmp & 0xff;
- tmp >>= 8;
- }
- num_of_bytes = bytecnt;
- }
- if (num_of_bits >= num_of_bytes * 8) {
- for (i = 0; i < num_of_bytes; i++) {
- sendbits(buf, 8, bytes[i]);
- }
- sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
- } else {
- for (i = 0; i < num_of_bytes-1; i++) {
- sendbits(buf, 8, bytes[i]);
- }
- sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
- }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- |
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
- int cnt, num;
- unsigned int lastbits, lastbyte;
- unsigned char * cbuf;
- int mask = (1 << num_of_bits) -1;
-
- cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
- cnt = buf[0];
- lastbits = (unsigned int) buf[1];
- lastbyte = (unsigned int) buf[2];
-
- num = 0;
- while (num_of_bits >= 8) {
- lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
- num |= (lastbyte >> lastbits) << (num_of_bits - 8);
- num_of_bits -=8;
- }
- if (num_of_bits > 0) {
- if (lastbits < num_of_bits) {
- lastbits += 8;
- lastbyte = (lastbyte << 8) | cbuf[cnt++];
- }
- lastbits -= num_of_bits;
- num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
- }
- num &= mask;
- buf[0] = cnt;
- buf[1] = lastbits;
- buf[2] = lastbyte;
- return num;
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
- unsigned int sizes[], int nums[]) {
- int bytes[32];
- int i, j, num_of_bytes, p, num;
-
- bytes[1] = bytes[2] = bytes[3] = 0;
- num_of_bytes = 0;
- while (num_of_bits > 8) {
- bytes[num_of_bytes++] = receivebits(buf, 8);
- num_of_bits -= 8;
- }
- if (num_of_bits > 0) {
- bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
- }
- for (i = num_of_ints-1; i > 0; i--) {
- num = 0;
- for (j = num_of_bytes-1; j >=0; j--) {
- num = (num << 8) | bytes[j];
- p = num / sizes[i];
- bytes[j] = p;
- num = num - p * sizes[i];
- }
- nums[i] = num;
- }
- nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-
-
- static int *ip = NULL;
- static int oldsize;
- static int *buf;
-
- int minint[3], maxint[3], mindiff, *lip, diff;
- int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
- int minidx, maxidx;
- unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
- int flag, k;
- int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
- float *lfp, lf;
- int tmp, *thiscoord, prevcoord[3];
- unsigned int tmpcoord[30];
-
- int bufsize, xdrid, lsize;
- unsigned int bitsize;
- float inv_precision;
- int errval = 1;
-
- /* find out if xdrs is opened for reading or for writing */
- xdrid = 0;
- while (xdridptr[xdrid] != xdrs) {
- xdrid++;
- if (xdrid >= MAXID) {
- fprintf(stderr, "xdr error. no open xdr stream\n");
- exit (1);
- }
- }
- if (xdrmodes[xdrid] == 'w') {
-
- /* xdrs is open for writing */
-
- if (xdr_int(xdrs, size) == 0)
- return 0;
- size3 = *size * 3;
- /* when the number of coordinates is small, don't try to compress; just
- * write them as floats using xdr_vector
- */
- if (*size <= 9 ) {
- return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
- (xdrproc_t)xdr_float));
- }
-
- xdr_float(xdrs, precision);
- if (ip == NULL) {
- ip = (int *)malloc(size3 * sizeof(*ip));
- if (ip == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- bufsize = size3 * 1.2;
- buf = (int *)malloc(bufsize * sizeof(*buf));
- if (buf == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- oldsize = *size;
- } else if (*size > oldsize) {
- ip = (int *)realloc(ip, size3 * sizeof(*ip));
- if (ip == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- bufsize = size3 * 1.2;
- buf = (int *)realloc(buf, bufsize * sizeof(*buf));
- if (buf == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- oldsize = *size;
- }
- /* buf[0-2] are special and do not contain actual data */
- buf[0] = buf[1] = buf[2] = 0;
- minint[0] = minint[1] = minint[2] = INT_MAX;
- maxint[0] = maxint[1] = maxint[2] = INT_MIN;
- prevrun = -1;
- lfp = fp;
- lip = ip;
- mindiff = INT_MAX;
- oldlint1 = oldlint2 = oldlint3 = 0;
- while(lfp < fp + size3 ) {
- /* find nearest integer */
- if (*lfp >= 0.0)
- lf = *lfp * *precision + 0.5;
- else
- lf = *lfp * *precision - 0.5;
- if (fabs(lf) > MAXABS) {
- /* scaling would cause overflow */
- errval = 0;
- }
- lint1 = lf;
- if (lint1 < minint[0]) minint[0] = lint1;
- if (lint1 > maxint[0]) maxint[0] = lint1;
- *lip++ = lint1;
- lfp++;
- if (*lfp >= 0.0)
- lf = *lfp * *precision + 0.5;
- else
- lf = *lfp * *precision - 0.5;
- if (fabs(lf) > MAXABS) {
- /* scaling would cause overflow */
- errval = 0;
- }
- lint2 = lf;
- if (lint2 < minint[1]) minint[1] = lint2;
- if (lint2 > maxint[1]) maxint[1] = lint2;
- *lip++ = lint2;
- lfp++;
- if (*lfp >= 0.0)
- lf = *lfp * *precision + 0.5;
- else
- lf = *lfp * *precision - 0.5;
- if (fabs(lf) > MAXABS) {
- /* scaling would cause overflow */
- errval = 0;
- }
- lint3 = lf;
- if (lint3 < minint[2]) minint[2] = lint3;
- if (lint3 > maxint[2]) maxint[2] = lint3;
- *lip++ = lint3;
- lfp++;
- diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
- if (diff < mindiff && lfp > fp + 3)
- mindiff = diff;
- oldlint1 = lint1;
- oldlint2 = lint2;
- oldlint3 = lint3;
- }
- xdr_int(xdrs, &(minint[0]));
- xdr_int(xdrs, &(minint[1]));
- xdr_int(xdrs, &(minint[2]));
-
- xdr_int(xdrs, &(maxint[0]));
- xdr_int(xdrs, &(maxint[1]));
- xdr_int(xdrs, &(maxint[2]));
-
- if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
- (float)maxint[1] - (float)minint[1] >= MAXABS ||
- (float)maxint[2] - (float)minint[2] >= MAXABS) {
- /* turning value in unsigned by subtracting minint
- * would cause overflow
- */
- errval = 0;
- }
- sizeint[0] = maxint[0] - minint[0]+1;
- sizeint[1] = maxint[1] - minint[1]+1;
- sizeint[2] = maxint[2] - minint[2]+1;
-
- /* check if one of the sizes is to big to be multiplied */
- if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
- bitsizeint[0] = sizeofint(sizeint[0]);
- bitsizeint[1] = sizeofint(sizeint[1]);
- bitsizeint[2] = sizeofint(sizeint[2]);
- bitsize = 0; /* flag the use of large sizes */
- } else {
- bitsize = sizeofints(3, sizeint);
- }
- lip = ip;
- luip = (unsigned int *) ip;
- smallidx = FIRSTIDX;
- while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
- smallidx++;
- }
- xdr_int(xdrs, &smallidx);
- maxidx = MIN(LASTIDX, smallidx + 8) ;
- minidx = maxidx - 8; /* often this equal smallidx */
- smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
- small = magicints[smallidx] / 2;
- sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
- larger = magicints[maxidx] / 2;
- i = 0;
- while (i < *size) {
- is_small = 0;
- thiscoord = (int *)(luip) + i * 3;
- if (smallidx < maxidx && i >= 1 &&
- abs(thiscoord[0] - prevcoord[0]) < larger &&
- abs(thiscoord[1] - prevcoord[1]) < larger &&
- abs(thiscoord[2] - prevcoord[2]) < larger) {
- is_smaller = 1;
- } else if (smallidx > minidx) {
- is_smaller = -1;
- } else {
- is_smaller = 0;
- }
- if (i + 1 < *size) {
- if (abs(thiscoord[0] - thiscoord[3]) < small &&
- abs(thiscoord[1] - thiscoord[4]) < small &&
- abs(thiscoord[2] - thiscoord[5]) < small) {
- /* interchange first with second atom for better
- * compression of water molecules
- */
- tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
- thiscoord[3] = tmp;
- tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
- thiscoord[4] = tmp;
- tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
- thiscoord[5] = tmp;
- is_small = 1;
- }
-
- }
- tmpcoord[0] = thiscoord[0] - minint[0];
- tmpcoord[1] = thiscoord[1] - minint[1];
- tmpcoord[2] = thiscoord[2] - minint[2];
- if (bitsize == 0) {
- sendbits(buf, bitsizeint[0], tmpcoord[0]);
- sendbits(buf, bitsizeint[1], tmpcoord[1]);
- sendbits(buf, bitsizeint[2], tmpcoord[2]);
- } else {
- sendints(buf, 3, bitsize, sizeint, tmpcoord);
- }
- prevcoord[0] = thiscoord[0];
- prevcoord[1] = thiscoord[1];
- prevcoord[2] = thiscoord[2];
- thiscoord = thiscoord + 3;
- i++;
-
- run = 0;
- if (is_small == 0 && is_smaller == -1)
- is_smaller = 0;
- while (is_small && run < 8*3) {
- if (is_smaller == -1 && (
- SQR(thiscoord[0] - prevcoord[0]) +
- SQR(thiscoord[1] - prevcoord[1]) +
- SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
- is_smaller = 0;
- }
-
- tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
- tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
- tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-
- prevcoord[0] = thiscoord[0];
- prevcoord[1] = thiscoord[1];
- prevcoord[2] = thiscoord[2];
-
- i++;
- thiscoord = thiscoord + 3;
- is_small = 0;
- if (i < *size &&
- abs(thiscoord[0] - prevcoord[0]) < small &&
- abs(thiscoord[1] - prevcoord[1]) < small &&
- abs(thiscoord[2] - prevcoord[2]) < small) {
- is_small = 1;
- }
- }
- if (run != prevrun || is_smaller != 0) {
- prevrun = run;
- sendbits(buf, 1, 1); /* flag the change in run-length */
- sendbits(buf, 5, run+is_smaller+1);
- } else {
- sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
- }
- for (k=0; k < run; k+=3) {
- sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);
- }
- if (is_smaller != 0) {
- smallidx += is_smaller;
- if (is_smaller < 0) {
- small = smaller;
- smaller = magicints[smallidx-1] / 2;
- } else {
- smaller = small;
- small = magicints[smallidx] / 2;
- }
- sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
- }
- }
- if (buf[1] != 0) buf[0]++;;
- xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
- return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
- } else {
-
- /* xdrs is open for reading */
-
- if (xdr_int(xdrs, &lsize) == 0)
- return 0;
- if (*size != 0 && lsize != *size) {
- fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
- "%d arg vs %d in file", *size, lsize);
- }
- *size = lsize;
- size3 = *size * 3;
- if (*size <= 9) {
- return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
- (xdrproc_t)xdr_float));
- }
- xdr_float(xdrs, precision);
- if (ip == NULL) {
- ip = (int *)malloc(size3 * sizeof(*ip));
- if (ip == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- bufsize = size3 * 1.2;
- buf = (int *)malloc(bufsize * sizeof(*buf));
- if (buf == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- oldsize = *size;
- } else if (*size > oldsize) {
- ip = (int *)realloc(ip, size3 * sizeof(*ip));
- if (ip == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- bufsize = size3 * 1.2;
- buf = (int *)realloc(buf, bufsize * sizeof(*buf));
- if (buf == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- oldsize = *size;
- }
- buf[0] = buf[1] = buf[2] = 0;
-
- xdr_int(xdrs, &(minint[0]));
- xdr_int(xdrs, &(minint[1]));
- xdr_int(xdrs, &(minint[2]));
-
- xdr_int(xdrs, &(maxint[0]));
- xdr_int(xdrs, &(maxint[1]));
- xdr_int(xdrs, &(maxint[2]));
-
- sizeint[0] = maxint[0] - minint[0]+1;
- sizeint[1] = maxint[1] - minint[1]+1;
- sizeint[2] = maxint[2] - minint[2]+1;
-
- /* check if one of the sizes is to big to be multiplied */
- if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
- bitsizeint[0] = sizeofint(sizeint[0]);
- bitsizeint[1] = sizeofint(sizeint[1]);
- bitsizeint[2] = sizeofint(sizeint[2]);
- bitsize = 0; /* flag the use of large sizes */
- } else {
- bitsize = sizeofints(3, sizeint);
- }
-
- xdr_int(xdrs, &smallidx);
- maxidx = MIN(LASTIDX, smallidx + 8) ;
- minidx = maxidx - 8; /* often this equal smallidx */
- smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
- small = magicints[smallidx] / 2;
- sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
- larger = magicints[maxidx];
-
- /* buf[0] holds the length in bytes */
-
- if (xdr_int(xdrs, &(buf[0])) == 0)
- return 0;
- if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
- return 0;
- buf[0] = buf[1] = buf[2] = 0;
-
- lfp = fp;
- inv_precision = 1.0 / * precision;
- run = 0;
- i = 0;
- lip = ip;
- while ( i < lsize ) {
- thiscoord = (int *)(lip) + i * 3;
-
- if (bitsize == 0) {
- thiscoord[0] = receivebits(buf, bitsizeint[0]);
- thiscoord[1] = receivebits(buf, bitsizeint[1]);
- thiscoord[2] = receivebits(buf, bitsizeint[2]);
- } else {
- receiveints(buf, 3, bitsize, sizeint, thiscoord);
- }
-
- i++;
- thiscoord[0] += minint[0];
- thiscoord[1] += minint[1];
- thiscoord[2] += minint[2];
-
- prevcoord[0] = thiscoord[0];
- prevcoord[1] = thiscoord[1];
- prevcoord[2] = thiscoord[2];
-
-
- flag = receivebits(buf, 1);
- is_smaller = 0;
- if (flag == 1) {
- run = receivebits(buf, 5);
- is_smaller = run % 3;
- run -= is_smaller;
- is_smaller--;
- }
- if (run > 0) {
- thiscoord += 3;
- for (k = 0; k < run; k+=3) {
- receiveints(buf, 3, smallidx, sizesmall, thiscoord);
- i++;
- thiscoord[0] += prevcoord[0] - small;
- thiscoord[1] += prevcoord[1] - small;
- thiscoord[2] += prevcoord[2] - small;
- if (k == 0) {
- /* interchange first with second atom for better
- * compression of water molecules
- */
- tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
- prevcoord[0] = tmp;
- tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
- prevcoord[1] = tmp;
- tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
- prevcoord[2] = tmp;
- *lfp++ = prevcoord[0] * inv_precision;
- *lfp++ = prevcoord[1] * inv_precision;
- *lfp++ = prevcoord[2] * inv_precision;
- } else {
- prevcoord[0] = thiscoord[0];
- prevcoord[1] = thiscoord[1];
- prevcoord[2] = thiscoord[2];
- }
- *lfp++ = thiscoord[0] * inv_precision;
- *lfp++ = thiscoord[1] * inv_precision;
- *lfp++ = thiscoord[2] * inv_precision;
- }
- } else {
- *lfp++ = thiscoord[0] * inv_precision;
- *lfp++ = thiscoord[1] * inv_precision;
- *lfp++ = thiscoord[2] * inv_precision;
- }
- smallidx += is_smaller;
- if (is_smaller < 0) {
- small = smaller;
- if (smallidx > FIRSTIDX) {
- smaller = magicints[smallidx - 1] /2;
- } else {
- smaller = 0;
- }
- } else if (is_smaller > 0) {
- smaller = small;
- small = magicints[smallidx] / 2;
- }
- sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
- }
- }
- return 1;
-}
-
-
-
+++ /dev/null
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-/* fixincludes should not add extern "C" to this file */
-/*
- * Rpc additions to <sys/types.h>
- */
-#ifndef _RPC_TYPES_H
-#define _RPC_TYPES_H 1
-
-typedef int bool_t;
-typedef int enum_t;
-/* This needs to be changed to uint32_t in the future */
-typedef unsigned long rpcprog_t;
-typedef unsigned long rpcvers_t;
-typedef unsigned long rpcproc_t;
-typedef unsigned long rpcprot_t;
-typedef unsigned long rpcport_t;
-
-#define __dontcare__ -1
-
-#ifndef FALSE
-# define FALSE (0)
-#endif
-
-#ifndef TRUE
-# define TRUE (1)
-#endif
-
-#ifndef NULL
-# define NULL 0
-#endif
-
-#include <stdlib.h> /* For malloc decl. */
-#define mem_alloc(bsize) malloc(bsize)
-/*
- * XXX: This must not use the second argument, or code in xdr_array.c needs
- * to be modified.
- */
-#define mem_free(ptr, bsize) free(ptr)
-
-#ifndef makedev /* ie, we haven't already included it */
-#include <sys/types.h>
-#endif
-
-#ifndef __u_char_defined
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-# define __u_char_defined
-#endif
-#ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-# define __daddr_t_defined
-#endif
-
-#include <sys/time.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-
-#ifndef INADDR_LOOPBACK
-#define INADDR_LOOPBACK (u_long)0x7F000001
-#endif
-#ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN 64
-#endif
-
-#endif /* rpc/types.h */
+++ /dev/null
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
+++ /dev/null
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
-#endif
-
-/*
- * xdr.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- *
- * These are the "generic" xdr routines used to serialize and de-serialize
- * most common data items. See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <limits.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "types.h"
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-/*
- * constants specific to the xdr "protocol"
- */
-#define XDR_FALSE ((long) 0)
-#define XDR_TRUE ((long) 1)
-#define LASTUNSIGNED ((u_int) 0-1)
-
-/*
- * for unit alignment
- */
-static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
-
-/*
- * Free a data structure using XDR
- * Not a filter, but a convenient utility nonetheless
- */
-void
-xdr_free (xdrproc_t proc, char *objp)
-{
- XDR x;
-
- x.x_op = XDR_FREE;
- (*proc) (&x, objp);
-}
-
-/*
- * XDR nothing
- */
-bool_t
-xdr_void (void)
-{
- return TRUE;
-}
-INTDEF(xdr_void)
-
-/*
- * XDR integers
- */
-bool_t
-xdr_int (XDR *xdrs, int *ip)
-{
-
-#if INT_MAX < LONG_MAX
- long l;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- l = (long) *ip;
- return XDR_PUTLONG (xdrs, &l);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &l))
- {
- return FALSE;
- }
- *ip = (int) l;
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-#elif INT_MAX == LONG_MAX
- return INTUSE(xdr_long) (xdrs, (long *) ip);
-#elif INT_MAX == SHRT_MAX
- return INTUSE(xdr_short) (xdrs, (short *) ip);
-#else
-#error unexpected integer sizes in_xdr_int()
-#endif
-}
-INTDEF(xdr_int)
-
-/*
- * XDR unsigned integers
- */
-bool_t
-xdr_u_int (XDR *xdrs, u_int *up)
-{
-#if UINT_MAX < ULONG_MAX
- long l;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- l = (u_long) * up;
- return XDR_PUTLONG (xdrs, &l);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &l))
- {
- return FALSE;
- }
- *up = (u_int) (u_long) l;
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-#elif UINT_MAX == ULONG_MAX
- return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
-#elif UINT_MAX == USHRT_MAX
- return INTUSE(xdr_short) (xdrs, (short *) up);
-#else
-#error unexpected integer sizes in_xdr_u_int()
-#endif
-}
-INTDEF(xdr_u_int)
-
-/*
- * XDR long integers
- * The definition of xdr_long() is kept for backward
- * compatibility. Instead xdr_int() should be used.
- */
-bool_t
-xdr_long (XDR *xdrs, long *lp)
-{
-
- if (xdrs->x_op == XDR_ENCODE
- && (sizeof (int32_t) == sizeof (long)
- || (int32_t) *lp == *lp))
- return XDR_PUTLONG (xdrs, lp);
-
- if (xdrs->x_op == XDR_DECODE)
- return XDR_GETLONG (xdrs, lp);
-
- if (xdrs->x_op == XDR_FREE)
- return TRUE;
-
- return FALSE;
-}
-INTDEF(xdr_long)
-
-/*
- * XDR unsigned long integers
- * The definition of xdr_u_long() is kept for backward
- * compatibility. Instead xdr_u_int() should be used.
- */
-bool_t
-xdr_u_long (XDR *xdrs, u_long *ulp)
-{
- switch (xdrs->x_op)
- {
- case XDR_DECODE:
- {
- long int tmp;
-
- if (XDR_GETLONG (xdrs, &tmp) == FALSE)
- return FALSE;
-
- *ulp = (uint32_t) tmp;
- return TRUE;
- }
-
- case XDR_ENCODE:
- if (sizeof (uint32_t) != sizeof (u_long)
- && (uint32_t) *ulp != *ulp)
- return FALSE;
-
- return XDR_PUTLONG (xdrs, (long *) ulp);
-
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_u_long)
-
-/*
- * XDR hyper integers
- * same as xdr_u_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_hyper (XDR *xdrs, quad_t *llp)
-{
- long int t1, t2;
-
- if (xdrs->x_op == XDR_ENCODE)
- {
- t1 = (long) ((*llp) >> 32);
- t2 = (long) (*llp);
- return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
- }
-
- if (xdrs->x_op == XDR_DECODE)
- {
- if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
- return FALSE;
- *llp = ((quad_t) t1) << 32;
- *llp |= (uint32_t) t2;
- return TRUE;
- }
-
- if (xdrs->x_op == XDR_FREE)
- return TRUE;
-
- return FALSE;
-}
-INTDEF(xdr_hyper)
-
-
-/*
- * XDR hyper integers
- * same as xdr_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
-{
- long int t1, t2;
-
- if (xdrs->x_op == XDR_ENCODE)
- {
- t1 = (unsigned long) ((*ullp) >> 32);
- t2 = (unsigned long) (*ullp);
- return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
- }
-
- if (xdrs->x_op == XDR_DECODE)
- {
- if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
- return FALSE;
- *ullp = ((u_quad_t) t1) << 32;
- *ullp |= (uint32_t) t2;
- return TRUE;
- }
-
- if (xdrs->x_op == XDR_FREE)
- return TRUE;
-
- return FALSE;
-}
-INTDEF(xdr_u_hyper)
-
-bool_t
-xdr_longlong_t (XDR *xdrs, quad_t *llp)
-{
- return INTUSE(xdr_hyper) (xdrs, llp);
-}
-
-bool_t
-xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
-{
- return INTUSE(xdr_u_hyper) (xdrs, ullp);
-}
-
-/*
- * XDR short integers
- */
-bool_t
-xdr_short (XDR *xdrs, short *sp)
-{
- long l;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- l = (long) *sp;
- return XDR_PUTLONG (xdrs, &l);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &l))
- {
- return FALSE;
- }
- *sp = (short) l;
- return TRUE;
-
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_short)
-
-/*
- * XDR unsigned short integers
- */
-bool_t
-xdr_u_short (XDR *xdrs, u_short *usp)
-{
- long l;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- l = (u_long) * usp;
- return XDR_PUTLONG (xdrs, &l);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &l))
- {
- return FALSE;
- }
- *usp = (u_short) (u_long) l;
- return TRUE;
-
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_u_short)
-
-
-/*
- * XDR a char
- */
-bool_t
-xdr_char (XDR *xdrs, char *cp)
-{
- int i;
-
- i = (*cp);
- if (!INTUSE(xdr_int) (xdrs, &i))
- {
- return FALSE;
- }
- *cp = i;
- return TRUE;
-}
-
-/*
- * XDR an unsigned char
- */
-bool_t
-xdr_u_char (XDR *xdrs, u_char *cp)
-{
- u_int u;
-
- u = (*cp);
- if (!INTUSE(xdr_u_int) (xdrs, &u))
- {
- return FALSE;
- }
- *cp = u;
- return TRUE;
-}
-
-/*
- * XDR booleans
- */
-bool_t
-xdr_bool (XDR *xdrs, bool_t *bp)
-{
- long lb;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- lb = *bp ? XDR_TRUE : XDR_FALSE;
- return XDR_PUTLONG (xdrs, &lb);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &lb))
- {
- return FALSE;
- }
- *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
- return TRUE;
-
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_bool)
-
-/*
- * XDR enumerations
- */
-bool_t
-xdr_enum (XDR *xdrs, enum_t *ep)
-{
- enum sizecheck
- {
- SIZEVAL
- }; /* used to find the size of an enum */
-
- /*
- * enums are treated as ints
- */
- if (sizeof (enum sizecheck) == 4)
- {
-#if INT_MAX < LONG_MAX
- long l;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- l = *ep;
- return XDR_PUTLONG (xdrs, &l);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &l))
- {
- return FALSE;
- }
- *ep = l;
- case XDR_FREE:
- return TRUE;
-
- }
- return FALSE;
-#else
- return INTUSE(xdr_long) (xdrs, (long *) ep);
-#endif
- }
- else if (sizeof (enum sizecheck) == sizeof (short))
- {
- return INTUSE(xdr_short) (xdrs, (short *) ep);
- }
- else
- {
- return FALSE;
- }
-}
-INTDEF(xdr_enum)
-
-/*
- * XDR opaque data
- * Allows the specification of a fixed size sequence of opaque bytes.
- * cp points to the opaque object and cnt gives the byte length.
- */
-bool_t
-xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
-{
- u_int rndup;
- static char crud[BYTES_PER_XDR_UNIT];
-
- /*
- * if no data we are done
- */
- if (cnt == 0)
- return TRUE;
-
- /*
- * round byte count to full xdr units
- */
- rndup = cnt % BYTES_PER_XDR_UNIT;
- if (rndup > 0)
- rndup = BYTES_PER_XDR_UNIT - rndup;
-
- switch (xdrs->x_op)
- {
- case XDR_DECODE:
- if (!XDR_GETBYTES (xdrs, cp, cnt))
- {
- return FALSE;
- }
- if (rndup == 0)
- return TRUE;
- return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
-
- case XDR_ENCODE:
- if (!XDR_PUTBYTES (xdrs, cp, cnt))
- {
- return FALSE;
- }
- if (rndup == 0)
- return TRUE;
- return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
-
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_opaque)
-
-/*
- * XDR counted bytes
- * *cpp is a pointer to the bytes, *sizep is the count.
- * If *cpp is NULL maxsize bytes are allocated
- */
-bool_t
-xdr_bytes (xdrs, cpp, sizep, maxsize)
- XDR *xdrs;
- char **cpp;
- u_int *sizep;
- u_int maxsize;
-{
- char *sp = *cpp; /* sp is the actual string pointer */
- u_int nodesize;
-
- /*
- * first deal with the length since xdr bytes are counted
- */
- if (!INTUSE(xdr_u_int) (xdrs, sizep))
- {
- return FALSE;
- }
- nodesize = *sizep;
- if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
- {
- return FALSE;
- }
-
- /*
- * now deal with the actual bytes
- */
- switch (xdrs->x_op)
- {
- case XDR_DECODE:
- if (nodesize == 0)
- {
- return TRUE;
- }
- if (sp == NULL)
- {
- *cpp = sp = (char *) mem_alloc (nodesize);
- }
- if (sp == NULL)
- {
- fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
- return FALSE;
- }
- /* fall into ... */
-
- case XDR_ENCODE:
- return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
-
- case XDR_FREE:
- if (sp != NULL)
- {
- mem_free (sp, nodesize);
- *cpp = NULL;
- }
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_bytes)
-
-/*
- * Implemented here due to commonality of the object.
- */
-bool_t
-xdr_netobj (xdrs, np)
- XDR *xdrs;
- struct netobj *np;
-{
-
- return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
-}
-INTDEF(xdr_netobj)
-
-/*
- * XDR a discriminated union
- * Support routine for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * an entry with a null procedure pointer. The routine gets
- * the discriminant value and then searches the array of xdrdiscrims
- * looking for that value. It calls the procedure given in the xdrdiscrim
- * to handle the discriminant. If there is no specific routine a default
- * routine may be called.
- * If there is no specific or default routine an error is returned.
- */
-bool_t
-xdr_union (xdrs, dscmp, unp, choices, dfault)
- XDR *xdrs;
- enum_t *dscmp; /* enum to decide which arm to work on */
- char *unp; /* the union itself */
- const struct xdr_discrim *choices; /* [value, xdr proc] for each arm */
- xdrproc_t dfault; /* default xdr routine */
-{
- enum_t dscm;
-
- /*
- * we deal with the discriminator; it's an enum
- */
- if (!INTUSE(xdr_enum) (xdrs, dscmp))
- {
- return FALSE;
- }
- dscm = *dscmp;
-
- /*
- * search choices for a value that matches the discriminator.
- * if we find one, execute the xdr routine for that value.
- */
- for (; choices->proc != NULL_xdrproc_t; choices++)
- {
- if (choices->value == dscm)
- return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
- }
-
- /*
- * no match - execute the default xdr routine if there is one
- */
- return ((dfault == NULL_xdrproc_t) ? FALSE :
- (*dfault) (xdrs, unp, LASTUNSIGNED));
-}
-INTDEF(xdr_union)
-
-
-/*
- * Non-portable xdr primitives.
- * Care should be taken when moving these routines to new architectures.
- */
-
-
-/*
- * XDR null terminated ASCII strings
- * xdr_string deals with "C strings" - arrays of bytes that are
- * terminated by a NULL character. The parameter cpp references a
- * pointer to storage; If the pointer is null, then the necessary
- * storage is allocated. The last parameter is the max allowed length
- * of the string as specified by a protocol.
- */
-bool_t
-xdr_string (xdrs, cpp, maxsize)
- XDR *xdrs;
- char **cpp;
- u_int maxsize;
-{
- char *sp = *cpp; /* sp is the actual string pointer */
- u_int size;
- u_int nodesize;
-
- /*
- * first deal with the length since xdr strings are counted-strings
- */
- switch (xdrs->x_op)
- {
- case XDR_FREE:
- if (sp == NULL)
- {
- return TRUE; /* already free */
- }
- /* fall through... */
- case XDR_ENCODE:
- if (sp == NULL)
- return FALSE;
- size = strlen (sp);
- break;
- case XDR_DECODE:
- break;
- }
- if (!INTUSE(xdr_u_int) (xdrs, &size))
- {
- return FALSE;
- }
- if (size > maxsize)
- {
- return FALSE;
- }
- nodesize = size + 1;
- if (nodesize == 0)
- {
- /* This means an overflow. It a bug in the caller which
- provided a too large maxsize but nevertheless catch it
- here. */
- return FALSE;
- }
-
- /*
- * now deal with the actual bytes
- */
- switch (xdrs->x_op)
- {
- case XDR_DECODE:
- if (sp == NULL)
- *cpp = sp = (char *) mem_alloc (nodesize);
- if (sp == NULL)
- {
- fprintf (NULL, "%s", "xdr_string: out of memory\n");
- return FALSE;
- }
- sp[size] = 0;
- /* fall into ... */
-
- case XDR_ENCODE:
- return INTUSE(xdr_opaque) (xdrs, sp, size);
-
- case XDR_FREE:
- mem_free (sp, nodesize);
- *cpp = NULL;
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_string)
-
-/*
- * Wrapper for xdr_string that can be called directly from
- * routines like clnt_call
- */
-bool_t
-xdr_wrapstring (xdrs, cpp)
- XDR *xdrs;
- char **cpp;
-{
- if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
- {
- return TRUE;
- }
- return FALSE;
-}
+++ /dev/null
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * xdr.h, External Data Representation Serialization Routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_XDR_H
-#define _RPC_XDR_H 1
-
-#include <features.h>
-#include <sys/types.h>
-#include "types.h"
-
-/* We need FILE. */
-#include <stdio.h>
-
-__BEGIN_DECLS
-
-/*
- * XDR provides a conventional way for converting between C data
- * types and an external bit-string representation. Library supplied
- * routines provide for the conversion on built-in C data types. These
- * routines and utility routines defined here are used to help implement
- * a type encode/decode routine for each user-defined type.
- *
- * Each data type provides a single procedure which takes two arguments:
- *
- * bool_t
- * xdrproc(xdrs, argresp)
- * XDR *xdrs;
- * <type> *argresp;
- *
- * xdrs is an instance of a XDR handle, to which or from which the data
- * type is to be converted. argresp is a pointer to the structure to be
- * converted. The XDR handle contains an operation field which indicates
- * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
- *
- * XDR_DECODE may allocate space if the pointer argresp is null. This
- * data can be freed with the XDR_FREE operation.
- *
- * We write only one procedure per data type to make it easy
- * to keep the encode and decode procedures for a data type consistent.
- * In many cases the same code performs all operations on a user defined type,
- * because all the hard work is done in the component type routines.
- * decode as a series of calls on the nested data types.
- */
-
-/*
- * Xdr operations. XDR_ENCODE causes the type to be encoded into the
- * stream. XDR_DECODE causes the type to be extracted from the stream.
- * XDR_FREE can be used to release the space allocated by an XDR_DECODE
- * request.
- */
-enum xdr_op {
- XDR_ENCODE = 0,
- XDR_DECODE = 1,
- XDR_FREE = 2
-};
-
-/*
- * This is the number of bytes per unit of external data.
- */
-#define BYTES_PER_XDR_UNIT (4)
-/*
- * This only works if the above is a power of 2. But it's defined to be
- * 4 by the appropriate RFCs. So it will work. And it's normally quicker
- * than the old routine.
- */
-#if 1
-#define RNDUP(x) (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
-#else /* this is the old routine */
-#define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
- * BYTES_PER_XDR_UNIT)
-#endif
-
-/*
- * The XDR handle.
- * Contains operation which is being applied to the stream,
- * an operations vector for the particular implementation (e.g. see xdr_mem.c),
- * and two private fields for the use of the particular implementation.
- */
-typedef struct XDR XDR;
-struct XDR
- {
- enum xdr_op x_op; /* operation; fast additional param */
- struct xdr_ops
- {
- bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
- /* get a long from underlying stream */
- bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
- /* put a long to " */
- bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
- /* get some bytes from " */
- bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
- /* put some bytes to " */
- u_int (*x_getpostn) (__const XDR *__xdrs);
- /* returns bytes off from beginning */
- bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
- /* lets you reposition the stream */
- int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
- /* buf quick ptr to buffered data */
- void (*x_destroy) (XDR *__xdrs);
- /* free privates of this xdr_stream */
- bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
- /* get a int from underlying stream */
- bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
- /* put a int to " */
- }
- *x_ops;
- caddr_t x_public; /* users' data */
- caddr_t x_private; /* pointer to private data */
- caddr_t x_base; /* private used for position info */
- u_int x_handy; /* extra private word */
- };
-
-/*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
- *
- * The second argument to the xdrproc_t is a pointer to an opaque pointer.
- * The opaque pointer generally points to a structure of the data type
- * to be decoded. If this pointer is 0, then the type routines should
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t (*xdrproc_t)(XDR *, caddr_t *);
- */
-typedef bool_t (*xdrproc_t) (XDR *, void *,...);
-
-
-/*
- * Operations defined on a XDR handle
- *
- * XDR *xdrs;
- * int32_t *int32p;
- * long *longp;
- * caddr_t addr;
- * u_int len;
- * u_int pos;
- */
-#define XDR_GETINT32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-#define xdr_getint32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-
-#define XDR_PUTINT32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-#define xdr_putint32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-
-#define XDR_GETLONG(xdrs, longp) \
- (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-#define xdr_getlong(xdrs, longp) \
- (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-
-#define XDR_PUTLONG(xdrs, longp) \
- (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-#define xdr_putlong(xdrs, longp) \
- (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-
-#define XDR_GETBYTES(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-#define xdr_getbytes(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-
-#define XDR_PUTBYTES(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-#define xdr_putbytes(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-
-#define XDR_GETPOS(xdrs) \
- (*(xdrs)->x_ops->x_getpostn)(xdrs)
-#define xdr_getpos(xdrs) \
- (*(xdrs)->x_ops->x_getpostn)(xdrs)
-
-#define XDR_SETPOS(xdrs, pos) \
- (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-#define xdr_setpos(xdrs, pos) \
- (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-
-#define XDR_INLINE(xdrs, len) \
- (*(xdrs)->x_ops->x_inline)(xdrs, len)
-#define xdr_inline(xdrs, len) \
- (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
-#define XDR_DESTROY(xdrs) \
- do { \
- if ((xdrs)->x_ops->x_destroy) \
- (*(xdrs)->x_ops->x_destroy)(xdrs); \
- } while (0)
-#define xdr_destroy(xdrs) \
- do { \
- if ((xdrs)->x_ops->x_destroy) \
- (*(xdrs)->x_ops->x_destroy)(xdrs); \
- } while (0)
-
-/*
- * Support struct for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer. The xdr_union routine gets
- * the discriminant value and then searches the array of structures
- * for a matching value. If a match is found the associated xdr routine
- * is called to handle that part of the union. If there is
- * no match, then a default routine may be called.
- * If there is no match and no default routine it is an error.
- */
-#define NULL_xdrproc_t ((xdrproc_t)0)
-struct xdr_discrim
-{
- int value;
- xdrproc_t proc;
-};
-
-/*
- * Inline routines for fast encode/decode of primitive data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned. The standard way to use these
- * is to say:
- * if ((buf = XDR_INLINE(xdrs, count)) == NULL)
- * return (FALSE);
- * <<< macro calls >>>
- * where ``count'' is the number of bytes of data occupied
- * by the primitive data types.
- *
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
-
-#define IXDR_GET_INT32(buf) ((int32_t)ntohl((uint32_t)*(buf)++))
-#define IXDR_PUT_INT32(buf, v) (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
-#define IXDR_GET_U_INT32(buf) ((uint32_t)IXDR_GET_INT32(buf))
-#define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_INT32(buf, (int32_t)(v))
-
-/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
- * and shouldn't be used any longer. Code which use this defines or longs
- * in the RPC code will not work on 64bit Solaris platforms !
- */
-#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
-#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
-#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
-#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-
-
-#define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_LONG(buf))
-#define IXDR_GET_ENUM(buf, t) ((t)IXDR_GET_LONG(buf))
-#define IXDR_GET_SHORT(buf) ((short)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_SHORT(buf) ((u_short)IXDR_GET_LONG(buf))
-
-#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-
-/*
- * These are the "generic" xdr routines.
- * None of these can have const applied because it's not possible to
- * know whether the call is a read or a write to the passed parameter
- * also, the XDR structure is always updated by some of these calls.
- */
-extern bool_t xdr_void (void) __THROW;
-extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
-extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
-extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
-extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
-extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
-extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
-extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
-extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
-extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
-extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
-extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
-extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
-extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
-extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
-extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
-extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
-extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
-extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
-extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
- u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
- __THROW;
-extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
- u_int __maxsize) __THROW;
-extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
-extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
-extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
- __const struct xdr_discrim *__choices,
- xdrproc_t dfault) __THROW;
-extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
-extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
-extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
- u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
-extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
-extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
-extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
- xdrproc_t __proc) __THROW;
-extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
- u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
-extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
-extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
-
-/*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
-#define MAX_NETOBJ_SZ 1024
-struct netobj
-{
- u_int n_len;
- char *n_bytes;
-};
-typedef struct netobj netobj;
-extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-
-/* XDR using memory buffers */
-extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
- u_int __size, enum xdr_op __xop) __THROW;
-
-/* XDR using stdio library */
-extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
- __THROW;
-
-/* XDR pseudo records for tcp */
-extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
- u_int __recvsize, caddr_t __tcp_handle,
- int (*__readit) (char *, char *, int),
- int (*__writeit) (char *, char *, int)) __THROW;
-
-/* make end of xdr record */
-extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
-
-/* move to beginning of next record */
-extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
-
-/* true if no more input */
-extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
-
-/* free memory buffers for xdr */
-extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/xdr.h */
+++ /dev/null
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr_array.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_array.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "non-trivial" xdr primitives used to serialize and de-serialize
- * arrays. See xdr.h for more info on the interface to xdr.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "types.h"
-#include "xdr.h"
-#include <libintl.h>
-#include <limits.h>
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-#define LASTUNSIGNED ((u_int)0-1)
-
-
-/*
- * XDR an array of arbitrary elements
- * *addrp is a pointer to the array, *sizep is the number of elements.
- * If addrp is NULL (*sizep * elsize) bytes are allocated.
- * elsize is the size (in bytes) of each element, and elproc is the
- * xdr procedure to call to handle each element of the array.
- */
-bool_t
-xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
- XDR *xdrs;
- caddr_t *addrp; /* array pointer */
- u_int *sizep; /* number of elements */
- u_int maxsize; /* max numberof elements */
- u_int elsize; /* size in bytes of each element */
- xdrproc_t elproc; /* xdr routine to handle each element */
-{
- u_int i;
- caddr_t target = *addrp;
- u_int c; /* the actual element count */
- bool_t stat = TRUE;
- u_int nodesize;
-
- /* like strings, arrays are really counted arrays */
- if (!INTUSE(xdr_u_int) (xdrs, sizep))
- {
- return FALSE;
- }
- c = *sizep;
- /*
- * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
- * doesn't actually use its second argument anyway.
- */
- if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
- {
- return FALSE;
- }
- nodesize = c * elsize;
-
- /*
- * if we are deserializing, we may need to allocate an array.
- * We also save time by checking for a null array if we are freeing.
- */
- if (target == NULL)
- switch (xdrs->x_op)
- {
- case XDR_DECODE:
- if (c == 0)
- return TRUE;
- *addrp = target = mem_alloc (nodesize);
- if (target == NULL)
- {
- fprintf (stderr, "%s", "xdr_array: out of memory\n");
- return FALSE;
- }
- __bzero (target, nodesize);
- break;
-
- case XDR_FREE:
- return TRUE;
- default:
- break;
- }
-
- /*
- * now we xdr each element of array
- */
- for (i = 0; (i < c) && stat; i++)
- {
- stat = (*elproc) (xdrs, target, LASTUNSIGNED);
- target += elsize;
- }
-
- /*
- * the array may need freeing
- */
- if (xdrs->x_op == XDR_FREE)
- {
- mem_free (*addrp, nodesize);
- *addrp = NULL;
- }
- return stat;
-}
-INTDEF(xdr_array)
-
-/*
- * xdr_vector():
- *
- * XDR a fixed length array. Unlike variable-length arrays,
- * the storage of fixed length arrays is static and unfreeable.
- * > basep: base of the array
- * > size: size of the array
- * > elemsize: size of each element
- * > xdr_elem: routine to XDR each element
- */
-bool_t
-xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
- XDR *xdrs;
- char *basep;
- u_int nelem;
- u_int elemsize;
- xdrproc_t xdr_elem;
-{
- u_int i;
- char *elptr;
-
- elptr = basep;
- for (i = 0; i < nelem; i++)
- {
- if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
- {
- return FALSE;
- }
- elptr += elemsize;
- }
- return TRUE;
-}
+++ /dev/null
-/* @(#)xdr_float.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_float.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "floating point" xdr routines used to (de)serialize
- * most common data items. See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <endian.h>
-
-#include "types.h"
-#include "xdr.h"
-
-/*
- * NB: Not portable.
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#define LSW (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
-
-#ifdef vax
-
-/* What IEEE single precision floating point looks like on a Vax */
-struct ieee_single {
- unsigned int mantissa: 23;
- unsigned int exp : 8;
- unsigned int sign : 1;
-};
-
-/* Vax single precision floating point */
-struct vax_single {
- unsigned int mantissa1 : 7;
- unsigned int exp : 8;
- unsigned int sign : 1;
- unsigned int mantissa2 : 16;
-};
-
-#define VAX_SNG_BIAS 0x81
-#define IEEE_SNG_BIAS 0x7f
-
-static struct sgl_limits {
- struct vax_single s;
- struct ieee_single ieee;
-} sgl_limits[2] = {
- {{ 0x7f, 0xff, 0x0, 0xffff }, /* Max Vax */
- { 0x0, 0xff, 0x0 }}, /* Max IEEE */
- {{ 0x0, 0x0, 0x0, 0x0 }, /* Min Vax */
- { 0x0, 0x0, 0x0 }} /* Min IEEE */
-};
-#endif /* vax */
-
-bool_t
-xdr_float(xdrs, fp)
- XDR *xdrs;
- float *fp;
-{
-#ifdef vax
- struct ieee_single is;
- struct vax_single vs, *vsp;
- struct sgl_limits *lim;
- int i;
-#endif
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
-#ifdef vax
- vs = *((struct vax_single *)fp);
- for (i = 0, lim = sgl_limits;
- i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
- i++, lim++) {
- if ((vs.mantissa2 == lim->s.mantissa2) &&
- (vs.exp == lim->s.exp) &&
- (vs.mantissa1 == lim->s.mantissa1)) {
- is = lim->ieee;
- goto shipit;
- }
- }
- is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
- is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
- shipit:
- is.sign = vs.sign;
- return (XDR_PUTLONG(xdrs, (long *)&is));
-#else
- if (sizeof(float) == sizeof(long))
- return (XDR_PUTLONG(xdrs, (long *)fp));
- else if (sizeof(float) == sizeof(int)) {
- long tmp = *(int *)fp;
- return (XDR_PUTLONG(xdrs, &tmp));
- }
- break;
-#endif
-
- case XDR_DECODE:
-#ifdef vax
- vsp = (struct vax_single *)fp;
- if (!XDR_GETLONG(xdrs, (long *)&is))
- return (FALSE);
- for (i = 0, lim = sgl_limits;
- i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
- i++, lim++) {
- if ((is.exp == lim->ieee.exp) &&
- (is.mantissa == lim->ieee.mantissa)) {
- *vsp = lim->s;
- goto doneit;
- }
- }
- vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
- vsp->mantissa2 = is.mantissa;
- vsp->mantissa1 = (is.mantissa >> 16);
- doneit:
- vsp->sign = is.sign;
- return (TRUE);
-#else
- if (sizeof(float) == sizeof(long))
- return (XDR_GETLONG(xdrs, (long *)fp));
- else if (sizeof(float) == sizeof(int)) {
- long tmp;
- if (XDR_GETLONG(xdrs, &tmp)) {
- *(int *)fp = tmp;
- return (TRUE);
- }
- }
- break;
-#endif
-
- case XDR_FREE:
- return (TRUE);
- }
- return (FALSE);
-}
-
-/*
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#ifdef vax
-/* What IEEE double precision floating point looks like on a Vax */
-struct ieee_double {
- unsigned int mantissa1 : 20;
- unsigned int exp : 11;
- unsigned int sign : 1;
- unsigned int mantissa2 : 32;
-};
-
-/* Vax double precision floating point */
-struct vax_double {
- unsigned int mantissa1 : 7;
- unsigned int exp : 8;
- unsigned int sign : 1;
- unsigned int mantissa2 : 16;
- unsigned int mantissa3 : 16;
- unsigned int mantissa4 : 16;
-};
-
-#define VAX_DBL_BIAS 0x81
-#define IEEE_DBL_BIAS 0x3ff
-#define MASK(nbits) ((1 << nbits) - 1)
-
-static struct dbl_limits {
- struct vax_double d;
- struct ieee_double ieee;
-} dbl_limits[2] = {
- {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff }, /* Max Vax */
- { 0x0, 0x7ff, 0x0, 0x0 }}, /* Max IEEE */
- {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, /* Min Vax */
- { 0x0, 0x0, 0x0, 0x0 }} /* Min IEEE */
-};
-
-#endif /* vax */
-
-
-bool_t
-xdr_double(xdrs, dp)
- XDR *xdrs;
- double *dp;
-{
-#ifdef vax
- struct ieee_double id;
- struct vax_double vd;
- register struct dbl_limits *lim;
- int i;
-#endif
-
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
-#ifdef vax
- vd = *((struct vax_double *)dp);
- for (i = 0, lim = dbl_limits;
- i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
- i++, lim++) {
- if ((vd.mantissa4 == lim->d.mantissa4) &&
- (vd.mantissa3 == lim->d.mantissa3) &&
- (vd.mantissa2 == lim->d.mantissa2) &&
- (vd.mantissa1 == lim->d.mantissa1) &&
- (vd.exp == lim->d.exp)) {
- id = lim->ieee;
- goto shipit;
- }
- }
- id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
- id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
- id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
- (vd.mantissa3 << 13) |
- ((vd.mantissa4 >> 3) & MASK(13));
- shipit:
- id.sign = vd.sign;
- dp = (double *)&id;
-#endif
- if (2*sizeof(long) == sizeof(double)) {
- long *lp = (long *)dp;
- return (XDR_PUTLONG(xdrs, lp+!LSW) &&
- XDR_PUTLONG(xdrs, lp+LSW));
- } else if (2*sizeof(int) == sizeof(double)) {
- int *ip = (int *)dp;
- long tmp[2];
- tmp[0] = ip[!LSW];
- tmp[1] = ip[LSW];
- return (XDR_PUTLONG(xdrs, tmp) &&
- XDR_PUTLONG(xdrs, tmp+1));
- }
- break;
-
- case XDR_DECODE:
-#ifdef vax
- lp = (long *)&id;
- if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
- return (FALSE);
- for (i = 0, lim = dbl_limits;
- i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
- i++, lim++) {
- if ((id.mantissa2 == lim->ieee.mantissa2) &&
- (id.mantissa1 == lim->ieee.mantissa1) &&
- (id.exp == lim->ieee.exp)) {
- vd = lim->d;
- goto doneit;
- }
- }
- vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
- vd.mantissa1 = (id.mantissa1 >> 13);
- vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
- (id.mantissa2 >> 29);
- vd.mantissa3 = (id.mantissa2 >> 13);
- vd.mantissa4 = (id.mantissa2 << 3);
- doneit:
- vd.sign = id.sign;
- *dp = *((double *)&vd);
- return (TRUE);
-#else
- if (2*sizeof(long) == sizeof(double)) {
- long *lp = (long *)dp;
- return (XDR_GETLONG(xdrs, lp+!LSW) &&
- XDR_GETLONG(xdrs, lp+LSW));
- } else if (2*sizeof(int) == sizeof(double)) {
- int *ip = (int *)dp;
- long tmp[2];
- if (XDR_GETLONG(xdrs, tmp+!LSW) &&
- XDR_GETLONG(xdrs, tmp+LSW)) {
- ip[0] = tmp[0];
- ip[1] = tmp[1];
- return (TRUE);
- }
- }
- break;
-#endif
-
- case XDR_FREE:
- return (TRUE);
- }
- return (FALSE);
-}
+++ /dev/null
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * xdr_stdio.c, XDR implementation on standard i/o file.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * This set of routines implements a XDR on a stdio stream.
- * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
- * from the stream.
- */
-
-#include "types.h"
-#include <stdio.h>
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <libio/iolibio.h>
-# define fflush(s) INTUSE(_IO_fflush) (s)
-# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
-# define ftell(s) INTUSE(_IO_ftell) (s)
-# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
-#endif
-
-static bool_t xdrstdio_getlong (XDR *, long *);
-static bool_t xdrstdio_putlong (XDR *, const long *);
-static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
-static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
-static u_int xdrstdio_getpos (const XDR *);
-static bool_t xdrstdio_setpos (XDR *, u_int);
-static int32_t *xdrstdio_inline (XDR *, u_int);
-static void xdrstdio_destroy (XDR *);
-static bool_t xdrstdio_getint32 (XDR *, int32_t *);
-static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
-
-/*
- * Ops vector for stdio type XDR
- */
-static const struct xdr_ops xdrstdio_ops =
-{
- xdrstdio_getlong, /* deserialize a long int */
- xdrstdio_putlong, /* serialize a long int */
- xdrstdio_getbytes, /* deserialize counted bytes */
- xdrstdio_putbytes, /* serialize counted bytes */
- xdrstdio_getpos, /* get offset in the stream */
- xdrstdio_setpos, /* set offset in the stream */
- xdrstdio_inline, /* prime stream for inline macros */
- xdrstdio_destroy, /* destroy stream */
- xdrstdio_getint32, /* deserialize a int */
- xdrstdio_putint32 /* serialize a int */
-};
-
-/*
- * Initialize a stdio xdr stream.
- * Sets the xdr stream handle xdrs for use on the stream file.
- * Operation flag is set to op.
- */
-void
-xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
-{
- xdrs->x_op = op;
- /* We have to add the const since the `struct xdr_ops' in `struct XDR'
- is not `const'. */
- xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
- xdrs->x_private = (caddr_t) file;
- xdrs->x_handy = 0;
- xdrs->x_base = 0;
-}
-
-/*
- * Destroy a stdio xdr stream.
- * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
- */
-static void
-xdrstdio_destroy (XDR *xdrs)
-{
- (void) fflush ((FILE *) xdrs->x_private);
- /* xx should we close the file ?? */
-};
-
-static bool_t
-xdrstdio_getlong (XDR *xdrs, long *lp)
-{
- u_int32_t mycopy;
-
- if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
- return FALSE;
- *lp = (long) ntohl (mycopy);
- return TRUE;
-}
-
-static bool_t
-xdrstdio_putlong (XDR *xdrs, const long *lp)
-{
- int32_t mycopy = htonl ((u_int32_t) *lp);
-
- if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
- return FALSE;
- return TRUE;
-}
-
-static bool_t
-xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
-{
- if ((len != 0) && (fread (addr, (int) len, 1,
- (FILE *) xdrs->x_private) != 1))
- return FALSE;
- return TRUE;
-}
-
-static bool_t
-xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
-{
- if ((len != 0) && (fwrite (addr, (int) len, 1,
- (FILE *) xdrs->x_private) != 1))
- return FALSE;
- return TRUE;
-}
-
-static u_int
-xdrstdio_getpos (const XDR *xdrs)
-{
- return (u_int) ftell ((FILE *) xdrs->x_private);
-}
-
-static bool_t
-xdrstdio_setpos (XDR *xdrs, u_int pos)
-{
- return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
-}
-
-static int32_t *
-xdrstdio_inline (XDR *xdrs, u_int len)
-{
- /*
- * Must do some work to implement this: must insure
- * enough data in the underlying stdio buffer,
- * that the buffer is aligned so that we can indirect through a
- * long *, and stuff this pointer in xdrs->x_buf. Doing
- * a fread or fwrite to a scratch buffer would defeat
- * most of the gains to be had here and require storage
- * management on this buffer, so we don't do this.
- */
- return NULL;
-}
-
-static bool_t
-xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
-{
- int32_t mycopy;
-
- if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
- return FALSE;
- *ip = ntohl (mycopy);
- return TRUE;
-}
-
-static bool_t
-xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
-{
- int32_t mycopy = htonl (*ip);
-
- ip = &mycopy;
- if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
- return FALSE;
- return TRUE;
-}
-
-/* libc_hidden_def (xdrstdio_create) */
+++ /dev/null
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the
- | functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
#================================================
-# Set comipiler flags for different sourcefiles
+# Set compiler flags for different sourcefiles
#================================================
if (Fortran_COMPILER_NAME STREQUAL "ifort")
- set(FFLAGS0 "-ip -w -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " )
+ set(FFLAGS0 "-mcmodel=medium -shared-intel -ip -w -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " )
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
- set(FFLAGS0 "-std=legacy -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " )
+ set(FFLAGS0 "-std=legacy -mcmodel=medium -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " )
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(FFLAGS0 "-mcmodel=medium -Mlarge_arrays -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
else ()
- set(FFLAGS0 "-I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " )
+ set(FFLAGS0 "-mcmodel=medium -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " )
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
#=========================================
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
# Add old gfortran flags
set(CPPFLAGS "${CPPFLAGS} -DG77")
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(CPPFLAGS "${CPPFLAGS} -DPGI")
+ FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+ list(APPEND UNRES_CLUSTER_WHAM_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
+ set(CMAKE_EXE_LINKER_FLAGS "-Bdynamic")
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
install(TARGETS UNRES_CLUSTER_WHAM_BIN DESTINATION ${CMAKE_INSTALL_PREFIX}/cluster)
+#=========================================
+# 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(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/cluster_wham_mpi_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export INPUT=$1
+export INTIN=1L2Y_wham
+export OUTPUT=1L2Y_clust
+export PDB=CART
+export COORD=CX
+export PRINTCOOR=PRINT_PDB
+#-----------------------------------------------------------------------------
+CLUSTER_WHAM_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_CLUSTER_WHAM_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond_AM1.parm
+export THETPAR=$DD/theta_abinitio.parm
+export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/scinter_$POT.parm
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export THETPARPDB=$DD/thetaml.5parm
+export ROTPARPDB=$DD/scgauss.parm
+export PATTERN=$DD/patterns.cart
+export CONTFUNC=GB
+export SIDEP=$DD/contact.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
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/cluster_wham_check.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_clust.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_wham.cx
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
+if(UNRES_MD_FF STREQUAL "E0LL2Y")
+ add_test(NAME CLUSTER_WHAM_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/cluster_wham_mpi_E0LL2Y.sh 1L2Y_clust 2 )
+endif(UNRES_MD_FF STREQUAL "E0LL2Y")
real*4 diss,allcart
double precision enetb,entfac,totfree,energy,rmstb
integer ncut,ngr,licz,nconf,iass,icc,mult,list_conf,
- & nss_all,ihpb_all,jhpb_all,iass_tot,iscore,nprop
+ & nss_all,ihpb_all,jhpb_all,iass_tot,iscore,nprop,nclust
common /clu/ diss(maxdist),energy(0:maxconf),
& enetb(max_ene,maxstr_proc),ecut,
& entfac(maxconf),totfree(0:maxconf),totfree_gr(maxgr),
- & rcutoff(max_cut+1),ncut,min_var,tree,plot_tree,lgrp
+ & rcutoff(max_cut+1),ncut,nclust,min_var,tree,plot_tree,lgrp
common /clu1/ ngr,licz(maxgr),nconf(maxgr,maxingr),iass(maxgr),
& iass_tot(maxgr,max_cut),list_conf(maxconf)
common /alles/ allcart(3,maxres2,maxstr_proc),rmstb(maxconf),
integer iscode,indpdb,outpdb,outmol2,iopt,nstart,nend,constr_dist
logical refstr,pdbref,punch_dist,print_dist,caonly,lside,
& lprint_cart,lprint_int,from_cart,efree,from_bx,from_cx,
- & with_dihed_constr
+ & with_dihed_constr,
+ & print_contact_map
common /cntrl/ betaT,iscode,indpdb,refstr,pdbref,outpdb,outmol2,
& punch_dist,print_dist,caonly,lside,lprint_cart,lprint_int,
& from_cart,from_bx,from_cx,efree,iopt,nstart,nend,constr_dist,
- & with_dihed_constr
+ & with_dihed_constr,
+ & print_contact_map
parameter (maxprocs=16)
C Max. number of AA residues
integer maxres,maxres2
- parameter (maxres=650)
+ parameter (maxres=800)
C Appr. max. number of interaction sites
parameter (maxres2=2*maxres)
C Max. number of variables
INSTALL_DIR = /users/software/mpich-1.2.7p1_intel-10.1_em64_ssh
FC = ifort
-OPT = -O3 -ip -w
+OPT = -O3 -ip -w -mcmodel=medium -shared-intel
#OPT = -CB -g
FFLAGS = ${OPT} -c -I. -Iinclude_unres -I$(INSTALL_DIR)/include
CPPFLAGS = -DLINUX -DPGI -DSPLITELE -DPROCOR -DMP -DMPI
etheta=0.0D0
c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
do i=ithet_start,ithet_end
+ if ((itype(i-1).eq.ntyp1).or.(itype(i-2).eq.ntyp1).or.
+ &(itype(i).eq.ntyp1)) cycle
dethetai=0.0d0
dephii=0.0d0
dephii1=0.0d0
coskt(k)=dcos(k*theti2)
sinkt(k)=dsin(k*theti2)
enddo
- if (i.gt.3) then
+ if (i.gt.3 .and. itype(max0(i-3,1)).ne.ntyp1) then
#ifdef OSF
phii=phi(i)
if (phii.ne.phii) phii=150.0
enddo
else
phii=0.0d0
- ityp1=nthetyp+1
+ ityp1=ithetyp(itype(i-2))
do k=1,nsingle
cosph1(k)=0.0d0
sinph1(k)=0.0d0
enddo
endif
- if (i.lt.nres) then
+ if (i.lt.nres .and. itype(i+1).ne.ntyp1) then
#ifdef OSF
phii1=phi(i+1)
if (phii1.ne.phii1) phii1=150.0
enddo
else
phii1=0.0d0
- ityp3=nthetyp+1
+ ityp3=ithetyp(itype(i))
do k=1,nsingle
cosph2(k)=0.0d0
sinph2(k)=0.0d0
cosphi=dcos(j*tauangle(intertyp,i))
sinphi=dsin(j*tauangle(intertyp,i))
esccor=esccor+v1ij*cosphi+v2ij*sinphi
+#ifdef DEBUG
+ esccor_ii=esccor_ii+v1ij*cosphi+v2ij*sinphi
+#endif
gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
enddo
gloc_sc(intertyp,i-3,icg)=gloc_sc(intertyp,i-3,icg)+wsccor*gloci
+++ /dev/null
-C Change 12/1/95 - common block CONTACTS1 included.
- integer ncont,ncont_ref,icont,icont_ref,num_cont,jcont
- double precision facont,gacont
- common /contacts/ ncont,ncont_ref,icont(2,maxcont),
- & icont_ref(2,maxcont)
- common /contacts1/ facont(maxconts,maxres),
- & gacont(3,maxconts,maxres),
- & num_cont(maxres),jcont(maxconts,maxres)
-C 12/26/95 - H-bonding contacts
- common /contacts_hb/
- & gacontp_hb1(3,maxconts,maxres),gacontp_hb2(3,maxconts,maxres),
- & gacontp_hb3(3,maxconts,maxres),
- & gacontm_hb1(3,maxconts,maxres),gacontm_hb2(3,maxconts,maxres),
- & gacontm_hb3(3,maxconts,maxres),
- & gacont_hbr(3,maxconts,maxres),
- & grij_hb_cont(3,maxconts,maxres),
- & facont_hb(maxconts,maxres),ees0p(maxconts,maxres),
- & ees0m(maxconts,maxres),d_cont(maxconts,maxres),
- & num_cont_hb(maxres),jcont_hb(maxconts,maxres)
-C 9/23/99 Added improper rotation matrices and matrices of dipole-dipole
-C interactions
-C Interactions of pseudo-dipoles generated by loc-el interactions.
- double precision dip,dipderg,dipderx
- common /dipint/ dip(4,maxconts,maxres),dipderg(4,maxconts,maxres),
- & dipderx(3,5,4,maxconts,maxres)
-C 10/30/99 Added other pre-computed vectors and matrices needed
-C to calculate three - six-order el-loc correlation terms
- double precision Ug,Ugder,Ug2,Ug2der,obrot,obrot2,obrot_der,
- & obrot2_der,Ub2,Ub2der,mu,muder,EUg,EUgder,CUg,CUgder,
- & DUg,DUgder,DtUg2,DtUg2der,Ctobr,Ctobrder,Dtobr2,Dtobr2der
- common /rotat/ Ug(2,2,maxres),Ugder(2,2,maxres),Ug2(2,2,maxres),
- & Ug2der(2,2,maxres),obrot(2,maxres),obrot2(2,maxres),
- & obrot_der(2,maxres),obrot2_der(2,maxres)
-C This common block contains vectors and matrices dependent on a single
-C amino-acid residue.
- common /precomp1/ Ub2(2,maxres),Ub2der(2,maxres),mu(2,maxres),
- & EUg(2,2,maxres),EUgder(2,2,maxres),CUg(2,2,maxres),
- & CUgder(2,2,maxres),DUg(2,2,maxres),Dugder(2,2,maxres),
- & DtUg2(2,2,maxres),DtUg2der(2,2,maxres),Ctobr(2,maxres),
- & Ctobrder(2,maxres),Dtobr2(2,maxres),Dtobr2der(2,maxres)
-C This common block contains vectors and matrices dependent on two
-C consecutive amino-acid residues.
- double precision Ug2Db1t,Ug2Db1tder,CUgb2,CUgb2der,EUgC,
- & EUgCder,EUgD,EUgDder,DtUg2EUg,DtUg2EUgder
- common /precomp2/ Ug2Db1t(2,maxres),Ug2Db1tder(2,maxres),
- & CUgb2(2,maxres),CUgb2der(2,maxres),EUgC(2,2,maxres),
- & EUgCder(2,2,maxres),EUgD(2,2,maxres),EUgDder(2,2,maxres),
- & DtUg2EUg(2,2,maxres),DtUg2EUgder(2,2,2,maxres),
- & Ug2DtEUg(2,2,maxres),Ug2DtEUgder(2,2,2,maxres)
- double precision costab,sintab,costab2,sintab2
- common /rotat_old/ costab(maxres),sintab(maxres),
- & costab2(maxres),sintab2(maxres),muder(2,maxres)
-C This common block contains dipole-interaction matrices and their
-C Cartesian derivatives.
- double precision a_chuj,a_chuj_der
- common /dipmat/ a_chuj(2,2,maxconts,maxres),
- & a_chuj_der(2,2,3,5,maxconts,maxres)
- double precision AEA,AEAderg,AEAderx,AECA,AECAderg,AECAderx,
- & ADtEA,ADtEAderg,ADtEAderx,AEAb1,AEAb1derg,AEAb1derx,
- & AEAb2,AEAb2derg,AEAb2derx
- common /diploc/ AEA(2,2,2),AEAderg(2,2,2),AEAderx(2,2,3,5,2,2),
- & EAEA(2,2,2), EAEAderg(2,2,2,2), EAEAderx(2,2,3,5,2,2),
- & AECA(2,2,2),AECAderg(2,2,2),AECAderx(2,2,3,5,2,2),
- & ADtEA(2,2,2),ADtEAderg(2,2,2,2),ADtEAderx(2,2,3,5,2,2),
- & ADtEA1(2,2,2),ADtEA1derg(2,2,2,2),ADtEA1derx(2,2,3,5,2,2),
- & AEAb1(2,2,2),AEAb1derg(2,2,2),AEAb1derx(2,3,5,2,2,2),
- & AEAb2(2,2,2),AEAb2derg(2,2,2,2),AEAb2derx(2,3,5,2,2,2),
- & g_contij(3,2),ekont
+++ /dev/null
-C-----------------------------------------------------------------------
-C The following COMMON block selects the type of the force field used in
-C calculations and defines weights of various energy terms.
-C 12/1/95 wcorr added
-C-----------------------------------------------------------------------
- double precision wsc,wscp,welec,wstrain,wtor,wtor_d,wang,wscloc,
- & wcorr,wcorr4,wcorr5,wcorr6,wsccor,wel_loc,wturn3,wturn4,
- & wturn6,wvdwpp,wbond,weights,scal14,cutoff_corr,delt_corr,
- & r0_corr
- integer ipot,n_ene_comp
- common /ffield/ wsc,wscp,welec,wstrain,wtor,wtor_d,wang,wscloc,
- & wcorr,wcorr4,wcorr5,wcorr6,wsccor,wel_loc,wturn3,wturn4,
- & wturn6,wvdwpp,wbond,weights(max_ene),
- & scal14,cutoff_corr,delt_corr,r0_corr,ipot,n_ene_comp
- common /potentials/ potname(5)
- character*3 potname
-C-----------------------------------------------------------------------
-C wlong,welec,wtor,wang,wscloc are the weight of the energy terms
-C corresponding to side-chain, electrostatic, torsional, valence-angle,
-C and local side-chain terms.
-C
-C IPOT determines which SC...SC interaction potential will be used:
-C 1 - LJ: 2n-n Lennard-Jones
-C 2 - LJK: 2n-n Kihara type (shifted Lennard-Jones)
-C 3 - BP; Berne-Pechukas (angular dependence)
-C 4 - GB; Gay-Berne (angular dependence)
-C 5 - GBV; Gay-Berne-Vorobjev; angularly-dependent Kihara potential
-C------------------------------------------------------------------------
+++ /dev/null
- character*3 restyp
- character*1 onelet
- common /names/ restyp(ntyp+1),onelet(ntyp+1)
- character*10 ename,wname
- integer nprint_ene,print_order
- common /namterm/ ename(max_ene),wname(max_ene),nprint_ene,
- & print_order(max_ene)
+++ /dev/null
-C Parameters of the SCCOR term
- double precision v1sccor,v2sccor
- integer nterm_sccor
- common/torsion/v1sccor(maxterm_sccor,20,20),
- & v2sccor(maxterm_sccor,20,20),
- & nterm_sccor
nint_gr(i)=1
istart(i,1)=i+1
iend(i,1)=nct
- ind_scint=int_scint+nct-i
+ ind_scint=ind_scint+nct-i
#endif
endif
#ifdef MPL
DIMENSION NN(maxconf),DISNN(maxconf)
LOGICAL FLAG(maxconf)
integer i,j,k,l,m,n,len,lev,idum,ii,ind,ioffset,jj,icut,ncon,
- & it,ncon_work,ind1,ilen
+ & it,ncon_work,ind1,ilen,is,ie
double precision t1,t2,tcpu,difconf
+ real diss_(maxdist)
double precision varia(maxvar)
double precision hrtime,mintime,sectime
print *,'MAIN: nnt=',nnt,' nct=',nct
+ if (nclust.gt.0) then
+ PRINTANG(1)=.TRUE.
+ PRINTPDB(1)=outpdb
+ printmol2(1)=outmol2
+ ncut=0
+ else
DO I=1,NCUT
PRINTANG(I)=.FALSE.
PRINTPDB(I)=0
printmol2(i)=outmol2
ENDIF
ENDDO
+ endif
+ if (ncut.gt.0) then
write (iout,*) 'Number of cutoffs:',NCUT
write (iout,*) 'Cutoff values:'
DO ICUT=1,NCUT
WRITE(IOUT,'(8HRCUTOFF(,I2,2H)=,F8.1,2i2)')ICUT,RCUTOFF(ICUT),
& printpdb(icut),printmol2(icut)
ENDDO
+ else if (nclust.gt.0) then
+ write (iout,'("Number of clusters requested",i5)') nclust
+ else
+ if (me.eq.Master)
+ & write (iout,*) "ERROR: Either nclust or ncut must be >0"
+ stop
+ endif
DO I=1,NRES-3
MULT(I)=1
ENDDO
if (ind.ge.indstart(me) .and. ind.le.indend(me)) then
#endif
ind1=ind1+1
+#ifdef MPI
+ DISS_(IND1)=DIFCONF(I,J)
+#else
DISS(IND1)=DIFCONF(I,J)
+#endif
c write (iout,'(2i4,i10,f10.5)') i,j,ind,DISS(IND)
#ifdef MPI
endif
PRINT '(a)','End of distance computation'
#ifdef MPI
- call MPI_Gatherv(diss(1),scount(me),MPI_REAL,diss(1),
+ call MPI_Gatherv(diss_(1),scount(me),MPI_REAL,diss(1),
& scount(0),idispl(0),MPI_REAL,Master,MPI_COMM_WORLD, IERROR)
if (me.eq.master) then
#endif
CALL HCASS(N,IA,IB,CRIT,LEV,ICLASS,HVALS,IORDER,CRITVAL,HEIGHT)
c CALL HCDEN(LEV,IORDER,HEIGHT,CRITVAL)
+c 3/3/16 AL: added explicit number of cluters
+ if (nclust.gt.0) then
+ is=nclust-1
+ ie=nclust-1
+ icut=1
+ else
+ is=1
+ ie=lev-1
+ endif
do i=1,maxgr
licz(i)=0
enddo
icut=1
- i=1
- NGR=i+1
+ i=is
+ NGR=is+1
do j=1,n
licz(iclass(j,i))=licz(iclass(j,i))+1
nconf(iclass(j,i),licz(iclass(j,i)))=j
c write (iout,*) i,j,iclass(j,i),licz(iclass(j,i)),
c & nconf(iclass(j,i),licz(iclass(j,i)))
enddo
- do i=1,lev-1
-
+c do i=1,lev-1
+ do i=is,ie
idum=lev-i
DO L=1,LEV
IF (HEIGHT(L).EQ.IDUM) GOTO 190
ENDDO
190 IDUM=L
- write(IOUT,*) "i+1",i+1," idum",idum," critval",CRITVAL(IDUM),
- & " icut",icut," cutoff",rcutoff(icut)
- IF (CRITVAL(IDUM).LT. RCUTOFF(ICUT)) THEN
- WRITE (iout,'(/a,f10.5)') 'AT CUTOFF:',rcutoff(icut)
+c write(IOUT,*) "i+1",i+1," idum",idum," critval",CRITVAL(IDUM),
+c & " icut",icut," cutoff",rcutoff(icut)
+ IF (nclust.gt.0.or.CRITVAL(IDUM).LT. RCUTOFF(ICUT)) THEN
+ if (nclust.le.0)
+ & WRITE (iout,'(/a,f10.5)') 'AT CUTOFF:',rcutoff(icut)
write (iout,'(a,f8.2)') 'Maximum distance found:',
& CRITVAL(IDUM)
CALL SRTCLUST(ICUT,ncon_work,iT)
do l=1,maxgr
licz(l)=0
enddo
+ ii=i-is+1
do j=1,n
- licz(iclass(j,i))=licz(iclass(j,i))+1
- nconf(iclass(j,i),licz(iclass(j,i)))=j
+ licz(iclass(j,ii))=licz(iclass(j,ii))+1
+ nconf(iclass(j,ii),licz(iclass(j,ii)))=j
c write (iout,*) i,j,iclass(j,i),licz(iclass(j,i)),
c & nconf(iclass(j,i),licz(iclass(j,i)))
cd print *,j,iclass(j,i),
C
close(icbase,status="delete")
#ifdef MPI
- call MPI_Finalize(MPI_COMM_WORLD,IERROR)
+ call MPI_Finalize(IERROR)
#endif
stop '********** Program terminated normally.'
20 write (iout,*) "Error reading coordinates"
#ifdef MPI
- call MPI_Finalize(MPI_COMM_WORLD,IERROR)
+ call MPI_Finalize(IERROR)
#endif
stop
30 write (iout,*) "Error reading reference structure"
#ifdef MPI
- call MPI_Finalize(MPI_COMM_WORLD,IERROR)
+ call MPI_Finalize(IERROR)
#endif
stop
end
if (lprint) then
write (iout,'(/a/)') 'Torsional constants:'
+ do l=1,maxinter
do i=1,nsccortyp
do j=1,nsccortyp
write (iout,*) 'ityp',i,' jtyp',j
enddo
enddo
enddo
+ enddo
endif
C
character*5 ctemper
integer ilen
external ilen
- real*4 Fdimless(maxconf)
+ real*4 Fdimless(maxconf),Fdimless_(maxconf)
double precision energia(0:max_ene)
+ double precision totfree_(maxconf),entfac_(maxconf)
do i=1,ncon
list_conf(i)=i
enddo
call int_from_cart1(.false.)
call etotal(energia(0),fT)
totfree(i)=energia(0)
-c#define DEBUG
+#define DEBUG
#ifdef DEBUG
write (iout,*) i," energia",(energia(j),j=0,20)
call enerprint(energia(0),ft)
call flush(iout)
#endif
-c#undef DEBUG
+#undef DEBUG
do k=1,max_ene
enetb(k,i)=energia(k)
enddo
& +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
& +wbond*estr
#endif
+#ifdef MPI
+ Fdimless_(i)=beta_h(ib)*etot+entfac(ii)
+ totfree_(i)=etot
+#ifdef DEBUG
+ write (iout,*) "etrop", i,ii,ib,
+ & 1.0d0/(1.987d-3*beta_h(ib)),totfree(i),
+ & entfac(ii),Fdimless_(i)
+#endif
+#else
Fdimless(i)=beta_h(ib)*etot+entfac(ii)
totfree(i)=etot
#ifdef DEBUG
-
write (iout,*) "etrop", i,ii,ib,
& 1.0d0/(1.987d-3*beta_h(ib)),totfree(i),
& entfac(ii),Fdimless(i)
#endif
+#endif
enddo ! i
#ifdef MPI
- call MPI_Gatherv(Fdimless(1),scount(me),
+ call MPI_Gatherv(Fdimless_(1),scount(me),
& MPI_REAL,Fdimless(1),
& scount(0),idispl(0),MPI_REAL,Master,
& MPI_COMM_WORLD, IERROR)
- call MPI_Gatherv(totfree(1),scount(me),
+ call MPI_Gatherv(totfree_(1),scount(me),
& MPI_DOUBLE_PRECISION,totfree(1),
& scount(0),idispl(0),MPI_DOUBLE_PRECISION,Master,
& MPI_COMM_WORLD, IERROR)
call MPI_Gatherv(entfac(indstart(me)+1),scount(me),
- & MPI_DOUBLE_PRECISION,entfac(1),
+ & MPI_DOUBLE_PRECISION,entfac_(1),
& scount(0),idispl(0),MPI_DOUBLE_PRECISION,Master,
& MPI_COMM_WORLD, IERROR)
if (me.eq.Master) then
+ do i=1,ncon
+ entfac(i)=entfac_(i)
+ enddo
#endif
c#define DEBUG
#ifdef DEBUG
sumprob=0.0
do i=1,min0(ncon,maxstr_proc)-1
sumprob=sumprob+dexp(dble(-fdimless(i)+fdimless(1)))/qfree
-c#define DEBUG
#ifdef DEBUG
write (iout,*) 'i=',i,ib,beta_h(ib),
& 1.0d0/(1.987d-3*beta_h(ib)),list_conf(i),
& totfree(list_conf(i)),
& -entfac(list_conf(i)),fdimless(i),sumprob
#endif
-c#undef DEBUG
if (sumprob.gt.prob_limit) goto 122
c if (sumprob.gt.1.00d0) goto 122
nlist=nlist+1
enddo
enddo
else
+ itmp=0
#if (defined(AIX) && !defined(JUBL))
call xdrf3dfcoord_(ixdrf, csingle, itmp, prec, iret)
if (iret.eq.0) goto 101
min_var=(index(controlcard,'MINVAR').gt.0)
plot_tree=(index(controlcard,'PLOT_TREE').gt.0)
punch_dist=(index(controlcard,'PUNCH_DIST').gt.0)
- call readi(controlcard,'NCUT',ncut,1)
+ call readi(controlcard,'NCUT',ncut,0)
+ call readi(controlcard,'NCLUST',nclust,5)
call readi(controlcard,'NSTART',nstart,0)
call readi(controlcard,'NEND',nend,0)
call reada(controlcard,'ECUT',ecut,10.0d0)
lgrp=(index(controlcard,'LGRP').gt.0)
caonly=(index(controlcard,'CA_ONLY').gt.0)
print_dist=(index(controlcard,'PRINT_DIST').gt.0)
- call multreada(controlcard,'CUTOFF',rcutoff,ncut,-1.0d0)
+ if (ncut.gt.0)
+ & call multreada(controlcard,'CUTOFF',rcutoff,ncut,-1.0d0)
call readi(controlcard,'IOPT',iopt,2)
lside = index(controlcard,"SIDE").gt.0
efree = index(controlcard,"EFREE").gt.0
do i=1,nres
itype(i)=rescode(i,sequence(i),iscode)
enddo
+ if (itype(2).eq.10.and.itype(1).eq.ntyp1) then
+ write (iout,*)
+ & "Glycine is the first full residue, initial dummy deleted"
+ do i=1,nres
+ itype(i)=itype(i+1)
+ enddo
+ nres=nres-1
+ endif
+ if (itype(nres-1).eq.10.and.itype(nres).eq.ntyp1) then
+ write (iout,*)
+ & "Glycine is the last full residue, terminal dummy deleted"
+ nres=nres-1
+ endif
print *,nres
print '(20i4)',(itype(i),i=1,nres)
enddo
enddo
endif
- call contact(.true.,ncont_ref,icont_ref)
+ call contact(print_contact_map,ncont_ref,icont_ref)
endif
c Read distance restraints
if (constr_dist.gt.0) then
ave_dim=0.0
amax_dim=0.0
c write (iout,*) "ecut",ecut
+ emin=totfree(nconf(igr,1))
+c write (2,*) "emin",emin," ecut",ecut
do i=2,licz(igr)
ii=nconf(igr,i)
+c write (2,*) " igr",igr," i",i," ii",ii," totfree",totfree(ii),
+c & " emin",emin," diff",totfree(ii)-emin," ecut",ecut
if (totfree(ii)-emin .gt. ecut) goto 10
do j=1,i-1
jj=nconf(igr,j)
- if (jj.eq.1) exit
+c if (jj.eq.1) exit
if (ii.lt.jj) then
ind=ioffset(ncon,ii,jj)
else
& '; average distance in the family:',ave_dim
rmsave(igr)=0.0d0
qpart=0.0d0
+ emin=totfree(nconf(igr,1))
do i=1,licz(igr)
icon=nconf(igr,i)
- boltz=dexp(-totfree(icon))
+ boltz=dexp(-totfree(icon)+emin)
+c write (2,*) "igr",igr," i",i," icon",icon," totfree",
+c & totfree(icon)," emin",emin," boltz",boltz," rms",rmstb(icon)
rmsave(igr)=rmsave(igr)+boltz*rmstb(icon)
qpart=qpart+boltz
enddo
--- /dev/null
+../../../lib/xdrf
\ No newline at end of file
+++ /dev/null
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC = gcc
-CFLAGS = -O
-
-M4 = m4
-M4FILE = underscore.m4
-
-libxdrf.a: libxdrf.o ftocstr.o
- ar cr libxdrf.a $?
-
-clean:
- rm -f libxdrf.o ftocstr.o libxdrf.a
-
-ftocstr.o: ftocstr.c
- $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o: libxdrf.m4 $(M4FILE)
- $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
- $(CC) $(CFLAGS) -c libxdrf.c
- rm -f libxdrf.c
-
+++ /dev/null
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = /usr/bin/blrts_xlc
-CPPC = /usr/bin/blrts_xlc
-
-CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
-
-M4 = m4
-M4FILE = RS6K.m4
-
-libxdrf.a: libxdrf.o ftocstr.o xdr_array.o xdr.o xdr_float.o xdr_stdio.o
- ar cr libxdrf.a $?
-
-clean:
- rm -f *.o libxdrf.a
-
-ftocstr.o: ftocstr.c
- $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o: libxdrf.m4 $(M4FILE)
- $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
- $(CC) $(CFLAGS) -c libxdrf.c
-# rm -f libxdrf.c
-
+++ /dev/null
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC = cc
-CFLAGS = -O
-
-M4 = m4
-M4FILE = underscore.m4
-
-libxdrf.a: libxdrf.o ftocstr.o
- ar cr libxdrf.a $?
-
-clean:
- rm -f libxdrf.o ftocstr.o libxdrf.a
-
-ftocstr.o: ftocstr.c
- $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o: libxdrf.m4 $(M4FILE)
- $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
- $(CC) $(CFLAGS) -c libxdrf.c
- rm -f libxdrf.c
-
+++ /dev/null
-divert(-1)
-undefine(`len')
-#
-# do nothing special to FORTRAN function names
-#
-define(`FUNCTION',`$1')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
-
+++ /dev/null
-
-
-int ftocstr(ds, dl, ss, sl)
- char *ds, *ss; /* dst, src ptrs */
- int dl; /* dst max len */
- int sl; /* src len */
-{
- char *p;
-
- for (p = ss + sl; --p >= ss && *p == ' '; ) ;
- sl = p - ss + 1;
- dl--;
- ds[0] = 0;
- if (sl > dl)
- return 1;
- while (sl--)
- (*ds++ = *ss++);
- *ds = '\0';
- return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
- char *ds; /* dest space */
- int dl; /* max dest length */
- char *ss; /* src string (0-term) */
-{
- while (dl && *ss) {
- *ds++ = *ss++;
- dl--;
- }
- while (dl--)
- *ds++ = ' ';
- return 0;
-}
+++ /dev/null
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- | are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- | xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- | character *(*) filename
- | character *(*) mode
- |
- | this will open the file with the given filename (string)
- | and the given mode, it returns an id in xdrid, which is
- | to be used in all other calls to xdrf routines.
- | mode is 'w' to create, or update an file, for all other
- | values of mode the file is opened for reading
- |
- | you need to call xdrfclose to flush the output and close
- | the file.
- | Note that you should not use xdrstdio_create, which comes with the
- | standard xdr library
- |
- | xdrfclose(xdrid, ret)
- | flush the data to the file, and closes the file;
- | You should not use xdr_destroy (which comes standard with
- | the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- | integer pb
- |
- | This filter produces values of either 1 or 0
- |
- | xdrfchar(xdrid, cp, ret)
- | character cp
- |
- | filter that translate between characters and their xdr representation
- | Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- | double dp
- |
- | read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- | float fp
- |
- | read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- | integer ip
- |
- | read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- | integer lp
- |
- | this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- | integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- | character *(*)
- | integer maxsize
- |
- | read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- | character *(*)
- |
- | read/write a string (it is the same as xdrfstring accept that it finds
- | the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- | character *(*)
- | integer size
- | external xdrfproc
- |
- | read/write an array pointed to by cp, with number of elements
- | defined by 'size'. the routine 'xdrfproc' is the name
- | of one of the above routines to read/write data (like xdrfdouble)
- | In contrast with the c-version you don't need to specify the
- | byte size of an element.
- | xdrfstring is not allowed here (it is in the c version)
- |
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- | real (*) fp
- | real precision
- | integer size
- |
- | this is *NOT* a standard xdr routine. I named it this way, because
- | it invites people to use the other xdr routines.
- | It is introduced to store specifically 3d coordinates of molecules
- | (as found in molecular dynamics) and it writes it in a compressed way.
- | It starts by multiplying all numbers by precision and
- | rounding the result to integer. effectively converting
- | all floating point numbers to fixed point.
- | it uses an algorithm for compression that is optimized for
- | molecular data, but could be used for other 3d coordinates
- | as well. There is subtantial overhead involved, so call this
- | routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- | This will open the file with the given filename and the
- | given mode. You should pass it an allocated XDR struct
- | in xdrs, to be used in all other calls to xdr routines.
- | Mode is 'w' to create, or update an file, and for all
- | other values of mode the file is opened for reading.
- | You need to call xdrclose to flush the output and close
- | the file.
- |
- | Note that you should not use xdrstdio_create, which
- | comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- | Flush the data to the file, and close the file;
- | You should not use xdr_destroy (which comes standard
- | with the xdr libraries).
- |
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- | This is \fInot\fR a standard xdr routine. I named it this
- | way, because it invites people to use the other xdr
- | routines.
- |
- | (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
- *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
- cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
- *ret = xdr_char(xdridptr[*xdrid], cp);
- cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
- *ret = xdr_double(xdridptr[*xdrid], dp);
- cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
- *ret = xdr_float(xdridptr[*xdrid], fp);
- cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
- *ret = xdr_int(xdridptr[*xdrid], ip);
- cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
- *ret = xdr_long(xdridptr[*xdrid], lp);
- cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
- *ret = xdr_short(xdridptr[*xdrid], sp);
- cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
- *ret = xdr_u_char(xdridptr[*xdrid], ucp);
- cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
- *ret = xdr_u_long(xdridptr[*xdrid], ulp);
- cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
- *ret = xdr_u_short(xdridptr[*xdrid], usp);
- cnt += sizeof(unsigned short);
-}
-
-void
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
- *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
- char *tsp;
-
- tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
- if (tsp == NULL) {
- *ret = -1;
- return;
- }
- if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
- *ret = -1;
- free(tsp);
- return;
- }
- *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
- ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
- cnt += *maxsize;
- free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid, STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
- char *tsp;
- int maxsize;
- maxsize = (STRING_LEN(sp)) + 1;
- tsp = (char*) malloc(maxsize * sizeof(char));
- if (tsp == NULL) {
- *ret = -1;
- return;
- }
- if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
- *ret = -1;
- free(tsp);
- return;
- }
- *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
- ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
- cnt += maxsize;
- free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
- *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
- cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
- *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
- *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
- int lcnt;
- cnt = 0;
- for (lcnt = 0; lcnt < *size; lcnt++) {
- elproc(xdrid, (cp+cnt) , ret);
- }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
- *ret = xdrclose(xdridptr[*xdrid]);
- cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid, STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
- char fname[512];
- char fmode[3];
-
- if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
- *ret = 0;
- }
- if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
- STRING_LEN(mode))) {
- *ret = 0;
- }
-
- *xdrid = xdropen(NULL, fname, fmode);
- if (*xdrid == 0)
- *ret = 0;
- else
- *ret = 1;
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
- 80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
- 812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
- 8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
- 82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
- 832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
- 8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
- static int init_done = 0;
- enum xdr_op lmode;
- const char *type1;
- int xdrid;
-
- if (init_done == 0) {
- for (xdrid = 1; xdrid < MAXID; xdrid++) {
- xdridptr[xdrid] = NULL;
- }
- init_done = 1;
- }
- xdrid = 1;
- while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
- xdrid++;
- }
- if (xdrid == MAXID) {
- return 0;
- }
- if (*type == 'w' || *type == 'W') {
- type = "w+";
- type1 = "w+";
- lmode = XDR_ENCODE;
- } else if (*type == 'a' || *type == 'A') {
- type = "w+";
- type1 = "a+";
- lmode = XDR_ENCODE;
- } else {
- type = "r";
- type1 = "r";
- lmode = XDR_DECODE;
- }
- xdrfiles[xdrid] = fopen(filename, type1);
- if (xdrfiles[xdrid] == NULL) {
- xdrs = NULL;
- return 0;
- }
- xdrmodes[xdrid] = *type;
- /* next test isn't usefull in the case of C language
- * but is used for the Fortran interface
- * (C users are expected to pass the address of an already allocated
- * XDR staructure)
- */
- if (xdrs == NULL) {
- xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
- xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
- } else {
- xdridptr[xdrid] = xdrs;
- xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
- }
- return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-
-int xdrclose(XDR *xdrs) {
- int xdrid;
-
- if (xdrs == NULL) {
- fprintf(stderr, "xdrclose: passed a NULL pointer\n");
- exit(1);
- }
- for (xdrid = 1; xdrid < MAXID; xdrid++) {
- if (xdridptr[xdrid] == xdrs) {
-
- xdr_destroy(xdrs);
- fclose(xdrfiles[xdrid]);
- xdridptr[xdrid] = NULL;
- return 1;
- }
- }
- fprintf(stderr, "xdrclose: no such open xdr file\n");
- exit(1);
-
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-
- unsigned int cnt, lastbyte;
- int lastbits;
- unsigned char * cbuf;
-
- cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
- cnt = (unsigned int) buf[0];
- lastbits = buf[1];
- lastbyte =(unsigned int) buf[2];
- while (num_of_bits >= 8) {
- lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
- cbuf[cnt++] = lastbyte >> lastbits;
- num_of_bits -= 8;
- }
- if (num_of_bits > 0) {
- lastbyte = (lastbyte << num_of_bits) | num;
- lastbits += num_of_bits;
- if (lastbits >= 8) {
- lastbits -= 8;
- cbuf[cnt++] = lastbyte >> lastbits;
- }
- }
- buf[0] = cnt;
- buf[1] = lastbits;
- buf[2] = lastbyte;
- if (lastbits>0) {
- cbuf[cnt] = lastbyte << (8 - lastbits);
- }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
- unsigned int num = 1;
- int num_of_bits = 0;
-
- while (size >= num && num_of_bits < 32) {
- num_of_bits++;
- num <<= 1;
- }
- return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
- int i, num;
- unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
- num_of_bytes = 1;
- bytes[0] = 1;
- num_of_bits = 0;
- for (i=0; i < num_of_ints; i++) {
- tmp = 0;
- for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
- tmp = bytes[bytecnt] * sizes[i] + tmp;
- bytes[bytecnt] = tmp & 0xff;
- tmp >>= 8;
- }
- while (tmp != 0) {
- bytes[bytecnt++] = tmp & 0xff;
- tmp >>= 8;
- }
- num_of_bytes = bytecnt;
- }
- num = 1;
- num_of_bytes--;
- while (bytes[num_of_bytes] >= num) {
- num_of_bits++;
- num *= 2;
- }
- return num_of_bits + num_of_bytes * 8;
-
-}
-
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer.
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
- unsigned int sizes[], unsigned int nums[]) {
-
- int i;
- unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
- tmp = nums[0];
- num_of_bytes = 0;
- do {
- bytes[num_of_bytes++] = tmp & 0xff;
- tmp >>= 8;
- } while (tmp != 0);
-
- for (i = 1; i < num_of_ints; i++) {
- if (nums[i] >= sizes[i]) {
- fprintf(stderr,"major breakdown in sendints num %d doesn't "
- "match size %d\n", nums[i], sizes[i]);
- exit(1);
- }
- /* use one step multiply */
- tmp = nums[i];
- for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
- tmp = bytes[bytecnt] * sizes[i] + tmp;
- bytes[bytecnt] = tmp & 0xff;
- tmp >>= 8;
- }
- while (tmp != 0) {
- bytes[bytecnt++] = tmp & 0xff;
- tmp >>= 8;
- }
- num_of_bytes = bytecnt;
- }
- if (num_of_bits >= num_of_bytes * 8) {
- for (i = 0; i < num_of_bytes; i++) {
- sendbits(buf, 8, bytes[i]);
- }
- sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
- } else {
- for (i = 0; i < num_of_bytes-1; i++) {
- sendbits(buf, 8, bytes[i]);
- }
- sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
- }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- |
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
- int cnt, num;
- unsigned int lastbits, lastbyte;
- unsigned char * cbuf;
- int mask = (1 << num_of_bits) -1;
-
- cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
- cnt = buf[0];
- lastbits = (unsigned int) buf[1];
- lastbyte = (unsigned int) buf[2];
-
- num = 0;
- while (num_of_bits >= 8) {
- lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
- num |= (lastbyte >> lastbits) << (num_of_bits - 8);
- num_of_bits -=8;
- }
- if (num_of_bits > 0) {
- if (lastbits < num_of_bits) {
- lastbits += 8;
- lastbyte = (lastbyte << 8) | cbuf[cnt++];
- }
- lastbits -= num_of_bits;
- num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
- }
- num &= mask;
- buf[0] = cnt;
- buf[1] = lastbits;
- buf[2] = lastbyte;
- return num;
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
- unsigned int sizes[], int nums[]) {
- int bytes[32];
- int i, j, num_of_bytes, p, num;
-
- bytes[1] = bytes[2] = bytes[3] = 0;
- num_of_bytes = 0;
- while (num_of_bits > 8) {
- bytes[num_of_bytes++] = receivebits(buf, 8);
- num_of_bits -= 8;
- }
- if (num_of_bits > 0) {
- bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
- }
- for (i = num_of_ints-1; i > 0; i--) {
- num = 0;
- for (j = num_of_bytes-1; j >=0; j--) {
- num = (num << 8) | bytes[j];
- p = num / sizes[i];
- bytes[j] = p;
- num = num - p * sizes[i];
- }
- nums[i] = num;
- }
- nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-
-
- static int *ip = NULL;
- static int oldsize;
- static int *buf;
-
- int minint[3], maxint[3], mindiff, *lip, diff;
- int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
- int minidx, maxidx;
- unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
- int flag, k;
- int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
- float *lfp, lf;
- int tmp, *thiscoord, prevcoord[3];
- unsigned int tmpcoord[30];
-
- int bufsize, xdrid, lsize;
- unsigned int bitsize;
- float inv_precision;
- int errval = 1;
-
- /* find out if xdrs is opened for reading or for writing */
- xdrid = 0;
- while (xdridptr[xdrid] != xdrs) {
- xdrid++;
- if (xdrid >= MAXID) {
- fprintf(stderr, "xdr error. no open xdr stream\n");
- exit (1);
- }
- }
- if (xdrmodes[xdrid] == 'w') {
-
- /* xdrs is open for writing */
-
- if (xdr_int(xdrs, size) == 0)
- return 0;
- size3 = *size * 3;
- /* when the number of coordinates is small, don't try to compress; just
- * write them as floats using xdr_vector
- */
- if (*size <= 9 ) {
- return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
- (xdrproc_t)xdr_float));
- }
-
- xdr_float(xdrs, precision);
- if (ip == NULL) {
- ip = (int *)malloc(size3 * sizeof(*ip));
- if (ip == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- bufsize = size3 * 1.2;
- buf = (int *)malloc(bufsize * sizeof(*buf));
- if (buf == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- oldsize = *size;
- } else if (*size > oldsize) {
- ip = (int *)realloc(ip, size3 * sizeof(*ip));
- if (ip == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- bufsize = size3 * 1.2;
- buf = (int *)realloc(buf, bufsize * sizeof(*buf));
- if (buf == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- oldsize = *size;
- }
- /* buf[0-2] are special and do not contain actual data */
- buf[0] = buf[1] = buf[2] = 0;
- minint[0] = minint[1] = minint[2] = INT_MAX;
- maxint[0] = maxint[1] = maxint[2] = INT_MIN;
- prevrun = -1;
- lfp = fp;
- lip = ip;
- mindiff = INT_MAX;
- oldlint1 = oldlint2 = oldlint3 = 0;
- while(lfp < fp + size3 ) {
- /* find nearest integer */
- if (*lfp >= 0.0)
- lf = *lfp * *precision + 0.5;
- else
- lf = *lfp * *precision - 0.5;
- if (fabs(lf) > MAXABS) {
- /* scaling would cause overflow */
- errval = 0;
- }
- lint1 = lf;
- if (lint1 < minint[0]) minint[0] = lint1;
- if (lint1 > maxint[0]) maxint[0] = lint1;
- *lip++ = lint1;
- lfp++;
- if (*lfp >= 0.0)
- lf = *lfp * *precision + 0.5;
- else
- lf = *lfp * *precision - 0.5;
- if (fabs(lf) > MAXABS) {
- /* scaling would cause overflow */
- errval = 0;
- }
- lint2 = lf;
- if (lint2 < minint[1]) minint[1] = lint2;
- if (lint2 > maxint[1]) maxint[1] = lint2;
- *lip++ = lint2;
- lfp++;
- if (*lfp >= 0.0)
- lf = *lfp * *precision + 0.5;
- else
- lf = *lfp * *precision - 0.5;
- if (fabs(lf) > MAXABS) {
- /* scaling would cause overflow */
- errval = 0;
- }
- lint3 = lf;
- if (lint3 < minint[2]) minint[2] = lint3;
- if (lint3 > maxint[2]) maxint[2] = lint3;
- *lip++ = lint3;
- lfp++;
- diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
- if (diff < mindiff && lfp > fp + 3)
- mindiff = diff;
- oldlint1 = lint1;
- oldlint2 = lint2;
- oldlint3 = lint3;
- }
- xdr_int(xdrs, &(minint[0]));
- xdr_int(xdrs, &(minint[1]));
- xdr_int(xdrs, &(minint[2]));
-
- xdr_int(xdrs, &(maxint[0]));
- xdr_int(xdrs, &(maxint[1]));
- xdr_int(xdrs, &(maxint[2]));
-
- if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
- (float)maxint[1] - (float)minint[1] >= MAXABS ||
- (float)maxint[2] - (float)minint[2] >= MAXABS) {
- /* turning value in unsigned by subtracting minint
- * would cause overflow
- */
- errval = 0;
- }
- sizeint[0] = maxint[0] - minint[0]+1;
- sizeint[1] = maxint[1] - minint[1]+1;
- sizeint[2] = maxint[2] - minint[2]+1;
-
- /* check if one of the sizes is to big to be multiplied */
- if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
- bitsizeint[0] = sizeofint(sizeint[0]);
- bitsizeint[1] = sizeofint(sizeint[1]);
- bitsizeint[2] = sizeofint(sizeint[2]);
- bitsize = 0; /* flag the use of large sizes */
- } else {
- bitsize = sizeofints(3, sizeint);
- }
- lip = ip;
- luip = (unsigned int *) ip;
- smallidx = FIRSTIDX;
- while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
- smallidx++;
- }
- xdr_int(xdrs, &smallidx);
- maxidx = MIN(LASTIDX, smallidx + 8) ;
- minidx = maxidx - 8; /* often this equal smallidx */
- smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
- small = magicints[smallidx] / 2;
- sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
- larger = magicints[maxidx] / 2;
- i = 0;
- while (i < *size) {
- is_small = 0;
- thiscoord = (int *)(luip) + i * 3;
- if (smallidx < maxidx && i >= 1 &&
- abs(thiscoord[0] - prevcoord[0]) < larger &&
- abs(thiscoord[1] - prevcoord[1]) < larger &&
- abs(thiscoord[2] - prevcoord[2]) < larger) {
- is_smaller = 1;
- } else if (smallidx > minidx) {
- is_smaller = -1;
- } else {
- is_smaller = 0;
- }
- if (i + 1 < *size) {
- if (abs(thiscoord[0] - thiscoord[3]) < small &&
- abs(thiscoord[1] - thiscoord[4]) < small &&
- abs(thiscoord[2] - thiscoord[5]) < small) {
- /* interchange first with second atom for better
- * compression of water molecules
- */
- tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
- thiscoord[3] = tmp;
- tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
- thiscoord[4] = tmp;
- tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
- thiscoord[5] = tmp;
- is_small = 1;
- }
-
- }
- tmpcoord[0] = thiscoord[0] - minint[0];
- tmpcoord[1] = thiscoord[1] - minint[1];
- tmpcoord[2] = thiscoord[2] - minint[2];
- if (bitsize == 0) {
- sendbits(buf, bitsizeint[0], tmpcoord[0]);
- sendbits(buf, bitsizeint[1], tmpcoord[1]);
- sendbits(buf, bitsizeint[2], tmpcoord[2]);
- } else {
- sendints(buf, 3, bitsize, sizeint, tmpcoord);
- }
- prevcoord[0] = thiscoord[0];
- prevcoord[1] = thiscoord[1];
- prevcoord[2] = thiscoord[2];
- thiscoord = thiscoord + 3;
- i++;
-
- run = 0;
- if (is_small == 0 && is_smaller == -1)
- is_smaller = 0;
- while (is_small && run < 8*3) {
- if (is_smaller == -1 && (
- SQR(thiscoord[0] - prevcoord[0]) +
- SQR(thiscoord[1] - prevcoord[1]) +
- SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
- is_smaller = 0;
- }
-
- tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
- tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
- tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-
- prevcoord[0] = thiscoord[0];
- prevcoord[1] = thiscoord[1];
- prevcoord[2] = thiscoord[2];
-
- i++;
- thiscoord = thiscoord + 3;
- is_small = 0;
- if (i < *size &&
- abs(thiscoord[0] - prevcoord[0]) < small &&
- abs(thiscoord[1] - prevcoord[1]) < small &&
- abs(thiscoord[2] - prevcoord[2]) < small) {
- is_small = 1;
- }
- }
- if (run != prevrun || is_smaller != 0) {
- prevrun = run;
- sendbits(buf, 1, 1); /* flag the change in run-length */
- sendbits(buf, 5, run+is_smaller+1);
- } else {
- sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
- }
- for (k=0; k < run; k+=3) {
- sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);
- }
- if (is_smaller != 0) {
- smallidx += is_smaller;
- if (is_smaller < 0) {
- small = smaller;
- smaller = magicints[smallidx-1] / 2;
- } else {
- smaller = small;
- small = magicints[smallidx] / 2;
- }
- sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
- }
- }
- if (buf[1] != 0) buf[0]++;;
- xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
- return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
- } else {
-
- /* xdrs is open for reading */
-
- if (xdr_int(xdrs, &lsize) == 0)
- return 0;
- if (*size != 0 && lsize != *size) {
- fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
- "%d arg vs %d in file", *size, lsize);
- }
- *size = lsize;
- size3 = *size * 3;
- if (*size <= 9) {
- return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
- (xdrproc_t)xdr_float));
- }
- xdr_float(xdrs, precision);
- if (ip == NULL) {
- ip = (int *)malloc(size3 * sizeof(*ip));
- if (ip == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- bufsize = size3 * 1.2;
- buf = (int *)malloc(bufsize * sizeof(*buf));
- if (buf == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- oldsize = *size;
- } else if (*size > oldsize) {
- ip = (int *)realloc(ip, size3 * sizeof(*ip));
- if (ip == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- bufsize = size3 * 1.2;
- buf = (int *)realloc(buf, bufsize * sizeof(*buf));
- if (buf == NULL) {
- fprintf(stderr,"malloc failed\n");
- exit(1);
- }
- oldsize = *size;
- }
- buf[0] = buf[1] = buf[2] = 0;
-
- xdr_int(xdrs, &(minint[0]));
- xdr_int(xdrs, &(minint[1]));
- xdr_int(xdrs, &(minint[2]));
-
- xdr_int(xdrs, &(maxint[0]));
- xdr_int(xdrs, &(maxint[1]));
- xdr_int(xdrs, &(maxint[2]));
-
- sizeint[0] = maxint[0] - minint[0]+1;
- sizeint[1] = maxint[1] - minint[1]+1;
- sizeint[2] = maxint[2] - minint[2]+1;
-
- /* check if one of the sizes is to big to be multiplied */
- if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
- bitsizeint[0] = sizeofint(sizeint[0]);
- bitsizeint[1] = sizeofint(sizeint[1]);
- bitsizeint[2] = sizeofint(sizeint[2]);
- bitsize = 0; /* flag the use of large sizes */
- } else {
- bitsize = sizeofints(3, sizeint);
- }
-
- xdr_int(xdrs, &smallidx);
- maxidx = MIN(LASTIDX, smallidx + 8) ;
- minidx = maxidx - 8; /* often this equal smallidx */
- smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
- small = magicints[smallidx] / 2;
- sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
- larger = magicints[maxidx];
-
- /* buf[0] holds the length in bytes */
-
- if (xdr_int(xdrs, &(buf[0])) == 0)
- return 0;
- if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
- return 0;
- buf[0] = buf[1] = buf[2] = 0;
-
- lfp = fp;
- inv_precision = 1.0 / * precision;
- run = 0;
- i = 0;
- lip = ip;
- while ( i < lsize ) {
- thiscoord = (int *)(lip) + i * 3;
-
- if (bitsize == 0) {
- thiscoord[0] = receivebits(buf, bitsizeint[0]);
- thiscoord[1] = receivebits(buf, bitsizeint[1]);
- thiscoord[2] = receivebits(buf, bitsizeint[2]);
- } else {
- receiveints(buf, 3, bitsize, sizeint, thiscoord);
- }
-
- i++;
- thiscoord[0] += minint[0];
- thiscoord[1] += minint[1];
- thiscoord[2] += minint[2];
-
- prevcoord[0] = thiscoord[0];
- prevcoord[1] = thiscoord[1];
- prevcoord[2] = thiscoord[2];
-
-
- flag = receivebits(buf, 1);
- is_smaller = 0;
- if (flag == 1) {
- run = receivebits(buf, 5);
- is_smaller = run % 3;
- run -= is_smaller;
- is_smaller--;
- }
- if (run > 0) {
- thiscoord += 3;
- for (k = 0; k < run; k+=3) {
- receiveints(buf, 3, smallidx, sizesmall, thiscoord);
- i++;
- thiscoord[0] += prevcoord[0] - small;
- thiscoord[1] += prevcoord[1] - small;
- thiscoord[2] += prevcoord[2] - small;
- if (k == 0) {
- /* interchange first with second atom for better
- * compression of water molecules
- */
- tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
- prevcoord[0] = tmp;
- tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
- prevcoord[1] = tmp;
- tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
- prevcoord[2] = tmp;
- *lfp++ = prevcoord[0] * inv_precision;
- *lfp++ = prevcoord[1] * inv_precision;
- *lfp++ = prevcoord[2] * inv_precision;
- } else {
- prevcoord[0] = thiscoord[0];
- prevcoord[1] = thiscoord[1];
- prevcoord[2] = thiscoord[2];
- }
- *lfp++ = thiscoord[0] * inv_precision;
- *lfp++ = thiscoord[1] * inv_precision;
- *lfp++ = thiscoord[2] * inv_precision;
- }
- } else {
- *lfp++ = thiscoord[0] * inv_precision;
- *lfp++ = thiscoord[1] * inv_precision;
- *lfp++ = thiscoord[2] * inv_precision;
- }
- smallidx += is_smaller;
- if (is_smaller < 0) {
- small = smaller;
- if (smallidx > FIRSTIDX) {
- smaller = magicints[smallidx - 1] /2;
- } else {
- smaller = 0;
- }
- } else if (is_smaller > 0) {
- smaller = small;
- small = magicints[smallidx] / 2;
- }
- sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
- }
- }
- return 1;
-}
-
-
-
+++ /dev/null
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-/* fixincludes should not add extern "C" to this file */
-/*
- * Rpc additions to <sys/types.h>
- */
-#ifndef _RPC_TYPES_H
-#define _RPC_TYPES_H 1
-
-typedef int bool_t;
-typedef int enum_t;
-/* This needs to be changed to uint32_t in the future */
-typedef unsigned long rpcprog_t;
-typedef unsigned long rpcvers_t;
-typedef unsigned long rpcproc_t;
-typedef unsigned long rpcprot_t;
-typedef unsigned long rpcport_t;
-
-#define __dontcare__ -1
-
-#ifndef FALSE
-# define FALSE (0)
-#endif
-
-#ifndef TRUE
-# define TRUE (1)
-#endif
-
-#ifndef NULL
-# define NULL 0
-#endif
-
-#include <stdlib.h> /* For malloc decl. */
-#define mem_alloc(bsize) malloc(bsize)
-/*
- * XXX: This must not use the second argument, or code in xdr_array.c needs
- * to be modified.
- */
-#define mem_free(ptr, bsize) free(ptr)
-
-#ifndef makedev /* ie, we haven't already included it */
-#include <sys/types.h>
-#endif
-
-#ifndef __u_char_defined
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-# define __u_char_defined
-#endif
-#ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-# define __daddr_t_defined
-#endif
-
-#include <sys/time.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-
-#ifndef INADDR_LOOPBACK
-#define INADDR_LOOPBACK (u_long)0x7F000001
-#endif
-#ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN 64
-#endif
-
-#endif /* rpc/types.h */
+++ /dev/null
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
+++ /dev/null
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
-#endif
-
-/*
- * xdr.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- *
- * These are the "generic" xdr routines used to serialize and de-serialize
- * most common data items. See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <limits.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "types.h"
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-/*
- * constants specific to the xdr "protocol"
- */
-#define XDR_FALSE ((long) 0)
-#define XDR_TRUE ((long) 1)
-#define LASTUNSIGNED ((u_int) 0-1)
-
-/*
- * for unit alignment
- */
-static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
-
-/*
- * Free a data structure using XDR
- * Not a filter, but a convenient utility nonetheless
- */
-void
-xdr_free (xdrproc_t proc, char *objp)
-{
- XDR x;
-
- x.x_op = XDR_FREE;
- (*proc) (&x, objp);
-}
-
-/*
- * XDR nothing
- */
-bool_t
-xdr_void (void)
-{
- return TRUE;
-}
-INTDEF(xdr_void)
-
-/*
- * XDR integers
- */
-bool_t
-xdr_int (XDR *xdrs, int *ip)
-{
-
-#if INT_MAX < LONG_MAX
- long l;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- l = (long) *ip;
- return XDR_PUTLONG (xdrs, &l);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &l))
- {
- return FALSE;
- }
- *ip = (int) l;
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-#elif INT_MAX == LONG_MAX
- return INTUSE(xdr_long) (xdrs, (long *) ip);
-#elif INT_MAX == SHRT_MAX
- return INTUSE(xdr_short) (xdrs, (short *) ip);
-#else
-#error unexpected integer sizes in_xdr_int()
-#endif
-}
-INTDEF(xdr_int)
-
-/*
- * XDR unsigned integers
- */
-bool_t
-xdr_u_int (XDR *xdrs, u_int *up)
-{
-#if UINT_MAX < ULONG_MAX
- long l;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- l = (u_long) * up;
- return XDR_PUTLONG (xdrs, &l);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &l))
- {
- return FALSE;
- }
- *up = (u_int) (u_long) l;
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-#elif UINT_MAX == ULONG_MAX
- return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
-#elif UINT_MAX == USHRT_MAX
- return INTUSE(xdr_short) (xdrs, (short *) up);
-#else
-#error unexpected integer sizes in_xdr_u_int()
-#endif
-}
-INTDEF(xdr_u_int)
-
-/*
- * XDR long integers
- * The definition of xdr_long() is kept for backward
- * compatibility. Instead xdr_int() should be used.
- */
-bool_t
-xdr_long (XDR *xdrs, long *lp)
-{
-
- if (xdrs->x_op == XDR_ENCODE
- && (sizeof (int32_t) == sizeof (long)
- || (int32_t) *lp == *lp))
- return XDR_PUTLONG (xdrs, lp);
-
- if (xdrs->x_op == XDR_DECODE)
- return XDR_GETLONG (xdrs, lp);
-
- if (xdrs->x_op == XDR_FREE)
- return TRUE;
-
- return FALSE;
-}
-INTDEF(xdr_long)
-
-/*
- * XDR unsigned long integers
- * The definition of xdr_u_long() is kept for backward
- * compatibility. Instead xdr_u_int() should be used.
- */
-bool_t
-xdr_u_long (XDR *xdrs, u_long *ulp)
-{
- switch (xdrs->x_op)
- {
- case XDR_DECODE:
- {
- long int tmp;
-
- if (XDR_GETLONG (xdrs, &tmp) == FALSE)
- return FALSE;
-
- *ulp = (uint32_t) tmp;
- return TRUE;
- }
-
- case XDR_ENCODE:
- if (sizeof (uint32_t) != sizeof (u_long)
- && (uint32_t) *ulp != *ulp)
- return FALSE;
-
- return XDR_PUTLONG (xdrs, (long *) ulp);
-
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_u_long)
-
-/*
- * XDR hyper integers
- * same as xdr_u_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_hyper (XDR *xdrs, quad_t *llp)
-{
- long int t1, t2;
-
- if (xdrs->x_op == XDR_ENCODE)
- {
- t1 = (long) ((*llp) >> 32);
- t2 = (long) (*llp);
- return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
- }
-
- if (xdrs->x_op == XDR_DECODE)
- {
- if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
- return FALSE;
- *llp = ((quad_t) t1) << 32;
- *llp |= (uint32_t) t2;
- return TRUE;
- }
-
- if (xdrs->x_op == XDR_FREE)
- return TRUE;
-
- return FALSE;
-}
-INTDEF(xdr_hyper)
-
-
-/*
- * XDR hyper integers
- * same as xdr_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
-{
- long int t1, t2;
-
- if (xdrs->x_op == XDR_ENCODE)
- {
- t1 = (unsigned long) ((*ullp) >> 32);
- t2 = (unsigned long) (*ullp);
- return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
- }
-
- if (xdrs->x_op == XDR_DECODE)
- {
- if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
- return FALSE;
- *ullp = ((u_quad_t) t1) << 32;
- *ullp |= (uint32_t) t2;
- return TRUE;
- }
-
- if (xdrs->x_op == XDR_FREE)
- return TRUE;
-
- return FALSE;
-}
-INTDEF(xdr_u_hyper)
-
-bool_t
-xdr_longlong_t (XDR *xdrs, quad_t *llp)
-{
- return INTUSE(xdr_hyper) (xdrs, llp);
-}
-
-bool_t
-xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
-{
- return INTUSE(xdr_u_hyper) (xdrs, ullp);
-}
-
-/*
- * XDR short integers
- */
-bool_t
-xdr_short (XDR *xdrs, short *sp)
-{
- long l;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- l = (long) *sp;
- return XDR_PUTLONG (xdrs, &l);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &l))
- {
- return FALSE;
- }
- *sp = (short) l;
- return TRUE;
-
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_short)
-
-/*
- * XDR unsigned short integers
- */
-bool_t
-xdr_u_short (XDR *xdrs, u_short *usp)
-{
- long l;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- l = (u_long) * usp;
- return XDR_PUTLONG (xdrs, &l);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &l))
- {
- return FALSE;
- }
- *usp = (u_short) (u_long) l;
- return TRUE;
-
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_u_short)
-
-
-/*
- * XDR a char
- */
-bool_t
-xdr_char (XDR *xdrs, char *cp)
-{
- int i;
-
- i = (*cp);
- if (!INTUSE(xdr_int) (xdrs, &i))
- {
- return FALSE;
- }
- *cp = i;
- return TRUE;
-}
-
-/*
- * XDR an unsigned char
- */
-bool_t
-xdr_u_char (XDR *xdrs, u_char *cp)
-{
- u_int u;
-
- u = (*cp);
- if (!INTUSE(xdr_u_int) (xdrs, &u))
- {
- return FALSE;
- }
- *cp = u;
- return TRUE;
-}
-
-/*
- * XDR booleans
- */
-bool_t
-xdr_bool (XDR *xdrs, bool_t *bp)
-{
- long lb;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- lb = *bp ? XDR_TRUE : XDR_FALSE;
- return XDR_PUTLONG (xdrs, &lb);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &lb))
- {
- return FALSE;
- }
- *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
- return TRUE;
-
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_bool)
-
-/*
- * XDR enumerations
- */
-bool_t
-xdr_enum (XDR *xdrs, enum_t *ep)
-{
- enum sizecheck
- {
- SIZEVAL
- }; /* used to find the size of an enum */
-
- /*
- * enums are treated as ints
- */
- if (sizeof (enum sizecheck) == 4)
- {
-#if INT_MAX < LONG_MAX
- long l;
-
- switch (xdrs->x_op)
- {
- case XDR_ENCODE:
- l = *ep;
- return XDR_PUTLONG (xdrs, &l);
-
- case XDR_DECODE:
- if (!XDR_GETLONG (xdrs, &l))
- {
- return FALSE;
- }
- *ep = l;
- case XDR_FREE:
- return TRUE;
-
- }
- return FALSE;
-#else
- return INTUSE(xdr_long) (xdrs, (long *) ep);
-#endif
- }
- else if (sizeof (enum sizecheck) == sizeof (short))
- {
- return INTUSE(xdr_short) (xdrs, (short *) ep);
- }
- else
- {
- return FALSE;
- }
-}
-INTDEF(xdr_enum)
-
-/*
- * XDR opaque data
- * Allows the specification of a fixed size sequence of opaque bytes.
- * cp points to the opaque object and cnt gives the byte length.
- */
-bool_t
-xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
-{
- u_int rndup;
- static char crud[BYTES_PER_XDR_UNIT];
-
- /*
- * if no data we are done
- */
- if (cnt == 0)
- return TRUE;
-
- /*
- * round byte count to full xdr units
- */
- rndup = cnt % BYTES_PER_XDR_UNIT;
- if (rndup > 0)
- rndup = BYTES_PER_XDR_UNIT - rndup;
-
- switch (xdrs->x_op)
- {
- case XDR_DECODE:
- if (!XDR_GETBYTES (xdrs, cp, cnt))
- {
- return FALSE;
- }
- if (rndup == 0)
- return TRUE;
- return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
-
- case XDR_ENCODE:
- if (!XDR_PUTBYTES (xdrs, cp, cnt))
- {
- return FALSE;
- }
- if (rndup == 0)
- return TRUE;
- return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
-
- case XDR_FREE:
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_opaque)
-
-/*
- * XDR counted bytes
- * *cpp is a pointer to the bytes, *sizep is the count.
- * If *cpp is NULL maxsize bytes are allocated
- */
-bool_t
-xdr_bytes (xdrs, cpp, sizep, maxsize)
- XDR *xdrs;
- char **cpp;
- u_int *sizep;
- u_int maxsize;
-{
- char *sp = *cpp; /* sp is the actual string pointer */
- u_int nodesize;
-
- /*
- * first deal with the length since xdr bytes are counted
- */
- if (!INTUSE(xdr_u_int) (xdrs, sizep))
- {
- return FALSE;
- }
- nodesize = *sizep;
- if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
- {
- return FALSE;
- }
-
- /*
- * now deal with the actual bytes
- */
- switch (xdrs->x_op)
- {
- case XDR_DECODE:
- if (nodesize == 0)
- {
- return TRUE;
- }
- if (sp == NULL)
- {
- *cpp = sp = (char *) mem_alloc (nodesize);
- }
- if (sp == NULL)
- {
- fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
- return FALSE;
- }
- /* fall into ... */
-
- case XDR_ENCODE:
- return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
-
- case XDR_FREE:
- if (sp != NULL)
- {
- mem_free (sp, nodesize);
- *cpp = NULL;
- }
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_bytes)
-
-/*
- * Implemented here due to commonality of the object.
- */
-bool_t
-xdr_netobj (xdrs, np)
- XDR *xdrs;
- struct netobj *np;
-{
-
- return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
-}
-INTDEF(xdr_netobj)
-
-/*
- * XDR a discriminated union
- * Support routine for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * an entry with a null procedure pointer. The routine gets
- * the discriminant value and then searches the array of xdrdiscrims
- * looking for that value. It calls the procedure given in the xdrdiscrim
- * to handle the discriminant. If there is no specific routine a default
- * routine may be called.
- * If there is no specific or default routine an error is returned.
- */
-bool_t
-xdr_union (xdrs, dscmp, unp, choices, dfault)
- XDR *xdrs;
- enum_t *dscmp; /* enum to decide which arm to work on */
- char *unp; /* the union itself */
- const struct xdr_discrim *choices; /* [value, xdr proc] for each arm */
- xdrproc_t dfault; /* default xdr routine */
-{
- enum_t dscm;
-
- /*
- * we deal with the discriminator; it's an enum
- */
- if (!INTUSE(xdr_enum) (xdrs, dscmp))
- {
- return FALSE;
- }
- dscm = *dscmp;
-
- /*
- * search choices for a value that matches the discriminator.
- * if we find one, execute the xdr routine for that value.
- */
- for (; choices->proc != NULL_xdrproc_t; choices++)
- {
- if (choices->value == dscm)
- return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
- }
-
- /*
- * no match - execute the default xdr routine if there is one
- */
- return ((dfault == NULL_xdrproc_t) ? FALSE :
- (*dfault) (xdrs, unp, LASTUNSIGNED));
-}
-INTDEF(xdr_union)
-
-
-/*
- * Non-portable xdr primitives.
- * Care should be taken when moving these routines to new architectures.
- */
-
-
-/*
- * XDR null terminated ASCII strings
- * xdr_string deals with "C strings" - arrays of bytes that are
- * terminated by a NULL character. The parameter cpp references a
- * pointer to storage; If the pointer is null, then the necessary
- * storage is allocated. The last parameter is the max allowed length
- * of the string as specified by a protocol.
- */
-bool_t
-xdr_string (xdrs, cpp, maxsize)
- XDR *xdrs;
- char **cpp;
- u_int maxsize;
-{
- char *sp = *cpp; /* sp is the actual string pointer */
- u_int size;
- u_int nodesize;
-
- /*
- * first deal with the length since xdr strings are counted-strings
- */
- switch (xdrs->x_op)
- {
- case XDR_FREE:
- if (sp == NULL)
- {
- return TRUE; /* already free */
- }
- /* fall through... */
- case XDR_ENCODE:
- if (sp == NULL)
- return FALSE;
- size = strlen (sp);
- break;
- case XDR_DECODE:
- break;
- }
- if (!INTUSE(xdr_u_int) (xdrs, &size))
- {
- return FALSE;
- }
- if (size > maxsize)
- {
- return FALSE;
- }
- nodesize = size + 1;
- if (nodesize == 0)
- {
- /* This means an overflow. It a bug in the caller which
- provided a too large maxsize but nevertheless catch it
- here. */
- return FALSE;
- }
-
- /*
- * now deal with the actual bytes
- */
- switch (xdrs->x_op)
- {
- case XDR_DECODE:
- if (sp == NULL)
- *cpp = sp = (char *) mem_alloc (nodesize);
- if (sp == NULL)
- {
- fprintf (NULL, "%s", "xdr_string: out of memory\n");
- return FALSE;
- }
- sp[size] = 0;
- /* fall into ... */
-
- case XDR_ENCODE:
- return INTUSE(xdr_opaque) (xdrs, sp, size);
-
- case XDR_FREE:
- mem_free (sp, nodesize);
- *cpp = NULL;
- return TRUE;
- }
- return FALSE;
-}
-INTDEF(xdr_string)
-
-/*
- * Wrapper for xdr_string that can be called directly from
- * routines like clnt_call
- */
-bool_t
-xdr_wrapstring (xdrs, cpp)
- XDR *xdrs;
- char **cpp;
-{
- if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
- {
- return TRUE;
- }
- return FALSE;
-}
+++ /dev/null
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * xdr.h, External Data Representation Serialization Routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_XDR_H
-#define _RPC_XDR_H 1
-
-#include <features.h>
-#include <sys/types.h>
-#include "types.h"
-
-/* We need FILE. */
-#include <stdio.h>
-
-__BEGIN_DECLS
-
-/*
- * XDR provides a conventional way for converting between C data
- * types and an external bit-string representation. Library supplied
- * routines provide for the conversion on built-in C data types. These
- * routines and utility routines defined here are used to help implement
- * a type encode/decode routine for each user-defined type.
- *
- * Each data type provides a single procedure which takes two arguments:
- *
- * bool_t
- * xdrproc(xdrs, argresp)
- * XDR *xdrs;
- * <type> *argresp;
- *
- * xdrs is an instance of a XDR handle, to which or from which the data
- * type is to be converted. argresp is a pointer to the structure to be
- * converted. The XDR handle contains an operation field which indicates
- * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
- *
- * XDR_DECODE may allocate space if the pointer argresp is null. This
- * data can be freed with the XDR_FREE operation.
- *
- * We write only one procedure per data type to make it easy
- * to keep the encode and decode procedures for a data type consistent.
- * In many cases the same code performs all operations on a user defined type,
- * because all the hard work is done in the component type routines.
- * decode as a series of calls on the nested data types.
- */
-
-/*
- * Xdr operations. XDR_ENCODE causes the type to be encoded into the
- * stream. XDR_DECODE causes the type to be extracted from the stream.
- * XDR_FREE can be used to release the space allocated by an XDR_DECODE
- * request.
- */
-enum xdr_op {
- XDR_ENCODE = 0,
- XDR_DECODE = 1,
- XDR_FREE = 2
-};
-
-/*
- * This is the number of bytes per unit of external data.
- */
-#define BYTES_PER_XDR_UNIT (4)
-/*
- * This only works if the above is a power of 2. But it's defined to be
- * 4 by the appropriate RFCs. So it will work. And it's normally quicker
- * than the old routine.
- */
-#if 1
-#define RNDUP(x) (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
-#else /* this is the old routine */
-#define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
- * BYTES_PER_XDR_UNIT)
-#endif
-
-/*
- * The XDR handle.
- * Contains operation which is being applied to the stream,
- * an operations vector for the particular implementation (e.g. see xdr_mem.c),
- * and two private fields for the use of the particular implementation.
- */
-typedef struct XDR XDR;
-struct XDR
- {
- enum xdr_op x_op; /* operation; fast additional param */
- struct xdr_ops
- {
- bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
- /* get a long from underlying stream */
- bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
- /* put a long to " */
- bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
- /* get some bytes from " */
- bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
- /* put some bytes to " */
- u_int (*x_getpostn) (__const XDR *__xdrs);
- /* returns bytes off from beginning */
- bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
- /* lets you reposition the stream */
- int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
- /* buf quick ptr to buffered data */
- void (*x_destroy) (XDR *__xdrs);
- /* free privates of this xdr_stream */
- bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
- /* get a int from underlying stream */
- bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
- /* put a int to " */
- }
- *x_ops;
- caddr_t x_public; /* users' data */
- caddr_t x_private; /* pointer to private data */
- caddr_t x_base; /* private used for position info */
- u_int x_handy; /* extra private word */
- };
-
-/*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
- *
- * The second argument to the xdrproc_t is a pointer to an opaque pointer.
- * The opaque pointer generally points to a structure of the data type
- * to be decoded. If this pointer is 0, then the type routines should
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t (*xdrproc_t)(XDR *, caddr_t *);
- */
-typedef bool_t (*xdrproc_t) (XDR *, void *,...);
-
-
-/*
- * Operations defined on a XDR handle
- *
- * XDR *xdrs;
- * int32_t *int32p;
- * long *longp;
- * caddr_t addr;
- * u_int len;
- * u_int pos;
- */
-#define XDR_GETINT32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-#define xdr_getint32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-
-#define XDR_PUTINT32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-#define xdr_putint32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-
-#define XDR_GETLONG(xdrs, longp) \
- (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-#define xdr_getlong(xdrs, longp) \
- (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-
-#define XDR_PUTLONG(xdrs, longp) \
- (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-#define xdr_putlong(xdrs, longp) \
- (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-
-#define XDR_GETBYTES(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-#define xdr_getbytes(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-
-#define XDR_PUTBYTES(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-#define xdr_putbytes(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-
-#define XDR_GETPOS(xdrs) \
- (*(xdrs)->x_ops->x_getpostn)(xdrs)
-#define xdr_getpos(xdrs) \
- (*(xdrs)->x_ops->x_getpostn)(xdrs)
-
-#define XDR_SETPOS(xdrs, pos) \
- (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-#define xdr_setpos(xdrs, pos) \
- (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-
-#define XDR_INLINE(xdrs, len) \
- (*(xdrs)->x_ops->x_inline)(xdrs, len)
-#define xdr_inline(xdrs, len) \
- (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
-#define XDR_DESTROY(xdrs) \
- do { \
- if ((xdrs)->x_ops->x_destroy) \
- (*(xdrs)->x_ops->x_destroy)(xdrs); \
- } while (0)
-#define xdr_destroy(xdrs) \
- do { \
- if ((xdrs)->x_ops->x_destroy) \
- (*(xdrs)->x_ops->x_destroy)(xdrs); \
- } while (0)
-
-/*
- * Support struct for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer. The xdr_union routine gets
- * the discriminant value and then searches the array of structures
- * for a matching value. If a match is found the associated xdr routine
- * is called to handle that part of the union. If there is
- * no match, then a default routine may be called.
- * If there is no match and no default routine it is an error.
- */
-#define NULL_xdrproc_t ((xdrproc_t)0)
-struct xdr_discrim
-{
- int value;
- xdrproc_t proc;
-};
-
-/*
- * Inline routines for fast encode/decode of primitive data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned. The standard way to use these
- * is to say:
- * if ((buf = XDR_INLINE(xdrs, count)) == NULL)
- * return (FALSE);
- * <<< macro calls >>>
- * where ``count'' is the number of bytes of data occupied
- * by the primitive data types.
- *
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
-
-#define IXDR_GET_INT32(buf) ((int32_t)ntohl((uint32_t)*(buf)++))
-#define IXDR_PUT_INT32(buf, v) (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
-#define IXDR_GET_U_INT32(buf) ((uint32_t)IXDR_GET_INT32(buf))
-#define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_INT32(buf, (int32_t)(v))
-
-/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
- * and shouldn't be used any longer. Code which use this defines or longs
- * in the RPC code will not work on 64bit Solaris platforms !
- */
-#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
-#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
-#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
-#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-
-
-#define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_LONG(buf))
-#define IXDR_GET_ENUM(buf, t) ((t)IXDR_GET_LONG(buf))
-#define IXDR_GET_SHORT(buf) ((short)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_SHORT(buf) ((u_short)IXDR_GET_LONG(buf))
-
-#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-
-/*
- * These are the "generic" xdr routines.
- * None of these can have const applied because it's not possible to
- * know whether the call is a read or a write to the passed parameter
- * also, the XDR structure is always updated by some of these calls.
- */
-extern bool_t xdr_void (void) __THROW;
-extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
-extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
-extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
-extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
-extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
-extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
-extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
-extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
-extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
-extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
-extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
-extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
-extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
-extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
-extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
-extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
-extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
-extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
-extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
- u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
- __THROW;
-extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
- u_int __maxsize) __THROW;
-extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
-extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
-extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
- __const struct xdr_discrim *__choices,
- xdrproc_t dfault) __THROW;
-extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
-extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
-extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
- u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
-extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
-extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
-extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
- xdrproc_t __proc) __THROW;
-extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
- u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
-extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
-extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
-
-/*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
-#define MAX_NETOBJ_SZ 1024
-struct netobj
-{
- u_int n_len;
- char *n_bytes;
-};
-typedef struct netobj netobj;
-extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-
-/* XDR using memory buffers */
-extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
- u_int __size, enum xdr_op __xop) __THROW;
-
-/* XDR using stdio library */
-extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
- __THROW;
-
-/* XDR pseudo records for tcp */
-extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
- u_int __recvsize, caddr_t __tcp_handle,
- int (*__readit) (char *, char *, int),
- int (*__writeit) (char *, char *, int)) __THROW;
-
-/* make end of xdr record */
-extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
-
-/* move to beginning of next record */
-extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
-
-/* true if no more input */
-extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
-
-/* free memory buffers for xdr */
-extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/xdr.h */
+++ /dev/null
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr_array.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_array.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "non-trivial" xdr primitives used to serialize and de-serialize
- * arrays. See xdr.h for more info on the interface to xdr.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "types.h"
-#include "xdr.h"
-#include <libintl.h>
-#include <limits.h>
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-#define LASTUNSIGNED ((u_int)0-1)
-
-
-/*
- * XDR an array of arbitrary elements
- * *addrp is a pointer to the array, *sizep is the number of elements.
- * If addrp is NULL (*sizep * elsize) bytes are allocated.
- * elsize is the size (in bytes) of each element, and elproc is the
- * xdr procedure to call to handle each element of the array.
- */
-bool_t
-xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
- XDR *xdrs;
- caddr_t *addrp; /* array pointer */
- u_int *sizep; /* number of elements */
- u_int maxsize; /* max numberof elements */
- u_int elsize; /* size in bytes of each element */
- xdrproc_t elproc; /* xdr routine to handle each element */
-{
- u_int i;
- caddr_t target = *addrp;
- u_int c; /* the actual element count */
- bool_t stat = TRUE;
- u_int nodesize;
-
- /* like strings, arrays are really counted arrays */
- if (!INTUSE(xdr_u_int) (xdrs, sizep))
- {
- return FALSE;
- }
- c = *sizep;
- /*
- * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
- * doesn't actually use its second argument anyway.
- */
- if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
- {
- return FALSE;
- }
- nodesize = c * elsize;
-
- /*
- * if we are deserializing, we may need to allocate an array.
- * We also save time by checking for a null array if we are freeing.
- */
- if (target == NULL)
- switch (xdrs->x_op)
- {
- case XDR_DECODE:
- if (c == 0)
- return TRUE;
- *addrp = target = mem_alloc (nodesize);
- if (target == NULL)
- {
- fprintf (stderr, "%s", "xdr_array: out of memory\n");
- return FALSE;
- }
- __bzero (target, nodesize);
- break;
-
- case XDR_FREE:
- return TRUE;
- default:
- break;
- }
-
- /*
- * now we xdr each element of array
- */
- for (i = 0; (i < c) && stat; i++)
- {
- stat = (*elproc) (xdrs, target, LASTUNSIGNED);
- target += elsize;
- }
-
- /*
- * the array may need freeing
- */
- if (xdrs->x_op == XDR_FREE)
- {
- mem_free (*addrp, nodesize);
- *addrp = NULL;
- }
- return stat;
-}
-INTDEF(xdr_array)
-
-/*
- * xdr_vector():
- *
- * XDR a fixed length array. Unlike variable-length arrays,
- * the storage of fixed length arrays is static and unfreeable.
- * > basep: base of the array
- * > size: size of the array
- * > elemsize: size of each element
- * > xdr_elem: routine to XDR each element
- */
-bool_t
-xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
- XDR *xdrs;
- char *basep;
- u_int nelem;
- u_int elemsize;
- xdrproc_t xdr_elem;
-{
- u_int i;
- char *elptr;
-
- elptr = basep;
- for (i = 0; i < nelem; i++)
- {
- if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
- {
- return FALSE;
- }
- elptr += elemsize;
- }
- return TRUE;
-}
+++ /dev/null
-/* @(#)xdr_float.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_float.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "floating point" xdr routines used to (de)serialize
- * most common data items. See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <endian.h>
-
-#include "types.h"
-#include "xdr.h"
-
-/*
- * NB: Not portable.
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#define LSW (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
-
-#ifdef vax
-
-/* What IEEE single precision floating point looks like on a Vax */
-struct ieee_single {
- unsigned int mantissa: 23;
- unsigned int exp : 8;
- unsigned int sign : 1;
-};
-
-/* Vax single precision floating point */
-struct vax_single {
- unsigned int mantissa1 : 7;
- unsigned int exp : 8;
- unsigned int sign : 1;
- unsigned int mantissa2 : 16;
-};
-
-#define VAX_SNG_BIAS 0x81
-#define IEEE_SNG_BIAS 0x7f
-
-static struct sgl_limits {
- struct vax_single s;
- struct ieee_single ieee;
-} sgl_limits[2] = {
- {{ 0x7f, 0xff, 0x0, 0xffff }, /* Max Vax */
- { 0x0, 0xff, 0x0 }}, /* Max IEEE */
- {{ 0x0, 0x0, 0x0, 0x0 }, /* Min Vax */
- { 0x0, 0x0, 0x0 }} /* Min IEEE */
-};
-#endif /* vax */
-
-bool_t
-xdr_float(xdrs, fp)
- XDR *xdrs;
- float *fp;
-{
-#ifdef vax
- struct ieee_single is;
- struct vax_single vs, *vsp;
- struct sgl_limits *lim;
- int i;
-#endif
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
-#ifdef vax
- vs = *((struct vax_single *)fp);
- for (i = 0, lim = sgl_limits;
- i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
- i++, lim++) {
- if ((vs.mantissa2 == lim->s.mantissa2) &&
- (vs.exp == lim->s.exp) &&
- (vs.mantissa1 == lim->s.mantissa1)) {
- is = lim->ieee;
- goto shipit;
- }
- }
- is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
- is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
- shipit:
- is.sign = vs.sign;
- return (XDR_PUTLONG(xdrs, (long *)&is));
-#else
- if (sizeof(float) == sizeof(long))
- return (XDR_PUTLONG(xdrs, (long *)fp));
- else if (sizeof(float) == sizeof(int)) {
- long tmp = *(int *)fp;
- return (XDR_PUTLONG(xdrs, &tmp));
- }
- break;
-#endif
-
- case XDR_DECODE:
-#ifdef vax
- vsp = (struct vax_single *)fp;
- if (!XDR_GETLONG(xdrs, (long *)&is))
- return (FALSE);
- for (i = 0, lim = sgl_limits;
- i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
- i++, lim++) {
- if ((is.exp == lim->ieee.exp) &&
- (is.mantissa == lim->ieee.mantissa)) {
- *vsp = lim->s;
- goto doneit;
- }
- }
- vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
- vsp->mantissa2 = is.mantissa;
- vsp->mantissa1 = (is.mantissa >> 16);
- doneit:
- vsp->sign = is.sign;
- return (TRUE);
-#else
- if (sizeof(float) == sizeof(long))
- return (XDR_GETLONG(xdrs, (long *)fp));
- else if (sizeof(float) == sizeof(int)) {
- long tmp;
- if (XDR_GETLONG(xdrs, &tmp)) {
- *(int *)fp = tmp;
- return (TRUE);
- }
- }
- break;
-#endif
-
- case XDR_FREE:
- return (TRUE);
- }
- return (FALSE);
-}
-
-/*
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#ifdef vax
-/* What IEEE double precision floating point looks like on a Vax */
-struct ieee_double {
- unsigned int mantissa1 : 20;
- unsigned int exp : 11;
- unsigned int sign : 1;
- unsigned int mantissa2 : 32;
-};
-
-/* Vax double precision floating point */
-struct vax_double {
- unsigned int mantissa1 : 7;
- unsigned int exp : 8;
- unsigned int sign : 1;
- unsigned int mantissa2 : 16;
- unsigned int mantissa3 : 16;
- unsigned int mantissa4 : 16;
-};
-
-#define VAX_DBL_BIAS 0x81
-#define IEEE_DBL_BIAS 0x3ff
-#define MASK(nbits) ((1 << nbits) - 1)
-
-static struct dbl_limits {
- struct vax_double d;
- struct ieee_double ieee;
-} dbl_limits[2] = {
- {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff }, /* Max Vax */
- { 0x0, 0x7ff, 0x0, 0x0 }}, /* Max IEEE */
- {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, /* Min Vax */
- { 0x0, 0x0, 0x0, 0x0 }} /* Min IEEE */
-};
-
-#endif /* vax */
-
-
-bool_t
-xdr_double(xdrs, dp)
- XDR *xdrs;
- double *dp;
-{
-#ifdef vax
- struct ieee_double id;
- struct vax_double vd;
- register struct dbl_limits *lim;
- int i;
-#endif
-
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
-#ifdef vax
- vd = *((struct vax_double *)dp);
- for (i = 0, lim = dbl_limits;
- i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
- i++, lim++) {
- if ((vd.mantissa4 == lim->d.mantissa4) &&
- (vd.mantissa3 == lim->d.mantissa3) &&
- (vd.mantissa2 == lim->d.mantissa2) &&
- (vd.mantissa1 == lim->d.mantissa1) &&
- (vd.exp == lim->d.exp)) {
- id = lim->ieee;
- goto shipit;
- }
- }
- id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
- id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
- id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
- (vd.mantissa3 << 13) |
- ((vd.mantissa4 >> 3) & MASK(13));
- shipit:
- id.sign = vd.sign;
- dp = (double *)&id;
-#endif
- if (2*sizeof(long) == sizeof(double)) {
- long *lp = (long *)dp;
- return (XDR_PUTLONG(xdrs, lp+!LSW) &&
- XDR_PUTLONG(xdrs, lp+LSW));
- } else if (2*sizeof(int) == sizeof(double)) {
- int *ip = (int *)dp;
- long tmp[2];
- tmp[0] = ip[!LSW];
- tmp[1] = ip[LSW];
- return (XDR_PUTLONG(xdrs, tmp) &&
- XDR_PUTLONG(xdrs, tmp+1));
- }
- break;
-
- case XDR_DECODE:
-#ifdef vax
- lp = (long *)&id;
- if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
- return (FALSE);
- for (i = 0, lim = dbl_limits;
- i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
- i++, lim++) {
- if ((id.mantissa2 == lim->ieee.mantissa2) &&
- (id.mantissa1 == lim->ieee.mantissa1) &&
- (id.exp == lim->ieee.exp)) {
- vd = lim->d;
- goto doneit;
- }
- }
- vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
- vd.mantissa1 = (id.mantissa1 >> 13);
- vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
- (id.mantissa2 >> 29);
- vd.mantissa3 = (id.mantissa2 >> 13);
- vd.mantissa4 = (id.mantissa2 << 3);
- doneit:
- vd.sign = id.sign;
- *dp = *((double *)&vd);
- return (TRUE);
-#else
- if (2*sizeof(long) == sizeof(double)) {
- long *lp = (long *)dp;
- return (XDR_GETLONG(xdrs, lp+!LSW) &&
- XDR_GETLONG(xdrs, lp+LSW));
- } else if (2*sizeof(int) == sizeof(double)) {
- int *ip = (int *)dp;
- long tmp[2];
- if (XDR_GETLONG(xdrs, tmp+!LSW) &&
- XDR_GETLONG(xdrs, tmp+LSW)) {
- ip[0] = tmp[0];
- ip[1] = tmp[1];
- return (TRUE);
- }
- }
- break;
-#endif
-
- case XDR_FREE:
- return (TRUE);
- }
- return (FALSE);
-}
+++ /dev/null
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * xdr_stdio.c, XDR implementation on standard i/o file.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * This set of routines implements a XDR on a stdio stream.
- * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
- * from the stream.
- */
-
-#include "types.h"
-#include <stdio.h>
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <libio/iolibio.h>
-# define fflush(s) INTUSE(_IO_fflush) (s)
-# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
-# define ftell(s) INTUSE(_IO_ftell) (s)
-# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
-#endif
-
-static bool_t xdrstdio_getlong (XDR *, long *);
-static bool_t xdrstdio_putlong (XDR *, const long *);
-static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
-static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
-static u_int xdrstdio_getpos (const XDR *);
-static bool_t xdrstdio_setpos (XDR *, u_int);
-static int32_t *xdrstdio_inline (XDR *, u_int);
-static void xdrstdio_destroy (XDR *);
-static bool_t xdrstdio_getint32 (XDR *, int32_t *);
-static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
-
-/*
- * Ops vector for stdio type XDR
- */
-static const struct xdr_ops xdrstdio_ops =
-{
- xdrstdio_getlong, /* deserialize a long int */
- xdrstdio_putlong, /* serialize a long int */
- xdrstdio_getbytes, /* deserialize counted bytes */
- xdrstdio_putbytes, /* serialize counted bytes */
- xdrstdio_getpos, /* get offset in the stream */
- xdrstdio_setpos, /* set offset in the stream */
- xdrstdio_inline, /* prime stream for inline macros */
- xdrstdio_destroy, /* destroy stream */
- xdrstdio_getint32, /* deserialize a int */
- xdrstdio_putint32 /* serialize a int */
-};
-
-/*
- * Initialize a stdio xdr stream.
- * Sets the xdr stream handle xdrs for use on the stream file.
- * Operation flag is set to op.
- */
-void
-xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
-{
- xdrs->x_op = op;
- /* We have to add the const since the `struct xdr_ops' in `struct XDR'
- is not `const'. */
- xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
- xdrs->x_private = (caddr_t) file;
- xdrs->x_handy = 0;
- xdrs->x_base = 0;
-}
-
-/*
- * Destroy a stdio xdr stream.
- * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
- */
-static void
-xdrstdio_destroy (XDR *xdrs)
-{
- (void) fflush ((FILE *) xdrs->x_private);
- /* xx should we close the file ?? */
-};
-
-static bool_t
-xdrstdio_getlong (XDR *xdrs, long *lp)
-{
- u_int32_t mycopy;
-
- if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
- return FALSE;
- *lp = (long) ntohl (mycopy);
- return TRUE;
-}
-
-static bool_t
-xdrstdio_putlong (XDR *xdrs, const long *lp)
-{
- int32_t mycopy = htonl ((u_int32_t) *lp);
-
- if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
- return FALSE;
- return TRUE;
-}
-
-static bool_t
-xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
-{
- if ((len != 0) && (fread (addr, (int) len, 1,
- (FILE *) xdrs->x_private) != 1))
- return FALSE;
- return TRUE;
-}
-
-static bool_t
-xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
-{
- if ((len != 0) && (fwrite (addr, (int) len, 1,
- (FILE *) xdrs->x_private) != 1))
- return FALSE;
- return TRUE;
-}
-
-static u_int
-xdrstdio_getpos (const XDR *xdrs)
-{
- return (u_int) ftell ((FILE *) xdrs->x_private);
-}
-
-static bool_t
-xdrstdio_setpos (XDR *xdrs, u_int pos)
-{
- return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
-}
-
-static int32_t *
-xdrstdio_inline (XDR *xdrs, u_int len)
-{
- /*
- * Must do some work to implement this: must insure
- * enough data in the underlying stdio buffer,
- * that the buffer is aligned so that we can indirect through a
- * long *, and stuff this pointer in xdrs->x_buf. Doing
- * a fread or fwrite to a scratch buffer would defeat
- * most of the gains to be had here and require storage
- * management on this buffer, so we don't do this.
- */
- return NULL;
-}
-
-static bool_t
-xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
-{
- int32_t mycopy;
-
- if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
- return FALSE;
- *ip = ntohl (mycopy);
- return TRUE;
-}
-
-static bool_t
-xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
-{
- int32_t mycopy = htonl (*ip);
-
- ip = &mycopy;
- if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
- return FALSE;
- return TRUE;
-}
-
-/* libc_hidden_def (xdrstdio_create) */
+++ /dev/null
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the
- | functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
--- /dev/null
+ logical function isnan(a)
+ logical isnand
+ double precision a
+ isnan=isnand(a)
+ return
+ end
+
\ No newline at end of file
TMscore_subroutine.f
together.F
unres_csa.F
+ gnmr1.f
)
set(UNRES_CSA_SRC3 energy_p_new_barrier.F gradient_p.F )
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
# Add old gfortran flags
set(CPPFLAGS "${CPPFLAGS} -DG77")
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(CPPFLAGS "${CPPFLAGS} -DPGI")
+ FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+ list(APPEND UNRES_CSA_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
#=========================================
# TESTS
#=========================================
-#-- Copy all the data files from the test directory into the source directory
-#SET(UNRES_TEST_FILES
-# ala10.inp
-# )
-
-#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
-# SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
-# MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
-# ADD_CUSTOM_COMMAND (
-# TARGET ${UNRES_BIN}
-# POST_BUILD
-# COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
-# )
-#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+if(UNRES_CSA_FF STREQUAL "4P")
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_4P.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local_4P.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local_4P.CSA.native.int
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/csa_energy_check.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
#=========================================
-# Generate data test files
-#=========================================
-# test_single_ala.sh
+# test_csa_4P.sh
#=========================================
-#FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh
-#"#!/bin/sh
-#export POT=GB
-#export PREFIX=ala10
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_4P.sh
+"#!/bin/sh
+export POT=GB
+export FGPROCS=1
+export PREFIX=$1
#-----------------------------------------------------------------------------
-#UNRES_BIN=./${UNRES_BIN}
+UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
#-----------------------------------------------------------------------------
-#DD=${CMAKE_SOURCE_DIR}/PARAM
-#export BONDPAR=$DD/bond.parm
-#export THETPAR=$DD/thetaml.5parm
-#export ROTPAR=$DD/scgauss.parm
-#export TORPAR=$DD/torsion_631Gdp.parm
-#export TORDPAR=$DD/torsion_double_631Gdp.parm
-#export ELEPAR=$DD/electr_631Gdp.parm
-#export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
-#export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
-#export SCPPAR=$DD/scp.parm
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond.parm
+export THETPAR=$DD/thetaml.5parm
+export ROTPAR=$DD/scgauss.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/sc_GB_opt.4P5_iter33_3r
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
#export SCCORPAR=$DD/rotcorr_AM1.parm
-#export PATTERN=$DD/patterns.cart
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export SCPPAR=$DD/scp.parm
+export PATTERN=$DD/patterns.cart
+export PRINT_PARM=NO
#-----------------------------------------------------------------------------
-#$UNRES_BIN
-#")
+echo CTEST_FULL_OUTPUT
+$UNRES_BIN
+./csa_energy_check.sh $1
+")
+
+#
+# File permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_4P.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+endif(UNRES_CSA_FF STREQUAL "4P")
+
+if(UNRES_CSA_FF STREQUAL "E0LL2Y")
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_csa_local.CSA.native.int
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/csa_energy_check.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
#=========================================
-# ala10.inp
+# test_csa_E0LL2Y.sh
#=========================================
-#file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
-#"ala10 unblocked
-#SEED=-1111333 MD ONE_LETTER rescale_mode=2 PDBOUT
-#nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0 &
-#reset_moment=1000 reset_vel=1000 MDPDB
-#WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873 &
-#WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000 &
-#WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000 &
-#WVDWPP=0.11371 WHPB=1.00000 &
-#CUTOFF=7.00000 WCORR4=0.00000
-#12
-#XAAAAAAAAAAX
-# 0
-# 0
-# 90.0000 90.0000 90.0000 90.000 90.000 90.000 90.000 90.000
-# 90.0000 90.0000
-# 180.0000 180.0000 180.0000 180.000 180.000 180.000 180.000 180.000
-# 180.0000
-# 110.0000 110.0000 110.0000 100.000 110.000 100.000 110.000 110.000
-# 110.0000 110.0000
-# -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
-# -120.0000 -120.0000
-#")
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export FGPROCS=1
+export PREFIX=$1
+#-----------------------------------------------------------------------------
+UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond_AM1.parm
+export THETPAR=$DD/theta_abinitio.parm
+export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
+export THETPARPDB=$DD/thetaml.5parm
+export ROTPARPDB=$DD/scgauss.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/scinter_$POT.parm
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+#export SCCORPAR=$DD/rotcorr_AM1.parm
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export SCPPAR=$DD/scp.parm
+export PATTERN=$DD/patterns.cart
+export PRINT_PARM=NO
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+$UNRES_BIN
+./csa_energy_check.sh $1
+")
+
+#
+# File permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_csa_E0LL2Y.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+endif(UNRES_CSA_FF STREQUAL "E0LL2Y")
+
# Add tests
-#if(NOT UNRES_WITH_MPI)
-
-# add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+# 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()
+
+
+if(UNRES_CSA_FF STREQUAL "4P")
+ add_test(NAME UNRES_CSA_global COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_4P.sh 1l2y_csa_4P )
+ add_test(NAME UNRES_CSA_local COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_4P.sh 1l2y_csa_local_4P )
+endif(UNRES_CSA_FF STREQUAL "4P")
+
+if(UNRES_CSA_FF STREQUAL "E0LL2Y")
+ add_test(NAME UNRES_CSA_global_E0LL2Y COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_E0LL2Y.sh 1l2y_csa )
+ add_test(NAME UNRES_CSA_local_E0LL2Y COMMAND ${mpiexec} ${boot_lam} ${np} 4 ${CMAKE_CURRENT_BINARY_DIR}/test_csa_E0LL2Y.sh 1l2y_csa_local )
+endif(UNRES_CSA_FF STREQUAL "E0LL2Y")
-#endif(NOT UNRES_WITH_MPI)
& ns,nss,nfree,iss(maxss)
double precision dhpb,forcon
integer ihpb,jhpb,nhpb
- common /links/ dhpb(maxdim),forcon(maxdim),ihpb(maxdim),
- & jhpb(maxdim),nhpb
+ common /links/ dhpb(maxdim),dhpb1(maxdim),forcon(maxdim),
+ & ihpb(maxdim),jhpb(maxdim),ibecarb(maxdim),nhpb
double precision weidis
common /restraints/ weidis
integer link_start,link_end
together.o csa.o minim_jlee.o shift.o diff12.o bank.o newconf.o ran.o \
indexx.o prng_32.o contact.o gen_rand_conf.o \
sc_move.o test.o local_move.o rmsd.o fitsq.o elecont.o djacob.o \
- distfit.o banach.o TMscore_subroutine.o minim_mult.o refsys.o
+ distfit.o banach.o TMscore_subroutine.o minim_mult.o refsys.o gnmr1.o
no_option:
together.o csa.o minim_jlee.o shift.o diff12.o bank.o newconf.o ran.o \
indexx.o prng_32.o contact.o gen_rand_conf.o \
sc_move.o test.o local_move.o rmsd.o fitsq.o elecont.o djacob.o \
- distfit.o banach.o TMscore_subroutine.o minim_mult.o refsys.o
+ distfit.o banach.o TMscore_subroutine.o minim_mult.o refsys.o gnmr1.o
no_option:
together.o csa.o minim_jlee.o shift.o diff12.o bank.o newconf.o ran.o \
indexx.o prng_32.o contact.o gen_rand_conf.o \
sc_move.o test.o local_move.o rmsd.o fitsq.o elecont.o djacob.o \
- distfit.o banach.o TMscore_subroutine.o minim_mult.o refsys.o
+ distfit.o banach.o TMscore_subroutine.o minim_mult.o refsys.o gnmr1.o
no_option:
iii=ii
jjj=jj
endif
-cd write (iout,*) "i",i," ii",ii," iii",iii," jj",jj," jjj",jjj
+c write (iout,*) "i",i," ii",ii," iii",iii," jj",jj," jjj",jjj,
+c & dhpb(i),dhpb1(i),forcon(i)
C 24/11/03 AL: SS bridges handled separately because of introducing a specific
C distance and angle dependent SS bond potential.
- if (ii.gt.nres .and. itype(iii).eq.1 .and. itype(jjj).eq.1) then
+cmc if (ii.gt.nres .and. itype(iii).eq.1 .and. itype(jjj).eq.1) then
+C 18/07/06 MC: Use the convention that the first nss pairs are SS bonds
+ if (i.le.nss) then
+ if (ii.gt.nres
+ & .and. itype(iii).eq.1 .and. itype(jjj).eq.1) then
call ssbond_ene(iii,jjj,eij)
ehpb=ehpb+2*eij
+ endif
cd write (iout,*) "eij",eij
+ else if (ii.gt.nres .and. jj.gt.nres) then
+c Restraints from contact prediction
+ dd=dist(ii,jj)
+ if (dhpb1(i).gt.0.0d0) then
+ ehpb=ehpb+2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))
+ fac=forcon(i)*gnmr1prim(dd,dhpb(i),dhpb1(i))/dd
+c write (iout,*) "beta nmr",
+c & dd,2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))
+ else
+ dd=dist(ii,jj)
+ rdis=dd-dhpb(i)
+C Get the force constant corresponding to this distance.
+ waga=forcon(i)
+C Calculate the contribution to energy.
+ ehpb=ehpb+waga*rdis*rdis
+c write (iout,*) "beta reg",dd,waga*rdis*rdis
+C
+C Evaluate gradient.
+C
+ fac=waga*rdis/dd
+ endif
+ do j=1,3
+ ggg(j)=fac*(c(j,jj)-c(j,ii))
+ enddo
+ do j=1,3
+ ghpbx(j,iii)=ghpbx(j,iii)-ggg(j)
+ ghpbx(j,jjj)=ghpbx(j,jjj)+ggg(j)
+ enddo
+ do k=1,3
+ ghpbc(k,jjj)=ghpbc(k,jjj)+ggg(k)
+ ghpbc(k,iii)=ghpbc(k,iii)-ggg(k)
+ enddo
else
C Calculate the distance between the two points and its difference from the
C target distance.
dd=dist(ii,jj)
+ if (dhpb1(i).gt.0.0d0) then
+ ehpb=ehpb+2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))
+ fac=forcon(i)*gnmr1prim(dd,dhpb(i),dhpb1(i))/dd
+c write (iout,*) "alph nmr",
+c & dd,2*forcon(i)*gnmr1(dd,dhpb(i),dhpb1(i))
+ else
rdis=dd-dhpb(i)
C Get the force constant corresponding to this distance.
waga=forcon(i)
C Calculate the contribution to energy.
ehpb=ehpb+waga*rdis*rdis
+c write (iout,*) "alpha reg",dd,waga*rdis*rdis
C
C Evaluate gradient.
C
fac=waga*rdis/dd
+ endif
cd print *,'i=',i,' ii=',ii,' jj=',jj,' dhpb=',dhpb(i),' dd=',dd,
cd & ' waga=',waga,' fac=',fac
do j=1,3
--- /dev/null
+ double precision function gnmr1(y,ymin,ymax)
+ implicit none
+ double precision y,ymin,ymax
+ double precision wykl /4.0d0/
+ if (y.lt.ymin) then
+ gnmr1=(ymin-y)**wykl/wykl
+ else if (y.gt.ymax) then
+ gnmr1=(y-ymax)**wykl/wykl
+ else
+ gnmr1=0.0d0
+ endif
+ return
+ end
+c------------------------------------------------------------------------------
+ double precision function gnmr1prim(y,ymin,ymax)
+ implicit none
+ double precision y,ymin,ymax
+ double precision wykl /4.0d0/
+ if (y.lt.ymin) then
+ gnmr1prim=-(ymin-y)**(wykl-1)
+ else if (y.gt.ymax) then
+ gnmr1prim=(y-ymax)**(wykl-1)
+ else
+ gnmr1prim=0.0d0
+ endif
+ return
+ end
+c------------------------------------------------------------------------------
+ double precision function harmonic(y,ymax)
+ implicit none
+ double precision y,ymax
+ double precision wykl /2.0d0/
+ harmonic=(y-ymax)**wykl
+ return
+ end
+c-------------------------------------------------------------------------------
+ double precision function harmonicprim(y,ymax)
+ double precision y,ymin,ymax
+ double precision wykl /2.0d0/
+ harmonicprim=(y-ymax)*wykl
+ return
+ end
+c---------------------------------------------------------------------------------
enddo
call contact(.true.,ncont_ref,icont_ref,co)
endif
-c write (iout,*) "constr_dist",constr_dist,nstart_sup,nsup
- call flush(iout)
- if (constr_dist.gt.0) call read_dist_constr
-c write (iout,*) "After read_dist_constr nhpb",nhpb
- call hpb_partition
if(me.eq.king.or..not.out1file)
& write (iout,*) 'Contact order:',co
if (pdbref) then
enddo
endif
endif
+c write (iout,*) "constr_dist",constr_dist,nstart_sup,nsup
+ if (constr_dist.gt.0) then
+ call read_dist_constr
+ endif
+ if (nhpb.gt.0) call hpb_partition
+c write (iout,*) "After read_dist_constr nhpb",nhpb
+c call flush(iout)
if (indpdb.eq.0 .and. modecalc.ne.2 .and. modecalc.ne.4
& .and. modecalc.ne.8 .and. modecalc.ne.9 .and.
& modecalc.ne.10) then
integer ifrag_(2,100),ipair_(2,100)
double precision wfrag_(100),wpair_(100)
character*500 controlcard
- write (iout,*) "Calling read_dist_constr"
- write (iout,*) "nres",nres," nstart_sup",nstart_sup," nsup",nsup
- call flush(iout)
+c write (iout,*) "Calling read_dist_constr"
+c write (iout,*) "nres",nres," nstart_sup",nstart_sup," nsup",nsup
+c call flush(iout)
call card_concat(controlcard)
call readi(controlcard,"NFRAG",nfrag_,0)
call readi(controlcard,"NPAIR",npair_,0)
c do i=1,npair_
c write (iout,*) i,ipair_(1,i),ipair_(2,i),wpair_(i)
c enddo
+ if (.not.refstr .and. nfrag.gt.0) then
+ write (iout,*)
+ & "ERROR: no reference structure to compute distance restraints"
+ write (iout,*)
+ & "Restraints must be specified explicitly (NDIST=number)"
+ stop
+ endif
+ if (nfrag.lt.2 .and. npair.gt.0) then
+ write (iout,*) "ERROR: Less than 2 fragments specified",
+ & " but distance restraints between pairs requested"
+ stop
+ endif
call flush(iout)
do i=1,nfrag_
if (ifrag_(1,i).lt.nstart_sup) ifrag_(1,i)=nstart_sup
if (wfrag_(i).gt.0.0d0) then
do j=ifrag_(1,i),ifrag_(2,i)-1
do k=j+1,ifrag_(2,i)
- write (iout,*) "j",j," k",k
+c write (iout,*) "j",j," k",k
ddjk=dist(j,k)
if (constr_dist.eq.1) then
nhpb=nhpb+1
endif
enddo
do i=1,ndist_
- read (inp,*) ihpb(nhpb+1),jhpb(nhpb+1),forcon(nhpb+1)
+ read (inp,*) ihpb(nhpb+1),jhpb(nhpb+1),dhpb(i),dhpb1(i),
+ & ibecarb(i),forcon(nhpb+1)
if (forcon(nhpb+1).gt.0.0d0) then
nhpb=nhpb+1
- dhpb(nhpb)=dist(ihpb(nhpb),jhpb(nhpb))
+ if (ibecarb(i).gt.0) then
+ ihpb(i)=ihpb(i)+nres
+ jhpb(i)=jhpb(i)+nres
+ endif
+ if (dhpb(nhpb).eq.0.0d0)
+ & dhpb(nhpb)=dist(ihpb(nhpb),jhpb(nhpb))
+ endif
+ enddo
#ifdef MPI
- if (.not.out1file .or. me.eq.king)
- & write (iout,'(a,3i5,f8.2,f10.1)') "+dist.constr ",
- & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)
-#else
- write (iout,'(a,3i5,f8.2,f10.1)') "+dist.constr ",
- & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)
+ if (.not.out1file .or. me.eq.king) then
#endif
- endif
+ do i=1,nhpb
+ write (iout,'(a,3i5,2f8.2,i2,f10.1)') "+dist.constr ",
+ & i,ihpb(i),jhpb(i),dhpb(i),dhpb1(i),ibecarb(i),forcon(i)
enddo
call flush(iout)
+#ifdef MPI
+ endif
+#endif
return
end
c-------------------------------------------------------------------------------
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
# Add old gfortran flags
set(CPPFLAGS "${CPPFLAGS} -DG77")
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(CPPFLAGS "${CPPFLAGS} -DPGI")
+ FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+ list(APPEND UNRES_MDM_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
# TESTS
#=========================================
-#-- Copy all the data files from the test directory into the source directory
-#SET(UNRES_TEST_FILES
-# ala10.inp
-# )
-
-#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
-# SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
-# MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
-# ADD_CUSTOM_COMMAND (
-# TARGET ${UNRES_BIN}
-# POST_BUILD
-# COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
-# )
-#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
-
#=========================================
# Generate data test files
#=========================================
+# test_single_ala.sh
+#=========================================
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
+"#!/bin/sh
+export POT=GB
+export PREFIX=ala10
+#-----------------------------------------------------------------------------
+UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond.parm
+export THETPAR=$DD/thetaml.5parm
+export ROTPAR=$DD/scgauss.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_pdb_shelly.dat
+export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+$UNRES_BIN
+")
+
+#
+# File permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+
+
+#=========================================
+# ala10.inp
+#=========================================
+
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
+"ala10 unblocked
+SEED=-1111333 MD ONE_LETTER rescale_mode=2
+nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0 &
+reset_moment=1000 reset_vel=1000
+WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873 &
+WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000 &
+WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000 &
+WVDWPP=0.11371 WHPB=1.00000 &
+CUTOFF=7.00000 WCORR4=0.00000
+12
+XAAAAAAAAAAX
+ 0
+ 0
+ 90.0000 90.0000 90.0000 90.000 90.000 90.000 90.000 90.000
+ 90.0000 90.0000
+ 180.0000 180.0000 180.0000 180.000 180.000 180.000 180.000 180.000
+ 180.0000
+ 110.0000 110.0000 110.0000 100.000 110.000 100.000 110.000 110.000
+ 110.0000 110.0000
+ -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
+ -120.0000 -120.0000
+")
+
+if(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_ENE.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_MIN_CART.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_micro.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_INT.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_REGULAR_INT.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_B.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_L.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_NH.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1dkz_cut.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1dkz_cut_unres.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-ber.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-ene.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-lang.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
-#if(NOT UNRES_WITH_MPI)
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-micro.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
-# add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-min.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
-#endif(NOT UNRES_WITH_MPI)
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_fit_hist.py
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_hist.py
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/checkgrad.awk
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_CHECKGRAD.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-checkgrad.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
+#=========================================
+# test_prota_E0LL2Y.sh
+#=========================================
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_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.parm
+export THETPAR=$DD/theta_abinitio.parm
+export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/scinter_$POT.parm
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export THETPARPDB=$DD/thetaml.5parm
+export ROTPARPDB=$DD/scgauss.parm
+export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+$UNRES_BIN
+./prota_unres_energy_check.sh $1 ${UNRES_BIN}
+")
+
+# 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 permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_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/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.parm
+export THETPAR=$DD/theta_abinitio.parm
+export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/scinter_$POT.parm
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export THETPARPDB=$DD/thetaml.5parm
+export ROTPARPDB=$DD/scgauss.parm
+export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file
+./prota_unres_energy_check.sh $1 ${UNRES_BIN}
+")
+
+#
+# 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
+)
+
+
+endif(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+
+
+# Add tests
+
+if(NOT UNRES_WITH_MPI)
+
+ if(UNRES_MD_FF STREQUAL "GAB")
+ add_test(NAME UNRES_M_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+ endif(UNRES_MD_FF STREQUAL "GAB")
+
+ if(UNRES_MD_FF STREQUAL "E0LL2Y")
+ add_test(NAME UNRES_M_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
+ add_test(NAME UNRES_M_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
+ add_test(NAME UNRES_M_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
+ add_test(NAME UNRES_M_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
+ add_test(NAME UNRES_M_REGULAR COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
+ add_test(NAME UNRES_M_MD_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 1 )
+ add_test(NAME UNRES_M_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_L 1 )
+#no NH in MD-M
+# add_test(NAME UNRES_M_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_NH 1 )
+ add_test(NAME UNRES_M_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_B 1 )
+ add_test(NAME UNRES_M_multi_ene COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-ene 1 )
+ add_test(NAME UNRES_M_multi_checkgrad COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-checkgrad 1 )
+ add_test(NAME UNRES_M_multi_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-min 1 )
+ add_test(NAME UNRES_M_multi_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-micro 1 )
+ add_test(NAME UNRES_M_multi_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-ber 1 )
+ add_test(NAME UNRES_M_multi_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-lang 1 )
+ endif(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+else(NOT UNRES_WITH_MPI)
+
+
+ if(UNRES_MD_FF STREQUAL "GAB")
+ add_test(NAME UNRES_M_MD_MPI_Ala10 COMMAND ${mpiexec} ${boot_lam} ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+ endif(UNRES_MD_FF STREQUAL "GAB")
+
+ if(UNRES_MD_FF STREQUAL "E0LL2Y")
+ add_test(NAME UNRES_M_ENE_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 2 )
+ add_test(NAME UNRES_M_ENE1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
+ add_test(NAME UNRES_M_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh prota_CHECKGRAD 2 2 )
+ add_test(NAME UNRES_M_CHECKGRAD1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
+ add_test(NAME UNRES_M_MIN_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 2 )
+ add_test(NAME UNRES_M_MIN_INT COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
+ add_test(NAME UNRES_M_REGULAR COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
+ add_test(NAME UNRES_M_MD_microcanonical COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 2 )
+ add_test(NAME UNRES_M_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_L 2 2 )
+# no NH in src_MD-M code
+# add_test(NAME UNRES_M_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_NH 2 2 )
+ add_test(NAME UNRES_M_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_B 2 2 )
+ add_test(NAME UNRES_M_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_remd 1 8 )
+ add_test(NAME UNRES_M_multi_ene COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ene 2 2 )
+ add_test(NAME UNRES_M_multi_ene1 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ene 1 1 )
+ add_test(NAME UNRES_M_multi_checkgrad COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-checkgrad 2 2 )
+ add_test(NAME UNRES_M_multi_checkgrad1 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-checkgrad 1 1 )
+ add_test(NAME UNRES_M_multi_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-min 2 2 )
+ add_test(NAME UNRES_M_multi_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-micro 2 2 )
+ add_test(NAME UNRES_M_multi_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ber 2 2 )
+ add_test(NAME UNRES_M_multi_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-lang 2 2 )
+
+ endif(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+endif(NOT UNRES_WITH_MPI)
integer inp,iout,igeom,intin,ipdb,imol2,ipdbin,ithep,irotam,
& itorp,itordp,ifourier,ielep,isidep,iscpp,icbase,istat,
& ientin,ientout,izs1,isecpred,ibond,irest2,iifrag,icart,
- & irest1,isccor
+ & irest1,isccor,ithep_pdb,irotam_pdb
common /iounits/ inp,iout,igeom,intin,ipdb,imol2,ipdbin,ithep,
& irotam,itorp,itordp,ifourier,ielep,isidep,iscpp,icbase,
& istat,ientin,ientout,izs1,isecpred,ibond,irest2,iifrag,
- & icart,irest1,isccor
+ & icart,irest1,isccor,ithep_pdb,irotam_pdb
character*256 outname,intname,pdbname,mol2name,statname,intinname,
& entname,prefix,secpred,rest2name,qname,cartname,tmpdir,
& mremd_rst_name,curdir,pref_orig
& icsa_bank_reminimized,icsa_native_int,icsa_in,icsa_pdb
C Parameter files
character*256 bondname,thetname,rotname,torname,tordname,
- & fouriername,elename,sidename,scpname,sccorname,patname
+ & fouriername,elename,sidename,scpname,sccorname,patname,
+ & thetname_pdb,rotname_pdb
common /parfiles/ bondname,thetname,rotname,torname,tordname,
- & fouriername,elename,sidename,scpname,sccorname,patname
+ & fouriername,elename,sidename,scpname,sccorname,patname,
+ & thetname_pdb,rotname_pdb
character*3 pot
C-----------------------------------------------------------------------
C INP - main input file
parameter (max_cg_procs=maxprocs)
C Max. number of AA residues
integer maxres
- parameter (maxres=1200)
+ parameter (maxres=1300)
C Appr. max. number of interaction sites
integer maxres2,maxres6,mmaxres2
parameter (maxres2=2*maxres,maxres6=6*maxres)
call xdrfint_(ixdrf, nss, iret)
do j=1,nss
if (dyn_ss) then
- call xdrfint(ixdrf, idssb(j)+nres, iret)
- call xdrfint(ixdrf, jdssb(j)+nres, iret)
+ call xdrfint_(ixdrf, idssb(j)+nres, iret)
+ call xdrfint_(ixdrf, jdssb(j)+nres, iret)
else
call xdrfint_(ixdrf, ihpb(j), iret)
call xdrfint_(ixdrf, jhpb(j), iret)
do i=1,4*nres
glocbuf(i)=gloc(i,icg)
enddo
-#define DEBUG
+#undef DEBUG
#ifdef DEBUG
write (iout,*) "gloc_sc before reduce"
do i=1,nres
call MPI_Reduce(gloc_scbuf(1,1),gloc_sc(1,1,icg),3*nres,
& MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
time_reduce=time_reduce+MPI_Wtime()-time00
-#define DEBUG
+#undef DEBUG
#ifdef DEBUG
write (iout,*) "gloc_sc after reduce"
do i=1,nres
do k=1,2
mu(k,i-2)=Ub2(k,i-2)+b1(k,iti1)
enddo
-cd write (iout,*) 'mu ',mu(:,i-2)
+cd write (iout,*) 'mu ',mu(:,i-2),i-2
+cd write (iout,*) 'b1 ',b1(:,iti1),i-2
+cd write (iout,*) 'Ub2 ',Ub2(:,i-2),i-2
+cd write (iout,*) 'Ug ',Ug(:,:,i-2),i-2
+cd write (iout,*) 'b2 ',b2(:,itortyp(itype(i))),i-2
cd write (iout,*) 'mu1',mu1(:,i-2)
cd write (iout,*) 'mu2',mu2(:,i-2)
if (wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or.wcorr6.gt.0.0d0)
& "estr1",i,gnmr1(vbld(i),-1.0d0,distchainmax)
else
diff = vbld(i)-vbldp0
- if (energy_dec) write (iout,*)
+ if (energy_dec) write (iout,'(a7,i5,4f7.3)')
& "estr bb",i,vbld(i),vbldp0,diff,AKP*diff*diff
estr=estr+diff*diff
do j=1,3
logical lprn /.false./, lprn1 /.false./
etheta=0.0D0
do i=ithet_start,ithet_end
- if (itype(i-1).eq.21) cycle
+ if ((itype(i-1).eq.ntyp1).or.(itype(i-2).eq.ntyp1).or.
+ &(itype(i).eq.ntyp1)) cycle
dethetai=0.0d0
dephii=0.0d0
dephii1=0.0d0
coskt(k)=dcos(k*theti2)
sinkt(k)=dsin(k*theti2)
enddo
- if (i.gt.3 .and. itype(i-2).ne.21) then
+C if (i.gt.3) then
+ if (i.gt.3 .and. itype(max0(i-3,1)).ne.ntyp1) then
#ifdef OSF
phii=phi(i)
if (phii.ne.phii) phii=150.0
enddo
else
phii=0.0d0
- ityp1=nthetyp+1
+ ityp1=ithetyp(itype(i-2))
do k=1,nsingle
cosph1(k)=0.0d0
sinph1(k)=0.0d0
enddo
endif
- if (i.lt.nres .and. itype(i).ne.21) then
+ if ((i.lt.nres).and. itype(i+1).ne.ntyp1) then
#ifdef OSF
phii1=phi(i+1)
if (phii1.ne.phii1) phii1=150.0
enddo
else
phii1=0.0d0
- ityp3=nthetyp+1
+ ityp3=ithetyp(itype(i))
do k=1,nsingle
cosph2(k)=0.0d0
sinph2(k)=0.0d0
& i,theta(i)*rad2deg,phii*rad2deg,
& phii1*rad2deg,ethetai
etheta=etheta+ethetai
+ if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
+ & 'ebend',i,ethetai
if (i.gt.3) gloc(i-3,icg)=gloc(i-3,icg)+wang*dephii
if (i.lt.nres) gloc(i-2,icg)=gloc(i-2,icg)+wang*dephii1
gloc(nphi+i-2,icg)=wang*dethetai
c & dscp1,dscp2,sumene
c sumene = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
escloc = escloc + sumene
+ if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
+ & 'escloc',i,sumene
c write (2,*) "i",i," escloc",sumene,escloc
#ifdef DEBUG
C
include 'COMMON.IOUNITS'
include 'COMMON.FFIELD'
include 'COMMON.TORCNSTR'
+ include 'COMMON.CONTROL'
logical lprn
C Set lprn=.true. for debugging
lprn=.false.
if (itype(i-2).eq.21 .or. itype(i-1).eq.21
& .or. itype(i).eq.21 .or. itype(i+1).eq.21
& .or. itype(i-3).eq.ntyp1) cycle
+ etors_d_ii=0.0D0
itori=itortyp(itype(i-2))
itori1=itortyp(itype(i-1))
itori2=itortyp(itype(i))
sinphi2=dsin(j*phii1)
etors_d=etors_d+v1cij*cosphi1+v1sij*sinphi1+
& v2cij*cosphi2+v2sij*sinphi2
+ if (energy_dec) etors_d_ii=etors_d_ii+
+ & v1cij*cosphi1+v1sij*sinphi1+v2cij*cosphi2+v2sij*sinphi2
gloci1=gloci1+j*(v1sij*cosphi1-v1cij*sinphi1)
gloci2=gloci2+j*(v2sij*cosphi2-v2cij*sinphi2)
enddo
sinphi1m2=dsin(l*phii-(k-l)*phii1)
etors_d=etors_d+v1cdij*cosphi1p2+v2cdij*cosphi1m2+
& v1sdij*sinphi1p2+v2sdij*sinphi1m2
+ if (energy_dec) etors_d_ii=etors_d_ii+
+ & v1cdij*cosphi1p2+v2cdij*cosphi1m2+
+ & v1sdij*sinphi1p2+v2sdij*sinphi1m2
gloci1=gloci1+l*(v1sdij*cosphi1p2+v2sdij*cosphi1m2
& -v1cdij*sinphi1p2-v2cdij*sinphi1m2)
gloci2=gloci2+(k-l)*(v1sdij*cosphi1p2-v2sdij*cosphi1m2
& -v1cdij*sinphi1p2+v2cdij*sinphi1m2)
enddo
enddo
+ if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
+ & 'etor_d',i,etors_d_ii
gloc(i-3,icg)=gloc(i-3,icg)+wtor_d*gloci1
gloc(i-2,icg)=gloc(i-2,icg)+wtor_d*gloci2
enddo
esccor=0.0D0
do i=itau_start,itau_end
if ((itype(i-2).eq.ntyp1).or.(itype(i-1).eq.ntyp1)) cycle
- esccor_ii=0.0D0
+
isccori=isccortyp(itype(i-2))
isccori1=isccortyp(itype(i-1))
c write (iout,*) "EBACK_SC_COR",i,nterm_sccor(isccori,isccori1)
phii=phi(i)
do intertyp=1,3 !intertyp
+ esccor_ii=0.0D0
cc Added 09 May 2012 (Adasko)
cc Intertyp means interaction type of backbone mainchain correlation:
c 1 = SC...Ca...Ca...Ca
v2ij=v2sccor(j,intertyp,isccori,isccori1)
cosphi=dcos(j*tauangle(intertyp,i))
sinphi=dsin(j*tauangle(intertyp,i))
+ if (energy_dec) esccor_ii=esccor_ii+v1ij*cosphi+v2ij*sinphi
esccor=esccor+v1ij*cosphi+v2ij*sinphi
gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
enddo
+ if (energy_dec) write (iout,'(a6,i5,i2,0pf7.3)')
+ & 'esccor',i,intertyp,esccor_ii
+cd write (iout,*) "tau ",i,intertyp,tauangle(intertyp,i)*RAD2DEG
c write (iout,*) "EBACK_SC_COR",i,v1ij*cosphi+v2ij*sinphi,intertyp
gloc_sc(intertyp,i-3,icg)=gloc_sc(intertyp,i-3,icg)+wsccor*gloci
if (lprn)
include 'COMMON.SBRIDGE'
include 'COMMON.DISTFIT'
include 'COMMON.MD'
- character*50 tytul
+ character*(*) tytul
character*1 chainid(10) /'A','B','C','D','E','F','G','H','I','J'/
dimension ica(maxres)
write (iunit,'(3a,1pe15.5)') 'REMARK ',tytul,' ENERGY ',etot
igeom= 8
intin= 9
ithep= 11
+ ithep_pdb=51
irotam=12
+ irotam_pdb=52
itorp= 13
itordp= 23
ielep= 14
c Obtaining the gamma derivatives from sine derivative
if (phi(i).gt.-pi4.and.phi(i).le.pi4.or.
& phi(i).gt.pi34.and.phi(i).le.pi.or.
- & phi(i).gt.-pi.and.phi(i).le.-pi34) then
+ & phi(i).ge.-pi.and.phi(i).le.-pi34) then
call vecpr(dc_norm(1,i-1),dc_norm(1,i-2),vp1)
call vecpr(dc_norm(1,i-3),dc_norm(1,i-1),vp2)
call vecpr(dc_norm(1,i-3),dc_norm(1,i-2),vp3)
c Obtaining the gamma derivatives from sine derivative
if (tauangle(1,i).gt.-pi4.and.tauangle(1,i).le.pi4.or.
& tauangle(1,i).gt.pi34.and.tauangle(1,i).le.pi.or.
- & tauangle(1,i).gt.-pi.and.tauangle(1,i).le.-pi34) then
+ & tauangle(1,i).ge.-pi.and.tauangle(1,i).le.-pi34) then
call vecpr(dc_norm(1,i-1),dc_norm(1,i-2),vp1)
call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-1),vp2)
call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-2),vp3)
c Obtaining the gamma derivatives from sine derivative
if (tauangle(2,i).gt.-pi4.and.tauangle(2,i).le.pi4.or.
& tauangle(2,i).gt.pi34.and.tauangle(2,i).le.pi.or.
- & tauangle(2,i).gt.-pi.and.tauangle(2,i).le.-pi34) then
+ & tauangle(2,i).ge.-pi.and.tauangle(2,i).le.-pi34) then
call vecpr(dc_norm2(1,i-1+nres),dc_norm(1,i-2),vp1)
call vecpr(dc_norm(1,i-3),dc_norm(1,i-1+nres),vp2)
call vecpr(dc_norm(1,i-3),dc_norm(1,i-2),vp3)
dtauangle(j,2,3,i)=-1/sing*dcostau(j,2,3,i)
c write(iout,*) i,j,"else", dtauangle(j,2,3,i)
enddo
- endif
+ endif
enddo
CCC third case SC...Ca...Ca...SC
c Obtaining the gamma derivatives from sine derivative
if (tauangle(3,i).gt.-pi4.and.tauangle(3,i).le.pi4.or.
& tauangle(3,i).gt.pi34.and.tauangle(3,i).le.pi.or.
- & tauangle(3,i).gt.-pi.and.tauangle(3,i).le.-pi34) then
+ & tauangle(3,i).ge.-pi.and.tauangle(3,i).le.-pi34) then
call vecpr(dc_norm(1,i-1+nres),dc_norm(1,i-2),vp1)
call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-1+nres),vp2)
call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-2),vp3)
dtauangle(j,3,3,i)=-1/sing*dcostau(j,3,3,i)
c write(iout,*) "else",i
enddo
+
endif
enddo
-
#ifdef CRYST_SC
c Derivatives of side-chain angles alpha and omega
#if defined(MPI) && defined(PARINTDER)
c obtaining the derivatives of omega from sines
if(omeg(i).gt.-pi4.and.omeg(i).le.pi4.or.
& omeg(i).gt.pi34.and.omeg(i).le.pi.or.
- & omeg(i).gt.-pi.and.omeg(i).le.-pi34) then
+ & omeg(i).ge.-pi.and.omeg(i).le.-pi34) then
fac15=dcos(theta(i+1))/(dsin(theta(i+1))*
& dsin(theta(i+1)))
fac16=dcos(alph(i))/(dsin(alph(i))*dsin(alph(i)))
include 'DIMENSIONS'
include 'COMMON.GEO'
include 'COMMON.CHAIN'
+ include 'COMMON.IOUNITS'
x12=c(1,i1)-c(1,i2)
x23=c(1,i3)-c(1,i2)
x34=c(1,i4)-c(1,i3)
if (dabs(scalar).gt.1.0D0)
&scalar=0.99999999999999D0*scalar/dabs(scalar)
angle=dacos(scalar)
-cd print '(2i4,10f7.3)',i2,i3,vx,vy,vz,wx,wy,wz,vnorm,wnorm,
-cd &scalar,angle
else
angle=pi
endif
scalar=tx*x23+ty*y23+tz*z23
if (scalar.lt.0.0D0) angle=-angle
beta=angle
+cd if ((vnorm.lt.0.01.or.wnorm.lt.0.01).and.angle.ne.pi
+cd & .and.i3.ne.maxres*2)
+cd & write(iout,'(a12,4i4,6f7.3,4f10.5)') 'beta warning',i1,i2,i3,i4,
+cd & vx,vy,vz,wx,wy,wz,vnorm,wnorm,scalar,angle*RAD2DEG
return
end
C
endif
#endif
c write (iout,*) "dimen",dimen," dimen1",dimen1," dimen3",dimen3
+ write (iout,*) "The number of degrees of freedom ",dimen3
c Zeroing out A and fricmat
do i=1,dimen
do j=1,dimen
include 'COMMON.VAR'
include 'COMMON.GEO'
include 'COMMON.MINIM'
+ include 'COMMON.CONTROL'
common /srutu/ icall
dimension iv(liv)
double precision minval,x(maxvar),d(maxvar),v(1:lv),xx(maxvar)
external func,gradient,fdum
external func_restr,grad_restr
logical not_done,change,reduce
- common /przechowalnia/ v
+c common /przechowalnia/ v
icall = 1
include 'COMMON.CHAIN'
dimension iv(liv)
double precision minval,x(maxvar),d(maxvar),v(1:lv),xx(maxvar)
- common /przechowalnia/ v
+c common /przechowalnia/ v
double precision energia(0:n_ene)
external func_dc,grad_dc,fdum
iv(19)=2
* selects output unit
iv(21)=0
- if (print_min_ini+print_min_stat+print_min_res.gt.0) iv(21)=iout
+ if (print_min_ini+print_min_stat+print_min_res.gt.0) iv(21)=iout
* 1 means to print out result
iv(22)=print_min_res
* 1 means to print out summary stats
enddo
call flush(iout)
endif
+ write (2,*) "Start reading THETA_PDB"
+ do i=1,ntyp
+ read (ithep_pdb,*,err=111,end=111) a0thet(i),(athet(j,i),j=1,2),
+ & (bthet(j,i),j=1,2)
+ read (ithep_pdb,*,err=111,end=111) (polthet(j,i),j=0,3)
+ read (ithep_pdb,*,err=111,end=111) (gthet(j,i),j=1,3)
+ read (ithep_pdb,*,err=111,end=111) theta0(i),sig0(i),sigc0(i)
+ sigc0(i)=sigc0(i)**2
+ enddo
+ write (2,*) "End reading THETA_PDB"
+ close (ithep_pdb)
#endif
close(ithep)
#ifdef CRYST_SC
enddo
endif
enddo
+C
+C Read the parameters of the probability distribution/energy expression
+C of the side chains.
+C
+ do i=1,ntyp
+ read (irotam_pdb,'(3x,i3,f8.3)',end=112,err=112) nlob(i),dsc(i)
+ if (i.eq.10) then
+ dsc_inv(i)=0.0D0
+ else
+ dsc_inv(i)=1.0D0/dsc(i)
+ endif
+ if (i.ne.10) then
+ do j=1,nlob(i)
+ do k=1,3
+ do l=1,3
+ blower(l,k,j)=0.0D0
+ enddo
+ enddo
+ enddo
+ bsc(1,i)=0.0D0
+ read(irotam_pdb,*,end=112,err=112)(censc(k,1,i),k=1,3),
+ & ((blower(k,l,1),l=1,k),k=1,3)
+ do j=2,nlob(i)
+ read (irotam_pdb,*,end=112,err=112) bsc(j,i)
+ read (irotam_pdb,*,end=112,err=112) (censc(k,j,i),k=1,3),
+ & ((blower(k,l,j),l=1,k),k=1,3)
+ enddo
+ do j=1,nlob(i)
+ do k=1,3
+ do l=1,k
+ akl=0.0D0
+ do m=1,3
+ akl=akl+blower(k,m,j)*blower(l,m,j)
+ enddo
+ gaussc(k,l,j,i)=akl
+ gaussc(l,k,j,i)=akl
+ enddo
+ enddo
+ enddo
+ endif
+ enddo
+ close (irotam_pdb)
#endif
close(irotam)
c write (iout,*) 'ntortyp',ntortyp
maxinter=3
cc maxinter is maximum interaction sites
- do l=1,maxinter
+ do l=1,maxinter
do i=1,nsccortyp
- do j=1,nsccortyp
+ do j=1,nsccortyp
read (isccor,*,end=113,err=113)
& nterm_sccor(i,j),nlor_sccor(i,j)
v0ijsccor=0.0d0
si=-1.0d0
-
- do k=1,nterm_sccor(i,j)
+
+ do k=1,nterm_sccor(i,j)
read (isccor,*,end=113,err=113) kk,v1sccor(k,l,i,j)
- & ,v2sccor(k,l,i,j)
+ & ,v2sccor(k,l,i,j)
v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j)
si=-si
enddo
- do k=1,nlor_sccor(i,j)
+ do k=1,nlor_sccor(i,j)
read (isccor,*,end=113,err=113) kk,vlor1sccor(k,i,j),
- & vlor2sccor(k,i,j),vlor3sccor(k,i,j)
+ & vlor2sccor(k,i,j),vlor3sccor(k,i,j)
v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/
&(1+vlor3sccor(k,i,j)**2)
enddo
enddo
enddo
close (isccor)
-
+
#endif
if (lprint) then
- write (iout,'(/a/)') 'Torsional constants:'
- do i=1,nsccortyp
- do j=1,nsccortyp
+ write (iout,'(/a/)') 'Torsional constants:'
+ do i=1,nsccortyp
+ do j=1,nsccortyp
write (iout,*) 'ityp',i,' jtyp',j
write (iout,*) 'Fourier constants'
do k=1,nterm_sccor(i,j)
enddo
write (iout,*) 'Lorenz constants'
do k=1,nlor_sccor(i,j)
- write (iout,'(3(1pe15.5))')
+ write (iout,'(3(1pe15.5))')
& vlor1sccor(k,i,j),vlor2sccor(k,i,j),vlor3sccor(k,i,j)
enddo
enddo
open (ibond,file=bondname,status='old',readonly,shared)
call getenv_loc('THETPAR',thetname)
open (ithep,file=thetname,status='old',readonly,shared)
+#ifndef CRYST_THETA
+ call getenv_loc('THETPARPDB',thetname_pdb)
+ open (ithep_pdb,file=thetname_pdb,status='old',readonly,shared)
+#endif
call getenv_loc('ROTPAR',rotname)
open (irotam,file=rotname,status='old',readonly,shared)
+#ifndef CRYST_SC
+ call getenv_loc('ROTPARPDB',rotname_pdb)
+ open (irotam_pdb,file=rotname_pdb,status='old',readonly,shared)
+#endif
call getenv_loc('TORPAR',torname)
open (itorp,file=torname,status='old',readonly,shared)
call getenv_loc('TORDPAR',tordname)
call getenv_loc('THETPAR',thetname)
open (ithep,file=thetname,status='old',action='read')
c print *,"Processor",myrank," opened file ITHEP"
+#ifndef CRYST_THETA
+ call getenv_loc('THETPARPDB',thetname_pdb)
+ open (ithep_pdb,file=thetname_pdb,status='old',action='read')
+#endif
call getenv_loc('ROTPAR',rotname)
open (irotam,file=rotname,status='old',action='read')
c print *,"Processor",myrank," opened file IROTAM"
+#ifndef CRYST_SC
+ call getenv_loc('ROTPARPDB',rotname_pdb)
+ open (irotam_pdb,file=rotname_pdb,status='old',action='read')
+#endif
call getenv_loc('TORPAR',torname)
open (itorp,file=torname,status='old',action='read')
c print *,"Processor",myrank," opened file ITORP"
open (ibond,file=bondname,status='old')
call getenv_loc('THETPAR',thetname)
open (ithep,file=thetname,status='old')
+#ifndef CRYST_THETA
+ call getenv_loc('THETPARPDB',thetname_pdb)
+ open (ithep_pdb,file=thetname_pdb,status='old')
+#endif
call getenv_loc('ROTPAR',rotname)
open (irotam,file=rotname,status='old')
+#ifndef CRYST_SC
+ call getenv_loc('ROTPARPDB',rotname_pdb)
+ open (irotam_pdb,file=rotname_pdb,status='old')
+#endif
call getenv_loc('TORPAR',torname)
open (itorp,file=torname,status='old')
call getenv_loc('TORDPAR',tordname)
open (ibond,file=bondname,status='old',readonly)
call getenv_loc('THETPAR',thetname)
open (ithep,file=thetname,status='old',readonly)
+#ifndef CRYST_THETA
+ call getenv_loc('THETPARPDB',thetname_pdb)
+ print *,"thetname_pdb ",thetname_pdb
+ open (ithep_pdb,file=thetname_pdb,status='old',action='read')
+ print *,ithep_pdb," opened"
+#endif
call getenv_loc('ROTPAR',rotname)
open (irotam,file=rotname,status='old',readonly)
+#ifndef CRYST_SC
+ call getenv_loc('ROTPARPDB',rotname_pdb)
+ open (irotam_pdb,file=rotname_pdb,status='old',action='read')
+#endif
call getenv_loc('TORPAR',torname)
open (itorp,file=torname,status='old',readonly)
call getenv_loc('TORDPAR',tordname)
C
implicit real*8 (a-h,o-z)
include 'DIMENSIONS'
+#ifdef AMD64
+ integer*8 iseedi8
+#endif
#ifdef MPI
include 'mpif.h'
logical OKRandom, prng_restart
if (fg_rank.eq.0) then
seed=seed*(me+1)+1
#ifdef AMD64
- if(me.eq.king)
- & write (iout,*) 'MPI: node= ', me, ' iseed= ',iseed
- OKRandom = prng_restart(me,iseed)
+ iseedi8=dint(seed)
+ if(me.eq.king .or. .not. out1file)
+ & write (iout,*) 'MPI: node= ', me, ' iseed= ',iseedi8
+ write (*,*) 'MPI: node= ', me, ' iseed= ',iseedi8
+ OKRandom = prng_restart(me,iseedi8)
#else
do i=1,4
tmp=65536.0d0**(4-i)
time1=tcpu()
#endif
call minim_dc(etot,iretcode,nfun)
+ if(iretcode.eq.8) call check_ecartint
else
if (indpdb.ne.0) then
call bond_regular
include 'COMMON.SBRIDGE'
double precision varia(maxvar)
dimension ind(6)
- double precision energy(0:max_ene)
+ double precision energy(0:n_ene)
logical eof
eof=.false.
#ifdef MPI
include 'COMMON.MD'
include 'COMMON.SBRIDGE'
common /srutu/ icall
- double precision energy(0:max_ene)
+ double precision energy(0:n_ene)
c do i=2,nres
c vbld(i)=vbld(i)+ran_number(-0.1d0,0.1d0)
c if (itype(i).ne.10)
include 'DIMENSIONS'
include 'COMMON.IOUNITS'
include 'COMMON.CONTROL'
- double precision energy(0:max_ene)
+ double precision energy(0:n_ene)
call chainbuild
call etotal(energy(0))
call enerprint(energy(0))
set(CPPFLAGS "${CPPFLAGS} -DG77")
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
# Add old gfortran flags
- set(CPPFLAGS "${CPPFLAGS} -DG77")
+ set(CPPFLAGS "${CPPFLAGS} -DG77")
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(CPPFLAGS "${CPPFLAGS} -DPGI")
+ FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+ list(APPEND UNRES_MD_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
#=========================================
-120.0000 -120.0000
")
+if(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_ENE.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_MIN_CART.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_micro.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_INT.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_REGULAR_INT.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_B.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_L.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_NH.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0_min.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_fit_hist.py
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_hist.py
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/checkgrad.awk
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_CHECKGRAD.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
+
+
+#=========================================
+# test_prota_E0LL2Y.sh
+#=========================================
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_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.parm
+export THETPAR=$DD/theta_abinitio.parm
+export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/scinter_$POT.parm
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export THETPARPDB=$DD/thetaml.5parm
+export ROTPARPDB=$DD/scgauss.parm
+export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+$UNRES_BIN
+./prota_unres_energy_check.sh $1 ${UNRES_BIN}
+")
+
+#
+# File permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+# 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(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.parm
+export THETPAR=$DD/theta_abinitio.parm
+export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/scinter_$POT.parm
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export THETPARPDB=$DD/thetaml.5parm
+export ROTPARPDB=$DD/scgauss.parm
+export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file
+./prota_unres_energy_check.sh $1 ${UNRES_BIN}
+")
+
+#
+# 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
+)
+
+
+endif(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+
# Add tests
if(NOT UNRES_WITH_MPI)
- add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+ if(UNRES_MD_FF STREQUAL "GAB")
+ add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+ endif(UNRES_MD_FF STREQUAL "GAB")
+
+ if(UNRES_MD_FF STREQUAL "E0LL2Y")
+ add_test(NAME UNRES_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
+ add_test(NAME UNRES_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
+ add_test(NAME UNRES_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
+ add_test(NAME UNRES_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
+ add_test(NAME UNRES_REGULAR COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
+ add_test(NAME UNRES_MD_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 1 )
+ add_test(NAME UNRES_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_L 1 )
+ add_test(NAME UNRES_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_NH 1 )
+ add_test(NAME UNRES_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_B 1 )
+ add_test(NAME UNRES_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1ei0_min 1 )
+ endif(UNRES_MD_FF STREQUAL "E0LL2Y")
else(NOT UNRES_WITH_MPI)
- add_test(NAME UNRES_MD_MPI_Ala10 COMMAND mpiexec -boot ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+ if(UNRES_MD_FF STREQUAL "GAB")
+ add_test(NAME UNRES_MD_MPI_Ala10 COMMAND ${mpiexec} ${boot_lam} ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+ endif(UNRES_MD_FF STREQUAL "GAB")
+
+ if(UNRES_MD_FF STREQUAL "E0LL2Y")
+ add_test(NAME UNRES_ENE_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 2 )
+ add_test(NAME UNRES_ENE1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
+ add_test(NAME UNRES_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh prota_CHECKGRAD 2 2 )
+ add_test(NAME UNRES_CHECKGRAD1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
+ add_test(NAME UNRES_MIN_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 2 )
+ add_test(NAME UNRES_MIN_INT COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
+ add_test(NAME UNRES_REGULAR COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
+ add_test(NAME UNRES_MD_microcanonical COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 2 )
+ add_test(NAME UNRES_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_L 2 2 )
+ add_test(NAME UNRES_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_NH 2 2 )
+ add_test(NAME UNRES_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_B 2 2 )
+ add_test(NAME UNRES_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_remd 1 8 )
+ add_test(NAME UNRES_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1ei0_min 1 2 )
+ endif(UNRES_MD_FF STREQUAL "E0LL2Y")
endif(NOT UNRES_WITH_MPI)
call xdrfint_(ixdrf, nss, iret)
do j=1,nss
if (dyn_ss) then
- call xdrfint(ixdrf, idssb(j)+nres, iret)
- call xdrfint(ixdrf, jdssb(j)+nres, iret)
+ call xdrfint_(ixdrf, idssb(j)+nres, iret)
+ call xdrfint_(ixdrf, jdssb(j)+nres, iret)
else
call xdrfint_(ixdrf, ihpb(j), iret)
call xdrfint_(ixdrf, jhpb(j), iret)
###################################################################
-INSTALL_DIR = /users/software/mpich2-1.0.7
+#INSTALL_DIR = /users/software/mpich2-1.0.7
+INSTALL_DIR = /users/local/mpich2-1.4.1p1_gnu
+
+FC= gfortran -g
-FC= gfortran
OPT = -O
FFLAGS3 = -c -O -I$(INSTALL_DIR)/include
FFLAGSE = -c -O3 -I$(INSTALL_DIR)/include
-LIBS = -L$(INSTALL_DIR)/lib -lmpich -lpthread xdrf/libxdrf.a
+LIBS = -L$(INSTALL_DIR)/lib -lmpich -lmpl xdrf/libxdrf.a
ARCH = LINUX
PP = /lib/cpp -P
c call intcartderiv
c call checkintcartgrad
call zerograd
- aincr=1.0D-6
+ aincr=1.0D-4
write(iout,*) 'Calling CHECK_ECARTINT.'
nf=0
icall=0
C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C
-C 3 2 162
+C 3 2 187
subroutine cinfo
include 'COMMON.IOUNITS'
write(iout,*)'++++ Compile info ++++'
- write(iout,*)'Version 3.2 build 162'
- write(iout,*)'compiled Sun May 10 03:06:38 2015'
- write(iout,*)'compiled by adam@piasek4'
+ write(iout,*)'Version 3.2 build 187'
+ write(iout,*)'compiled Mon Feb 27 13:39:47 2017'
+ write(iout,*)'compiled by czarek@piasek4'
write(iout,*)'OS name: Linux '
- write(iout,*)'OS release: 3.2.0-70-generic '
+ write(iout,*)'OS release: 3.2.0-111-generic '
write(iout,*)'OS version:',
- & ' #105-Ubuntu SMP Wed Sep 24 19:49:16 UTC 2014 '
+ & ' #153-Ubuntu SMP Wed Sep 21 21:23:31 UTC 2016 '
write(iout,*)'flags:'
write(iout,*)'INSTALL_DIR = /users/software/mpich-1.2.7p1_int...'
write(iout,*)'FC= ifort'
& evdwij
endif
- if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
- & 'evdw',i,j,evdwij
-
+ if (energy_dec) then
+ write (iout,'(a6,2i5,0pf7.3)') 'evdw',i,j,evdwij
+ call flush(iout)
+ endif
C Calculate gradient components.
e1=e1*eps1*eps2rt**2*eps3rt**2
fac=-expon*(e1+evdwij)*rij_shift
do i=ibondp_start,ibondp_end
diff = vbld(i)-vbldp0
c write (iout,*) i,vbld(i),vbldp0,diff,AKP*diff*diff
+ if (energy_dec) write (iout,'(a7,i5,4f7.3)')
+ & "estr bb",i,vbld(i),vbldp0,diff,AKP*diff*diff
estr=estr+diff*diff
do j=1,3
gradb(j,i-1)=AKP*diff*dc(j,i-1)/vbld(i)
diff=vbld(i+nres)-vbldsc0(1,iti)
c write (iout,*) i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
c & AKSC(1,iti),AKSC(1,iti)*diff*diff
+ if (energy_dec) then
+ write (iout,*)
+ & "estr sc",i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
+ & AKSC(1,iti),AKSC(1,iti)*diff*diff
+ call flush(iout)
+ endif
estr=estr+0.5d0*AKSC(1,iti)*diff*diff
do j=1,3
gradbx(j,i)=AKSC(1,iti)*diff*dc(j,i+nres)/vbld(i+nres)
sinkt(k)=dsin(k*theti2)
enddo
C if (i.gt.3) then
- if (i.gt.3 .and. itype(i-3).ne.ntyp1) then
+ if (i.gt.3 .and. itype(max0(i-3,1)).ne.ntyp1) then
#ifdef OSF
phii=phi(i)
if (phii.ne.phii) phii=150.0
& 'ebe', i,theta(i)*rad2deg,phii*rad2deg,
& phii1*rad2deg,ethetai
etheta=etheta+ethetai
+ if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
+ & 'ebend',i,ethetai
if (i.gt.3) gloc(i-3,icg)=gloc(i-3,icg)+wang*dephii
if (i.lt.nres) gloc(i-2,icg)=gloc(i-2,icg)+wang*dephii1
gloc(nphi+i-2,icg)=wang*dethetai
include 'COMMON.IOUNITS'
include 'COMMON.FFIELD'
include 'COMMON.TORCNSTR'
+ include 'COMMON.CONTROL'
logical lprn
C Set lprn=.true. for debugging
lprn=.false.
c lprn=.true.
etors_d=0.0D0
do i=iphid_start,iphid_end
+ etors_d_ii=0.0D0
itori=itortyp(itype(i-2))
itori1=itortyp(itype(i-1))
itori2=itortyp(itype(i))
sinphi2=dsin(j*phii1)
etors_d=etors_d+v1cij*cosphi1+v1sij*sinphi1+
& v2cij*cosphi2+v2sij*sinphi2
+ if (energy_dec) etors_d_ii=etors_d_ii+
+ & v1cij*cosphi1+v1sij*sinphi1+v2cij*cosphi2+v2sij*sinphi2
gloci1=gloci1+j*(v1sij*cosphi1-v1cij*sinphi1)
gloci2=gloci2+j*(v2sij*cosphi2-v2cij*sinphi2)
enddo
sinphi1m2=dsin(l*phii-(k-l)*phii1)
etors_d=etors_d+v1cdij*cosphi1p2+v2cdij*cosphi1m2+
& v1sdij*sinphi1p2+v2sdij*sinphi1m2
+ if (energy_dec) etors_d_ii=etors_d_ii+
+ & v1cdij*cosphi1p2+v2cdij*cosphi1m2+
+ & v1sdij*sinphi1p2+v2sdij*sinphi1m2
gloci1=gloci1+l*(v1sdij*cosphi1p2+v2sdij*cosphi1m2
& -v1cdij*sinphi1p2-v2cdij*sinphi1m2)
gloci2=gloci2+(k-l)*(v1sdij*cosphi1p2-v2sdij*cosphi1m2
& -v1cdij*sinphi1p2+v2cdij*sinphi1m2)
enddo
enddo
+ if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
+ & 'etor_d',i,etors_d_ii
gloc(i-3,icg)=gloc(i-3,icg)+wtor_d*gloci1
gloc(i-2,icg)=gloc(i-2,icg)+wtor_d*gloci2
c write (iout,*) "gloci", gloc(i-3,icg)
esccor=0.0D0
do i=itau_start,itau_end
C do i=42,42
- esccor_ii=0.0D0
+
if ((itype(i-2).eq.ntyp1).or.(itype(i-1).eq.ntyp1)) cycle
isccori=isccortyp(itype(i-2))
isccori1=isccortyp(itype(i-1))
c(see comment below)
C print *,i,tauangle(1,i)
-c do intertyp=1,3 !intertyp
- do intertyp=2,2 !intertyp
+ do intertyp=1,3 !intertyp
+ esccor_ii=0.0D0
cc Added 09 May 2012 (Adasko)
cc Intertyp means interaction type of backbone mainchain correlation:
c 1 = SC...Ca...Ca...Ca
v2ij=v2sccor(j,intertyp,isccori,isccori1)
cosphi=dcos(j*tauangle(intertyp,i))
sinphi=dsin(j*tauangle(intertyp,i))
+ if (energy_dec) esccor_ii=esccor_ii+v1ij*cosphi+v2ij*sinphi
esccor=esccor+v1ij*cosphi+v2ij*sinphi
gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
enddo
+ if (energy_dec) write (iout,'(a6,i5,i2,0pf7.3)')
+ & 'esccor',i,intertyp,esccor_ii
C print *,i,tauangle(1,i),gloci
gloc_sc(intertyp,i-3,icg)=gloc_sc(intertyp,i-3,icg)+wsccor*gloci
c write (iout,*) "WTF",intertyp,i,itype(i),v1ij*cosphi+v2ij*sinphi
include 'COMMON.SBRIDGE'
include 'COMMON.DISTFIT'
include 'COMMON.MD'
- character*50 tytul
+ character*(*) tytul
dimension ica(maxres)
write (iunit,'(3a,1pe15.5)') 'REMARK ',tytul,' ENERGY ',etot
cmodel write (iunit,'(a5,i6)') 'MODEL',1
iphi_end=iturn3_end+2
iturn3_start=iturn3_start-1
iturn3_end=iturn3_end-1
- call int_bounds(nres-2,itau_start,itau_end)
- itau_start=itau_start+2
- itau_end=itau_end+2
+ call int_bounds(nres-3,itau_start,itau_end)
+ itau_start=itau_start+3
+ itau_end=itau_end+3
call int_bounds(nres-3,iphi1_start,iphi1_end)
iphi1_start=iphi1_start+3
iphi1_end=iphi1_end+3
idihconstr_end=ndih_constr
iphid_start=iphi_start
iphid_end=iphi_end-1
- itau_start=3
+ itau_start=4
itau_end=nres
ibond_start=2
ibond_end=nres-1
c Obtaining the gamma derivatives from sine derivative
if (phi(i).gt.-pi4.and.phi(i).le.pi4.or.
& phi(i).gt.pi34.and.phi(i).le.pi.or.
- & phi(i).gt.-pi.and.phi(i).le.-pi34) then
+ & phi(i).ge.-pi.and.phi(i).le.-pi34) then
call vecpr(dc_norm(1,i-1),dc_norm(1,i-2),vp1)
call vecpr(dc_norm(1,i-3),dc_norm(1,i-1),vp2)
call vecpr(dc_norm(1,i-3),dc_norm(1,i-2),vp3)
c Obtaining the gamma derivatives from sine derivative
if (tauangle(1,i).gt.-pi4.and.tauangle(1,i).le.pi4.or.
& tauangle(1,i).gt.pi34.and.tauangle(1,i).le.pi.or.
- & tauangle(1,i).gt.-pi.and.tauangle(1,i).le.-pi34) then
+ & tauangle(1,i).ge.-pi.and.tauangle(1,i).le.-pi34) then
call vecpr(dc_norm(1,i-1),dc_norm(1,i-2),vp1)
call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-1),vp2)
call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-2),vp3)
c Obtaining the gamma derivatives from sine derivative
if (tauangle(2,i).gt.-pi4.and.tauangle(2,i).le.pi4.or.
& tauangle(2,i).gt.pi34.and.tauangle(2,i).le.pi.or.
- & tauangle(2,i).gt.-pi.and.tauangle(2,i).le.-pi34) then
+ & tauangle(2,i).ge.-pi.and.tauangle(2,i).le.-pi34) then
call vecpr(dc_norm2(1,i-1+nres),dc_norm(1,i-2),vp1)
call vecpr(dc_norm(1,i-3),dc_norm(1,i-1+nres),vp2)
call vecpr(dc_norm(1,i-3),dc_norm(1,i-2),vp3)
c Obtaining the gamma derivatives from sine derivative
if (tauangle(3,i).gt.-pi4.and.tauangle(3,i).le.pi4.or.
& tauangle(3,i).gt.pi34.and.tauangle(3,i).le.pi.or.
- & tauangle(3,i).gt.-pi.and.tauangle(3,i).le.-pi34) then
+ & tauangle(3,i).ge.-pi.and.tauangle(3,i).le.-pi34) then
call vecpr(dc_norm(1,i-1+nres),dc_norm(1,i-2),vp1)
call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-1+nres),vp2)
call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-2),vp3)
c obtaining the derivatives of omega from sines
if(omeg(i).gt.-pi4.and.omeg(i).le.pi4.or.
& omeg(i).gt.pi34.and.omeg(i).le.pi.or.
- & omeg(i).gt.-pi.and.omeg(i).le.-pi34) then
+ & omeg(i).ge.-pi.and.omeg(i).le.-pi34) then
fac15=dcos(theta(i+1))/(dsin(theta(i+1))*
& dsin(theta(i+1)))
fac16=dcos(alph(i))/(dsin(alph(i))*dsin(alph(i)))
endif
#endif
c write (iout,*) "dimen",dimen," dimen1",dimen1," dimen3",dimen3
+ write (iout,*) "The number of degrees of freedom ",dimen3
c Zeroing out A and fricmat
do i=1,dimen
do j=1,dimen
do i=1,nres
itype(i)=rescode(i,sequence(i),iscode)
enddo
+ if (itype(2).eq.10.and.itype(1).eq.ntyp1) then
+ write (iout,*)
+ & "Glycine is the first full residue, initial dummy deleted"
+ do i=1,nres
+ itype(i)=itype(i+1)
+ enddo
+ nres=nres-1
+ endif
+ if (itype(nres-1).eq.10.and.itype(nres).eq.ntyp1) then
+ write (iout,*)
+ & "Glycine is the last full residue, terminal dummy deleted"
+ nres=nres-1
+ endif
+
C Assign initial virtual bond lengths
do i=2,nres
vbld(i)=vbl
time1=tcpu()
#endif
call minim_dc(etot,iretcode,nfun)
+ if(iretcode.eq.8) call check_ecartint
else
if (indpdb.ne.0) then
call bond_regular
include 'COMMON.MD'
include 'COMMON.SBRIDGE'
common /srutu/ icall
- double precision energy(0:max_ene)
+ double precision energy(0:n_ene)
c do i=2,nres
c vbld(i)=vbld(i)+ran_number(-0.1d0,0.1d0)
c if (itype(i).ne.10)
include 'DIMENSIONS'
include 'COMMON.IOUNITS'
include 'COMMON.CONTROL'
- double precision energy(0:max_ene)
+ double precision energy(0:n_ene)
logical debug /.false./
call chainbuild
call etotal(energy(0))
energy_split-sep.F
entmcm.F
gen_rand_conf.F
- geomout.F
+ geomout_min.F
gradient_p.F
intcor.f
initialize_p.F
set_property(SOURCE ${UNRES_MIN_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
set_property(SOURCE ${UNRES_MIM_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
-# set preprocesor flags
-set(CPPFLAGS "PROCOR -DLINUX -DISNAN -DSPLITELE -DLANG0 -DSCCORPDB" )
+#=========================================
+# Settings for GAB force field
+#=========================================
+if(UNRES_MD_FF STREQUAL "GAB" )
+ # set preprocesor flags
+ set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC")
+
+#=========================================
+# Settings for E0LL2Y force field
+#=========================================
+elseif(UNRES_MD_FF STREQUAL "E0LL2Y")
+ # set preprocesor flags
+ set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0" )
+elseif(UNRES_MD_FF STREQUAL "4P")
+ set(CPPFLAGS "UNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DSCCORPDB" )
+endif(UNRES_MD_FF STREQUAL "GAB")
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ set(CPPFLAGS "${CPPFLAGS} -DLINUX")
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
if (Fortran_COMPILER_NAME STREQUAL "ifort")
# Add ifort preprocessor flags
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
# Add gfortran flags
set(CPPFLAGS "${CPPFLAGS} -DG77")
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(CPPFLAGS "${CPPFLAGS} -DPGI")
+ FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+ list(APPEND UNRES_MIN_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
#=========================================
install(TARGETS UNRES_MIN_BIN DESTINATION ${CMAKE_INSTALL_PREFIX}/unres/MINIM)
+#=========================================
+# TESTS
+#=========================================
+
+#=========================================
+# Generate data test files
+#=========================================
+# test_single_ala.sh
+#=========================================
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
+"#!/bin/sh
+export POT=GB
+export PREFIX=ala10
+#-----------------------------------------------------------------------------
+UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond.parm
+export THETPAR=$DD/thetaml.5parm
+export ROTPAR=$DD/scgauss.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_pdb_shelly.dat
+export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+$UNRES_BIN
+")
+
+#
+# File permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+
+
+#=========================================
+# ala10.inp
+#=========================================
+
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
+"ala10 unblocked
+SEED=-1111333 MD ONE_LETTER rescale_mode=2
+nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0 &
+reset_moment=1000 reset_vel=1000
+WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873 &
+WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000 &
+WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000 &
+WVDWPP=0.11371 WHPB=1.00000 &
+CUTOFF=7.00000 WCORR4=0.00000
+12
+XAAAAAAAAAAX
+ 0
+ 0
+ 90.0000 90.0000 90.0000 90.000 90.000 90.000 90.000 90.000
+ 90.0000 90.0000
+ 180.0000 180.0000 180.0000 180.000 180.000 180.000 180.000 180.000
+ 180.0000
+ 110.0000 110.0000 110.0000 100.000 110.000 100.000 110.000 110.000
+ 110.0000 110.0000
+ -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
+ -120.0000 -120.0000
+")
+
+if(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_ENE.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_MIN_CART.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_INT.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+
+#=========================================
+# test_prota_E0LL2Y.sh
+#=========================================
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_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.parm
+export THETPAR=$DD/theta_abinitio.parm
+export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/scinter_$POT.parm
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export THETPARPDB=$DD/thetaml.5parm
+export ROTPARPDB=$DD/scgauss.parm
+export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+$UNRES_BIN
+./prota_unres_energy_check.sh $1 ${UNRES_BIN}
+")
+
+#
+# File permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+endif(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+
+
+# Add tests
+
+ if(UNRES_MD_FF STREQUAL "GAB")
+# add_test(NAME UNRES-MIN_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+ endif(UNRES_MD_FF STREQUAL "GAB")
+
+ if(UNRES_MD_FF STREQUAL "E0LL2Y")
+ add_test(NAME UNRES-MIN_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
+ add_test(NAME UNRES-MIN_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
+ add_test(NAME UNRES-MIN_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
+ endif(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+
#endif
#ifdef MPI
include 'mpif.h'
- double precision gradbufc(3,maxres),gradbufx(3,maxres),
- & glocbuf(4*maxres),gradbufc_sum(3,maxres)
-#else
- double precision gradbufc(3,maxres),gradbufx(3,maxres),
- & glocbuf(4*maxres),gradbufc_sum(3,maxres)
#endif
+ double precision gradbufc(3,maxres),gradbufx(3,maxres),
+ & glocbuf(4*maxres),gradbufc_sum(3,maxres),gloc_scbuf(3,maxres)
include 'COMMON.SETUP'
include 'COMMON.IOUNITS'
include 'COMMON.FFIELD'
include 'COMMON.CONTROL'
include 'COMMON.TIME1'
include 'COMMON.MAXGRAD'
+ include 'COMMON.SCCOR'
#ifdef TIMING
+#ifdef MPI
time01=MPI_Wtime()
+#else
+ time01=tcpu()
+#endif
#endif
#ifdef DEBUG
write (iout,*) "sum_gradient gvdwc, gvdwx"
enddo
call flush(iout)
#endif
- call MPI_AllReduce(gradbufc(1,1),gradbufc_sum(1,1),3*nres,
- & MPI_DOUBLE_PRECISION,MPI_SUM,FG_COMM,IERR)
- time_reduce=time_reduce+MPI_Wtime()-time00
-#ifdef DEBUG
- write (iout,*) "gradbufc_sum after allreduce"
do i=1,nres
- write (iout,'(i3,3f10.5)') i,(gradbufc_sum(j,i),j=1,3)
+ do j=1,3
+ gradbufc_sum(j,i)=gradbufc(j,i)
+ enddo
enddo
- call flush(iout)
+c call MPI_AllReduce(gradbufc(1,1),gradbufc_sum(1,1),3*nres,
+c & MPI_DOUBLE_PRECISION,MPI_SUM,FG_COMM,IERR)
+c time_reduce=time_reduce+MPI_Wtime()-time00
+#ifdef DEBUG
+c write (iout,*) "gradbufc_sum after allreduce"
+c do i=1,nres
+c write (iout,'(i3,3f10.5)') i,(gradbufc_sum(j,i),j=1,3)
+c enddo
+c call flush(iout)
#endif
#ifdef TIMING
- time_allreduce=time_allreduce+MPI_Wtime()-time00
+c time_allreduce=time_allreduce+MPI_Wtime()-time00
#endif
do i=nnt,nres
do k=1,3
gradbufc(k,i)=0.0d0
enddo
enddo
- do i=igrad_start,igrad_end
- do j=jgrad_start(i),jgrad_end(i)
- do k=1,3
- gradbufc(k,i)=gradbufc(k,i)+gradbufc_sum(k,j)
- enddo
+#ifdef DEBUG
+ write (iout,*) "igrad_start",igrad_start," igrad_end",igrad_end
+ write (iout,*) (i," jgrad_start",jgrad_start(i),
+ & " jgrad_end ",jgrad_end(i),
+ & i=igrad_start,igrad_end)
+#endif
+c
+c Obsolete and inefficient code; we can make the effort O(n) and, therefore,
+c do not parallelize this part.
+c
+c do i=igrad_start,igrad_end
+c do j=jgrad_start(i),jgrad_end(i)
+c do k=1,3
+c gradbufc(k,i)=gradbufc(k,i)+gradbufc_sum(k,j)
+c enddo
+c enddo
+c enddo
+ do j=1,3
+ gradbufc(j,nres-1)=gradbufc_sum(j,nres)
+ enddo
+ do i=nres-2,nnt,-1
+ do j=1,3
+ gradbufc(j,i)=gradbufc(j,i+1)+gradbufc_sum(j,i+1)
enddo
enddo
+#ifdef DEBUG
+ write (iout,*) "gradbufc after summing"
+ do i=1,nres
+ write (iout,'(i3,3f10.5)') i,(gradbufc(j,i),j=1,3)
+ enddo
+ call flush(iout)
+#endif
else
#endif
#ifdef DEBUG
enddo
call flush(iout)
#endif
- do i=nnt,nres-1
- do k=1,3
- gradbufc(k,i)=0.0d0
+ do i=1,nres
+ do j=1,3
+ gradbufc_sum(j,i)=gradbufc(j,i)
+ gradbufc(j,i)=0.0d0
enddo
- do j=i+1,nres
- do k=1,3
- gradbufc(k,i)=gradbufc(k,i)+gradbufc(k,j)
- enddo
+ enddo
+ do j=1,3
+ gradbufc(j,nres-1)=gradbufc_sum(j,nres)
+ enddo
+ do i=nres-2,nnt,-1
+ do j=1,3
+ gradbufc(j,i)=gradbufc(j,i+1)+gradbufc_sum(j,i+1)
enddo
enddo
+c do i=nnt,nres-1
+c do k=1,3
+c gradbufc(k,i)=0.0d0
+c enddo
+c do j=i+1,nres
+c do k=1,3
+c gradbufc(k,i)=gradbufc(k,i)+gradbufc(k,j)
+c enddo
+c enddo
+c enddo
+#ifdef DEBUG
+ write (iout,*) "gradbufc after summing"
+ do i=1,nres
+ write (iout,'(i3,3f10.5)') i,(gradbufc(j,i),j=1,3)
+ enddo
+ call flush(iout)
+#endif
#ifdef MPI
endif
#endif
& +wturn3*gel_loc_turn3(i)
& +wturn6*gel_loc_turn6(i)
& +wel_loc*gel_loc_loc(i)
- & +wsccor*gsccor_loc(i)
enddo
#ifdef DEBUG
write (iout,*) "gloc after adding corr"
do i=1,4*nres
glocbuf(i)=gloc(i,icg)
enddo
+#ifdef DEBUG
+ write (iout,*) "gloc_sc before reduce"
+ do i=1,nres
+ do j=1,3
+ write (iout,*) i,j,gloc_sc(j,i,icg)
+ enddo
+ enddo
+#endif
+ do i=1,nres
+ do j=1,3
+ gloc_scbuf(j,i)=gloc_sc(j,i,icg)
+ enddo
+ enddo
time00=MPI_Wtime()
call MPI_Barrier(FG_COMM,IERR)
time_barrier_g=time_barrier_g+MPI_Wtime()-time00
& MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
call MPI_Reduce(glocbuf(1),gloc(1,icg),4*nres,
& MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
+ call MPI_Reduce(gloc_scbuf(1,1),gloc_sc(1,1,icg),3*nres,
+ & MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
time_reduce=time_reduce+MPI_Wtime()-time00
#ifdef DEBUG
+ write (iout,*) "gloc_sc after reduce"
+ do i=1,nres
+ do j=1,3
+ write (iout,*) i,j,gloc_sc(j,i,icg)
+ enddo
+ enddo
+#endif
+#ifdef DEBUG
write (iout,*) "gloc after reduce"
do i=1,4*nres
write (iout,*) i,gloc(i,icg)
enddo
#endif
#ifdef TIMING
+#ifdef MPI
time_sumgradient=time_sumgradient+MPI_Wtime()-time01
+#else
+ time_sumgradient=time_sumgradient+tcpu()-time01
+#endif
#endif
return
end
& edihcnstr,ebr*nss,
& Uconst,etot
10 format (/'Virtual-chain energies:'//
- & 'EVDW= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-SC)'/
- & 'EVDW2= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-p)'/
- & 'EES= ',1pE16.6,' WEIGHT=',1pD16.6,' (p-p)'/
- & 'EVDWPP=',1pE16.6,' WEIGHT=',1pD16.6,' (p-p VDW)'/
- & 'ESTR= ',1pE16.6,' WEIGHT=',1pD16.6,' (stretching)'/
- & 'EBE= ',1pE16.6,' WEIGHT=',1pD16.6,' (bending)'/
- & 'ESC= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC local)'/
- & 'ETORS= ',1pE16.6,' WEIGHT=',1pD16.6,' (torsional)'/
- & 'ETORSD=',1pE16.6,' WEIGHT=',1pD16.6,' (double torsional)'/
- & 'EHBP= ',1pE16.6,' WEIGHT=',1pD16.6,
+ & 'EVDW= ',1pE16.6,' WEIGHT=',1pE16.6,' (SC-SC)'/
+ & 'EVDW2= ',1pE16.6,' WEIGHT=',1pE16.6,' (SC-p)'/
+ & 'EES= ',1pE16.6,' WEIGHT=',1pE16.6,' (p-p)'/
+ & 'EVDWPP=',1pE16.6,' WEIGHT=',1pE16.6,' (p-p VDW)'/
+ & 'ESTR= ',1pE16.6,' WEIGHT=',1pE16.6,' (stretching)'/
+ & 'EBE= ',1pE16.6,' WEIGHT=',1pE16.6,' (bending)'/
+ & 'ESC= ',1pE16.6,' WEIGHT=',1pE16.6,' (SC local)'/
+ & 'ETORS= ',1pE16.6,' WEIGHT=',1pE16.6,' (torsional)'/
+ & 'ETORSD=',1pE16.6,' WEIGHT=',1pE16.6,' (double torsional)'/
+ & 'EHPB= ',1pE16.6,' WEIGHT=',1pE16.6,
& ' (SS bridges & dist. cnstr.)'/
- & 'ECORR4=',1pE16.6,' WEIGHT=',1pD16.6,' (multi-body)'/
- & 'ECORR5=',1pE16.6,' WEIGHT=',1pD16.6,' (multi-body)'/
- & 'ECORR6=',1pE16.6,' WEIGHT=',1pD16.6,' (multi-body)'/
- & 'EELLO= ',1pE16.6,' WEIGHT=',1pD16.6,' (electrostatic-local)'/
- & 'ETURN3=',1pE16.6,' WEIGHT=',1pD16.6,' (turns, 3rd order)'/
- & 'ETURN4=',1pE16.6,' WEIGHT=',1pD16.6,' (turns, 4th order)'/
- & 'ETURN6=',1pE16.6,' WEIGHT=',1pD16.6,' (turns, 6th order)'/
- & 'ESCCOR=',1pE16.6,' WEIGHT=',1pD16.6,' (backbone-rotamer corr)'/
+ & 'ECORR4=',1pE16.6,' WEIGHT=',1pE16.6,' (multi-body)'/
+ & 'ECORR5=',1pE16.6,' WEIGHT=',1pE16.6,' (multi-body)'/
+ & 'ECORR6=',1pE16.6,' WEIGHT=',1pE16.6,' (multi-body)'/
+ & 'EELLO= ',1pE16.6,' WEIGHT=',1pE16.6,' (electrostatic-local)'/
+ & 'ETURN3=',1pE16.6,' WEIGHT=',1pE16.6,' (turns, 3rd order)'/
+ & 'ETURN4=',1pE16.6,' WEIGHT=',1pE16.6,' (turns, 4th order)'/
+ & 'ETURN6=',1pE16.6,' WEIGHT=',1pE16.6,' (turns, 6th order)'/
+ & 'ESCCOR=',1pE16.6,' WEIGHT=',1pE16.6,' (backbone-rotamer corr)'/
& 'EDIHC= ',1pE16.6,' (dihedral angle constraints)'/
& 'ESS= ',1pE16.6,' (disulfide-bridge intrinsic energy)'/
& 'UCONST= ',1pE16.6,' (Constraint energy)'/
else
C Calculate the distance between the two points and its difference from the
C target distance.
- dd=dist(ii,jj)
- rdis=dd-dhpb(i)
+ dd=dist(ii,jj)
+ rdis=dd-dhpb(i)
C Get the force constant corresponding to this distance.
- waga=forcon(i)
+ waga=forcon(i)
C Calculate the contribution to energy.
- ehpb=ehpb+waga*rdis*rdis
+ ehpb=ehpb+waga*rdis*rdis
C
C Evaluate gradient.
C
- fac=waga*rdis/dd
+ fac=waga*rdis/dd
cd print *,'i=',i,' ii=',ii,' jj=',jj,' dhpb=',dhpb(i),' dd=',dd,
cd & ' waga=',waga,' fac=',fac
- do j=1,3
- ggg(j)=fac*(c(j,jj)-c(j,ii))
- enddo
+ do j=1,3
+ ggg(j)=fac*(c(j,jj)-c(j,ii))
+ enddo
cd print '(i3,3(1pe14.5))',i,(ggg(j),j=1,3)
C If this is a SC-SC distance, we need to calculate the contributions to the
C Cartesian gradient in the SC vectors (ghpbx).
- if (iii.lt.ii) then
+ if (iii.lt.ii) then
do j=1,3
ghpbx(j,iii)=ghpbx(j,iii)-ggg(j)
ghpbx(j,jjj)=ghpbx(j,jjj)+ggg(j)
enddo
- endif
+ endif
cgrad do j=iii,jjj-1
cgrad do k=1,3
cgrad ghpbc(k,j)=ghpbc(k,j)+ggg(k)
cgrad enddo
cgrad enddo
- do k=1,3
- ghpbc(k,jjj)=ghpbc(k,jjj)+ggg(k)
- ghpbc(k,iii)=ghpbc(k,iii)-ggg(k)
- enddo
+ do k=1,3
+ ghpbc(k,jjj)=ghpbc(k,jjj)+ggg(k)
+ ghpbc(k,iii)=ghpbc(k,iii)-ggg(k)
+ enddo
endif
enddo
ehpb=0.5D0*ehpb
do i=ibondp_start,ibondp_end
diff = vbld(i)-vbldp0
c write (iout,*) i,vbld(i),vbldp0,diff,AKP*diff*diff
+ if (energy_dec) write (iout,'(a7,i5,4f7.3)')
+ & "estr bb",i,vbld(i),vbldp0,diff,AKP*diff*diff
estr=estr+diff*diff
do j=1,3
gradb(j,i-1)=AKP*diff*dc(j,i-1)/vbld(i)
diff=vbld(i+nres)-vbldsc0(1,iti)
c write (iout,*) i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
c & AKSC(1,iti),AKSC(1,iti)*diff*diff
+ if (energy_dec) then
+ write (iout,*)
+ & "estr sc",i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
+ & AKSC(1,iti),AKSC(1,iti)*diff*diff
+ call flush(iout)
+ endif
estr=estr+0.5d0*AKSC(1,iti)*diff*diff
do j=1,3
gradbx(j,i)=AKSC(1,iti)*diff*dc(j,i+nres)/vbld(i+nres)
logical lprn /.false./, lprn1 /.false./
etheta=0.0D0
do i=ithet_start,ithet_end
+ if ((itype(i-1).eq.ntyp1).or.(itype(i-2).eq.ntyp1).or.
+ &(itype(i).eq.ntyp1)) cycle
dethetai=0.0d0
dephii=0.0d0
dephii1=0.0d0
coskt(k)=dcos(k*theti2)
sinkt(k)=dsin(k*theti2)
enddo
- if (i.gt.3) then
+C if (i.gt.3) then
+ if (i.gt.3 .and. itype(max0(i-3,1)).ne.ntyp1) then
#ifdef OSF
phii=phi(i)
if (phii.ne.phii) phii=150.0
enddo
else
phii=0.0d0
- ityp1=nthetyp+1
+ ityp1=ithetyp(itype(i-2))
do k=1,nsingle
cosph1(k)=0.0d0
sinph1(k)=0.0d0
enddo
endif
- if (i.lt.nres) then
+ if ((i.lt.nres).and. itype(i+1).ne.ntyp1) then
#ifdef OSF
phii1=phi(i+1)
if (phii1.ne.phii1) phii1=150.0
enddo
else
phii1=0.0d0
- ityp3=nthetyp+1
+ ityp3=ithetyp(itype(i))
do k=1,nsingle
cosph2(k)=0.0d0
sinph2(k)=0.0d0
& i,theta(i)*rad2deg,phii*rad2deg,
& phii1*rad2deg,ethetai
etheta=etheta+ethetai
+ if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
+ & 'ebend',i,ethetai
if (i.gt.3) gloc(i-3,icg)=gloc(i-3,icg)+wang*dephii
if (i.lt.nres) gloc(i-2,icg)=gloc(i-2,icg)+wang*dephii1
gloc(nphi+i-2,icg)=wang*dethetai
include 'COMMON.IOUNITS'
include 'COMMON.FFIELD'
include 'COMMON.TORCNSTR'
+ include 'COMMON.CONTROL'
logical lprn
C Set lprn=.true. for debugging
lprn=.false.
c lprn=.true.
etors_d=0.0D0
do i=iphid_start,iphid_end
+ etors_d_ii=0.0D0
itori=itortyp(itype(i-2))
itori1=itortyp(itype(i-1))
itori2=itortyp(itype(i))
sinphi2=dsin(j*phii1)
etors_d=etors_d+v1cij*cosphi1+v1sij*sinphi1+
& v2cij*cosphi2+v2sij*sinphi2
+ if (energy_dec) etors_d_ii=etors_d_ii+
+ & v1cij*cosphi1+v1sij*sinphi1+v2cij*cosphi2+v2sij*sinphi2
gloci1=gloci1+j*(v1sij*cosphi1-v1cij*sinphi1)
gloci2=gloci2+j*(v2sij*cosphi2-v2cij*sinphi2)
enddo
sinphi1m2=dsin(l*phii-(k-l)*phii1)
etors_d=etors_d+v1cdij*cosphi1p2+v2cdij*cosphi1m2+
& v1sdij*sinphi1p2+v2sdij*sinphi1m2
+ if (energy_dec) etors_d_ii=etors_d_ii+
+ & v1cdij*cosphi1p2+v2cdij*cosphi1m2+
+ & v1sdij*sinphi1p2+v2sdij*sinphi1m2
gloci1=gloci1+l*(v1sdij*cosphi1p2+v2sdij*cosphi1m2
& -v1cdij*sinphi1p2-v2cdij*sinphi1m2)
gloci2=gloci2+(k-l)*(v1sdij*cosphi1p2-v2sdij*cosphi1m2
& -v1cdij*sinphi1p2+v2cdij*sinphi1m2)
enddo
enddo
+ if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
+ & 'etor_d',i,etors_d_ii
gloc(i-3,icg)=gloc(i-3,icg)+wtor_d*gloci1
gloc(i-2,icg)=gloc(i-2,icg)+wtor_d*gloci2
enddo
esccor=0.0D0
do i=itau_start,itau_end
esccor_ii=0.0D0
+ if ((itype(i-2).eq.ntyp1).or.(itype(i-1).eq.ntyp1)) cycle
isccori=isccortyp(itype(i-2))
isccori1=isccortyp(itype(i-1))
c write (iout,*) "EBACK_SC_COR",i,nterm_sccor(isccori,isccori1)
phii=phi(i)
+
+cccc Added 9 May 2012
+cc Tauangle is torsional engle depending on the value of first digit
+c(see comment below)
+cc Omicron is flat angle depending on the value of first digit
+c(see comment below)
+C print *,i,tauangle(1,i)
+
do intertyp=1,3 !intertyp
cc Added 09 May 2012 (Adasko)
cc Intertyp means interaction type of backbone mainchain correlation:
c 3 = SC...Ca...Ca...SCi
gloci=0.0D0
if (((intertyp.eq.3).and.((itype(i-2).eq.10).or.
- & (itype(i-1).eq.10).or.(itype(i-2).eq.ntyp1).or.
- & (itype(i-1).eq.ntyp1)))
+ & (itype(i-1).eq.10).or.(itype(i-2).eq.21).or.
+ & (itype(i-1).eq.21)))
& .or. ((intertyp.eq.1).and.((itype(i-2).eq.10)
- & .or.(itype(i-2).eq.ntyp1).or.(itype(i-1).eq.ntyp1)
- & .or.(itype(i).eq.ntyp1)))
+ & .or.(itype(i-2).eq.21)))
& .or.((intertyp.eq.2).and.((itype(i-1).eq.10).or.
- & (itype(i-1).eq.ntyp1).or.(itype(i-2).eq.ntyp1).or.
- & (itype(i-3).eq.ntyp1)))) cycle
- if ((intertyp.eq.2).and.(i.eq.4).and.(itype(1).eq.ntyp1)) cycle
- if ((intertyp.eq.1).and.(i.eq.nres).and.(itype(nres).eq.ntyp1))
+ & (itype(i-1).eq.21)))) cycle
+ if ((intertyp.eq.2).and.(i.eq.4).and.(itype(1).eq.21)) cycle
+ if ((intertyp.eq.1).and.(i.eq.nres).and.(itype(nres).eq.21))
& cycle
- do j=1,nterm_sccor(isccori,isccori1)
+ do j=1,nterm_sccor(isccori,isccori1)
v1ij=v1sccor(j,intertyp,isccori,isccori1)
v2ij=v2sccor(j,intertyp,isccori,isccori1)
cosphi=dcos(j*tauangle(intertyp,i))
enddo
c write (iout,*) "EBACK_SC_COR",i,esccor,intertyp
gloc_sc(intertyp,i-3,icg)=gloc_sc(intertyp,i-3,icg)+wsccor*gloci
+c write (iout,*) "WTF",intertyp,i,itype(i),v1ij*cosphi+v2ij*sinphi
+c &gloc_sc(intertyp,i-3,icg)
if (lprn)
& write (iout,'(2(a3,2x,i3,2x),2i3,6f8.3/26x,6f8.3/)')
- & restyp(itype(i-2)),i-2,restyp(itype(i-1)),i-1,isccori,isccori1,
- & (v1sccor(j,intertyp,isccori,isccori1),j=1,6)
- & ,(v2sccor(j,intertyp,isccori,isccori1),j=1,6)
-C gsccor_loc(i-3)=gsccor_loc(i-3)+gloci
+ & restyp(itype(i-2)),i-2,restyp(itype(i-1)),i-1,itori,itori1,
+ & (v1sccor(j,intertyp,itori,itori1),j=1,6)
+ & ,(v2sccor(j,intertyp,itori,itori1),j=1,6)
+ gsccor_loc(i-3)=gsccor_loc(i-3)+gloci
enddo !intertyp
enddo
+c do i=1,nres
+c write (iout,*) "W@T@F", gloc_sc(1,i,icg),gloc_sc(2,i,icg),
+c & gloc_sc(3,i,icg)
+c enddo
return
end
c----------------------------------------------------------------------------
C o o C
C \ /l\ /j\ / C
C \ / \ / \ / C
-C o| o | | o |o C
+C o| o | | o |o C
C \ j|/k\| \ |/k\|l C
C \ / \ \ / \ C
C o o C
-C i i C
-C C
+C i i C
+C C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
cd write (2,*) 'eello6_graph2: i,',i,' j',j,' k',k,' l',l
C AL 7/4/01 s1 would occur in the sixth-order moment,
double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2)
logical swap
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C C
+C C
C Parallel Antiparallel C
C C
C o o C
-C /l\ / \ /j\ C
+C /l\ / \ /j\ C
C / \ / \ / \ C
C /| o |o o| o |\ C
C j|/k\| / |/k\|l / C
& auxvec1(2),auxmat1(2,2)
logical swap
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C C
+C C
C Parallel Antiparallel C
C C
-C o o C
+C o o C
C /l\ / \ /j\ C
C / \ / \ / \ C
-C /| o |o o| o |\ C
+C /| o |o o| o |\ C
C \ j|/k\| \ |/k\|l C
-C \ / \ \ / \ C
+C \ / \ \ / \ C
C o \ o \ C
C i i C
-C C
+C C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
C 4/7/01 AL Component s1 was removed, because it pertains to the respective
etot=v(10)
iretcode=iv(1)
cd print *,'Exit SUMSL; return code:',iretcode,' energy:',etot
- write (iout,'(/a,i4,a,f15.5/)') 'SUMSL return code:',iv(1),
- & " energy",etot
+cd write (iout,'(/a,i4,a,f15.5/)') 'SUMSL return code:',iv(1),
+cd & " energy",etot
call var_to_geom(nvar,x)
c call chainbuild
c call etotal(energia(0))
dccart=(index(controlcard,'CART').gt.0)
overlapsc=(index(controlcard,'OVERLAP').gt.0)
overlapsc=.not.overlapsc
- searchsc=(index(controlcard,'SEARCHSC').gt.0)
+ searchsc=(index(controlcard,'NOSEARCHSC').gt.0)
+ searchsc=.not.searchsc
sideadd=(index(controlcard,'SIDEADD').gt.0)
energy_dec=(index(controlcard,'ENERGY_DEC').gt.0)
outpdb=(index(controlcard,'PDBOUT').gt.0)
# Set comipiler flags for different sourcefiles
#================================================
if (Fortran_COMPILER_NAME STREQUAL "ifort")
- set(FFLAGS0 "-g -CB -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+ set(FFLAGS0 "-mcmodel=medium -shared-intel -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
- set(FFLAGS0 "-std=legacy -g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+ set(FFLAGS0 "-std=legacy -mcmodel=medium -g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(FFLAGS0 "-mcmodel=medium -Mlarge_arrays -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
else ()
- set(FFLAGS0 "-g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+ set(FFLAGS0 "-g -mcmodel=medium -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
# Add old gfortran flags
set(CPPFLAGS "${CPPFLAGS} -DG77")
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(CPPFLAGS "${CPPFLAGS} -DPGI")
+ FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+ list(APPEND UNRES_WHAM_M_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
+ set(CMAKE_EXE_LINKER_FLAGS "-Bdynamic")
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
#=========================================
# TESTS
#=========================================
-#-- Copy all the data files from the test directory into the source directory
-#SET(UNRES_TEST_FILES
-# ala10.inp
-# )
-
-#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
-# SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
-# MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
-# ADD_CUSTOM_COMMAND (
-# TARGET ${UNRES_BIN}
-# POST_BUILD
-# COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
-# )
-#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
-
-#=========================================
-# Generate data test files
-#=========================================
-# test_single_ala.sh
-#=========================================
-
-#FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh
-#"#!/bin/sh
-#export POT=GB
-#export PREFIX=ala10
+# 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(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/wham_mpi_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export PREFIX=$1
#-----------------------------------------------------------------------------
-#UNRES_BIN=./${UNRES_BIN}
+WHAM_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_WHAM_M_BIN}
#-----------------------------------------------------------------------------
-#DD=${CMAKE_SOURCE_DIR}/PARAM
-#export BONDPAR=$DD/bond.parm
-#export THETPAR=$DD/thetaml.5parm
-#export ROTPAR=$DD/scgauss.parm
-#export TORPAR=$DD/torsion_631Gdp.parm
-#export TORDPAR=$DD/torsion_double_631Gdp.parm
-#export ELEPAR=$DD/electr_631Gdp.parm
-#export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
-#export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
-#export SCPPAR=$DD/scp.parm
-#export SCCORPAR=$DD/rotcorr_AM1.parm
-#export PATTERN=$DD/patterns.cart
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond_AM1.parm
+export THETPAR=$DD/theta_abinitio.parm
+export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/scinter_$POT.parm
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export THETPARPDB=$DD/thetaml.5parm
+export ROTPARPDB=$DD/scgauss.parm
+export PATTERN=$DD/patterns.cart
+export CONTFUNC=GB
+export SIDEP=$DD/contact.3.parm
+export SCRATCHDIR=.
#-----------------------------------------------------------------------------
-#$UNRES_BIN
-#")
+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(COPY ${CMAKE_SOURCE_DIR}/ctest/wham_check.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_wham.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd_MD000.cx
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
-#=========================================
-# ala10.inp
-#=========================================
-#file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
-#"ala10 unblocked
-#SEED=-1111333 MD ONE_LETTER rescale_mode=2 PDBOUT
-#nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0 &
-#reset_moment=1000 reset_vel=1000 MDPDB
-#WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873 &
-#WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000 &
-#WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000 &
-#WVDWPP=0.11371 WHPB=1.00000 &
-#CUTOFF=7.00000 WCORR4=0.00000
-#12
-#XAAAAAAAAAAX
-# 0
-# 0
-# 90.0000 90.0000 90.0000 90.000 90.000 90.000 90.000 90.000
-# 90.0000 90.0000
-# 180.0000 180.0000 180.0000 180.000 180.000 180.000 180.000 180.000
-# 180.0000
-# 110.0000 110.0000 110.0000 100.000 110.000 100.000 110.000 110.000
-# 110.0000 110.0000
-# -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
-# -120.0000 -120.0000
-#")
-
-
-# Add tests
-
-#if(NOT UNRES_WITH_MPI)
-
-# add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
-
-#endif(NOT UNRES_WITH_MPI)
+if(UNRES_MD_FF STREQUAL "E0LL2Y")
+ add_test(NAME WHAM_M_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/wham_mpi_E0LL2Y.sh 1L2Y_wham 2 )
+endif(UNRES_MD_FF STREQUAL "E0LL2Y")
C Max. number of AA residues
integer maxres
c parameter (maxres=250)
- parameter (maxres=100)
+ parameter (maxres=1150)
C Appr. max. number of interaction sites
integer maxres2
parameter (maxres2=2*maxres)
integer MaxSlice
parameter (Max_Parm=1)
parameter (MaxQ=1,MaxQ1=MaxQ+2)
- parameter(MaxR=1,MaxT_h=32)
- parameter(MaxSlice=40)
+ parameter(MaxR=1,MaxT_h=36)
+ parameter(MaxSlice=20)
integer MaxN
parameter (MaxN=100)
integer MaxPrintConf
parameter (max_x=200,max_y=200,max_minim=1000)
c Maximum number of processors
integer MaxProcs
- parameter (MaxProcs = 2048)
+ parameter (MaxProcs = 128)
c Maximum number of optimizable parameters
integer max_paropt
parameter (max_paropt=500)
double precision fT(6),quot,quotl,kfacl,kfac /2.4d0/,T0 /3.0d2/
double precision tt
integer snk_p(MaxR,MaxT_h,Max_parm)
+ integer scount_(0:MaxProcs)
logical lerr
character*64 bprotfile_temp
call opentmp(islice,ientout,bprotfile_temp)
121 continue
enddo
#ifdef MPI
- scount(me)=iii
+ scount_(me)=iii
write (iout,*) "Me",me," scount",scount(me)
call flush(iout)
c Master gathers updated numbers of conformations written by all procs.
- call MPI_AllGather( scount(me), 1, MPI_INTEGER, scount(0), 1,
+ call MPI_AllGather( scount_(me), 1, MPI_INTEGER, scount(0), 1,
& MPI_INTEGER, WHAM_COMM, IERROR)
indstart(0)=1
indend(0)=scount(0)
etheta=0.0D0
c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
do i=ithet_start,ithet_end
- if (itype(i-1).eq.21) cycle
+ if ((itype(i-1).eq.ntyp1).or.(itype(i-2).eq.ntyp1).or.
+ &(itype(i).eq.ntyp1)) cycle
dethetai=0.0d0
dephii=0.0d0
dephii1=0.0d0
coskt(k)=dcos(k*theti2)
sinkt(k)=dsin(k*theti2)
enddo
- if (i.gt.3 .and. itype(i-2).ne.21) then
+ if (i.gt.3 .and. itype(max0(i-3,1)).ne.ntyp1) then
#ifdef OSF
phii=phi(i)
if (phii.ne.phii) phii=150.0
enddo
else
phii=0.0d0
- ityp1=nthetyp+1
+ ityp1=ithetyp(itype(i-2))
do k=1,nsingle
cosph1(k)=0.0d0
sinph1(k)=0.0d0
enddo
endif
- if (i.lt.nres .and. itype(i).ne.21) then
+ if (i.lt.nres .and. itype(i+1).ne.ntyp1) then
#ifdef OSF
phii1=phi(i+1)
if (phii1.ne.phii1) phii1=150.0
enddo
else
phii1=0.0d0
- ityp3=nthetyp+1
+ ityp3=ithetyp(itype(i))
do k=1,nsingle
cosph2(k)=0.0d0
sinph2(k)=0.0d0
character*5 ctemper
integer ilen
external ilen
- real*4 Fdimless(MaxStr)
+ real*4 Fdimless(MaxStr),Fdimless_(MaxStr)
double precision enepot(MaxStr)
integer iperm(MaxStr)
integer islice
& +wbond*estr
#endif
#ifdef MPI
- Fdimless(i)=
+ Fdimless_(i)=
& beta_h(ib,iparm)*etot-entfac(i)
potE(i,iparm)=etot
#ifdef DEBUG
#endif
enddo ! i
#ifdef MPI
- call MPI_Gatherv(Fdimless(1),scount(me),
+ call MPI_Gatherv(Fdimless_(1),scount(me),
& MPI_REAL,Fdimless(1),
& scount(0),idispl(0),MPI_REAL,Master,
& WHAM_COMM, IERROR)
character*2 licz2
character*3 licz3
character*128 nazwa
+ character*30 frm_write
integer ilen
external ilen
write (iout,*)
write (34,'(f7.1,2f15.5,$)') startGridT+i*delta_T,
& sumW(i,iparm),sumE(i,iparm)
- write (34,'(f10.5,$)') (sumQ(j,i,iparm),j=1,nQ+2)
- write (34,'(e15.5,$)') sumEsq(i,iparm)-sumEbis(i,iparm),
+ write(frm_write,'( "(",i3,"e15.5,$)" )' ) nQ+2
+ write (34,frm_write) (sumQ(j,i,iparm),j=1,nQ+2)
+ write(frm_write,'( "(",i3,"e15.5,$)" )' ) (nQ+2)*2+1
+ write (34,frm_write) sumEsq(i,iparm)-sumEbis(i,iparm),
& (sumQsq(j,i,iparm),j=1,nQ+2),(sumEQ(j,i,iparm),j=1,nQ+2)
write (34,*)
call flush(34)
# Set comipiler flags for different sourcefiles
#================================================
if (Fortran_COMPILER_NAME STREQUAL "ifort")
- set(FFLAGS0 "-mcmodel=medium -g -CB -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+ set(FFLAGS0 "-mcmodel=medium -shared-intel -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
- set(FFLAGS0 "-std=legacy -g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+ set(FFLAGS0 "-std=legacy -mcmodel=medium -g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(FFLAGS0 "-mcmodel=medium -Mlarge_arrays -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
else ()
- set(FFLAGS0 "-g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
+ set(FFLAGS0 "-g -mcmodel=medium -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" )
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
# Add old gfortran flags
set(CPPFLAGS "${CPPFLAGS} -DG77")
+elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
+ set(CPPFLAGS "${CPPFLAGS} -DPGI")
+ FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+ list(APPEND UNRES_WHAM_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
+ set(CMAKE_EXE_LINKER_FLAGS "-Bdynamic")
endif (Fortran_COMPILER_NAME STREQUAL "ifort")
#=========================================
# TESTS
#=========================================
-#-- Copy all the data files from the test directory into the source directory
-#SET(UNRES_TEST_FILES
-# ala10.inp
-# )
-
-#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
-# SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
-# MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
-# ADD_CUSTOM_COMMAND (
-# TARGET ${UNRES_BIN}
-# POST_BUILD
-# COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
-# )
-#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
-
-#=========================================
-# Generate data test files
-#=========================================
-# test_single_ala.sh
-#=========================================
-
-#FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh
-#"#!/bin/sh
-#export POT=GB
-#export PREFIX=ala10
+# 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(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/wham_mpi_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export PREFIX=$1
#-----------------------------------------------------------------------------
-#UNRES_BIN=./${UNRES_BIN}
+WHAM_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_WHAM_BIN}
#-----------------------------------------------------------------------------
-#DD=${CMAKE_SOURCE_DIR}/PARAM
-#export BONDPAR=$DD/bond.parm
-#export THETPAR=$DD/thetaml.5parm
-#export ROTPAR=$DD/scgauss.parm
-#export TORPAR=$DD/torsion_631Gdp.parm
-#export TORDPAR=$DD/torsion_double_631Gdp.parm
-#export ELEPAR=$DD/electr_631Gdp.parm
-#export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
-#export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
-#export SCPPAR=$DD/scp.parm
-#export SCCORPAR=$DD/rotcorr_AM1.parm
-#export PATTERN=$DD/patterns.cart
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond_AM1.parm
+export THETPAR=$DD/theta_abinitio.parm
+export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/scinter_$POT.parm
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/sccor_am1_pawel.dat
+export THETPARPDB=$DD/thetaml.5parm
+export ROTPARPDB=$DD/scgauss.parm
+export PATTERN=$DD/patterns.cart
+export CONTFUNC=GB
+export SIDEP=$DD/contact.3.parm
+export SCRATCHDIR=.
#-----------------------------------------------------------------------------
-#$UNRES_BIN
-#")
+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(COPY ${CMAKE_SOURCE_DIR}/ctest/wham_check.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_wham.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd_MD000.cx
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
-#=========================================
-# ala10.inp
-#=========================================
-#file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
-#"ala10 unblocked
-#SEED=-1111333 MD ONE_LETTER rescale_mode=2 PDBOUT
-#nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0 &
-#reset_moment=1000 reset_vel=1000 MDPDB
-#WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873 &
-#WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000 &
-#WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000 &
-#WVDWPP=0.11371 WHPB=1.00000 &
-#CUTOFF=7.00000 WCORR4=0.00000
-#12
-#XAAAAAAAAAAX
-# 0
-# 0
-# 90.0000 90.0000 90.0000 90.000 90.000 90.000 90.000 90.000
-# 90.0000 90.0000
-# 180.0000 180.0000 180.0000 180.000 180.000 180.000 180.000 180.000
-# 180.0000
-# 110.0000 110.0000 110.0000 100.000 110.000 100.000 110.000 110.000
-# 110.0000 110.0000
-# -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
-# -120.0000 -120.0000
-#")
-
-
-# Add tests
-
-#if(NOT UNRES_WITH_MPI)
-
-# add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
-
-#endif(NOT UNRES_WITH_MPI)
+if(UNRES_MD_FF STREQUAL "E0LL2Y")
+ add_test(NAME WHAM_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/wham_mpi_E0LL2Y.sh 1L2Y_wham 2 )
+endif(UNRES_MD_FF STREQUAL "E0LL2Y")
& ithetyp_all(ntyp1,max_parm),ntheterm_all(max_parm),
& ntheterm2_all(max_parm),ntheterm3_all(max_parm),
& nsingle_all(max_parm),ndouble_all(max_parm),
- & nntheterm_all(max_parm),nterm_sccor_all(max_parm,ntyp,ntyp)
+ & nntheterm_all(max_parm),nterm_sccor_all(ntyp,ntyp,max_parm)
common /allparm/ ww_all,vbldp0_all,akp_all,vbldsc0_all,aksc_all,
& abond0_all,aa0thet_all,aathet_all,bbthet_all,ccthet_all,
& ddthet_all,eethet_all,ffthet_all,ggthet_all,
c parameter (max_cg_procs=maxprocs)
C Max. number of AA residues
integer maxres
- parameter (maxres=250)
+ parameter (maxres=800)
c parameter (maxres=400)
C Appr. max. number of interaction sites
integer maxres2
integer MaxSlice
parameter (Max_Parm=32)
parameter (MaxQ=4,MaxQ1=MaxQ+2)
- parameter(MaxR=1,MaxT_h=32)
- parameter(MaxSlice=40)
+ parameter(MaxR=10,MaxT_h=36)
+ parameter(MaxSlice=20)
integer MaxN
parameter (MaxN=100)
integer MaxPrintConf
double precision fT(6),quot,quotl,kfacl,kfac /2.4d0/,T0 /3.0d2/
double precision tt
integer snk_p(MaxR,MaxT_h,Max_parm)
+ integer scount_(0:MaxProcs)
logical lerr
- character*64 bprotfile_temp
+ character*128 bprotfile_temp
call opentmp(islice,ientout,bprotfile_temp)
iii=0
ii=0
121 continue
enddo
#ifdef MPI
- scount(me)=iii
+c scount(me)=iii
+ scount_(me)=iii
write (iout,*) "Me",me," scount",scount(me)
call flush(iout)
c Master gathers updated numbers of conformations written by all procs.
- call MPI_AllGather( scount(me), 1, MPI_INTEGER, scount(0), 1,
+ call MPI_AllGather( scount_(me), 1, MPI_INTEGER, scount(0), 1,
& MPI_INTEGER, WHAM_COMM, IERROR)
indstart(0)=1
indend(0)=scount(0)
include "COMMON.PROT"
character*64 nazwa
character*80 bxname,cxname
- character*64 bprotfile_temp
+ character*128 bprotfile_temp
character*3 liczba,licz
character*2 licz2
integer i,itj,ii,iii,j,k,l
etheta=0.0D0
c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
do i=ithet_start,ithet_end
+ if ((itype(i-1).eq.ntyp1).or.(itype(i-2).eq.ntyp1).or.
+ &(itype(i).eq.ntyp1)) cycle
dethetai=0.0d0
dephii=0.0d0
dephii1=0.0d0
coskt(k)=dcos(k*theti2)
sinkt(k)=dsin(k*theti2)
enddo
- if (i.gt.3) then
+ if (i.gt.3 .and. itype(max0(i-3,1)).ne.ntyp1) then
#ifdef OSF
phii=phi(i)
if (phii.ne.phii) phii=150.0
enddo
else
phii=0.0d0
- ityp1=nthetyp+1
+ ityp1=ithetyp(itype(i-2))
do k=1,nsingle
cosph1(k)=0.0d0
sinph1(k)=0.0d0
enddo
endif
- if (i.lt.nres) then
+ if (i.lt.nres .and. itype(i+1).ne.ntyp1) then
#ifdef OSF
phii1=phi(i+1)
if (phii1.ne.phii1) phii1=150.0
enddo
else
phii1=0.0d0
- ityp3=nthetyp+1
+ ityp3=ithetyp(itype(i))
do k=1,nsingle
cosph2(k)=0.0d0
sinph2(k)=0.0d0
esccor=0.0D0
do i=itau_start,itau_end
esccor_ii=0.0D0
+
+ if ((itype(i-2).eq.ntyp1).or.(itype(i-1).eq.ntyp1)) cycle
isccori=isccortyp(itype(i-2))
isccori1=isccortyp(itype(i-1))
phii=phi(i)
cosphi=dcos(j*tauangle(intertyp,i))
sinphi=dsin(j*tauangle(intertyp,i))
esccor=esccor+v1ij*cosphi+v2ij*sinphi
+#ifdef DEBUG
+ esccor_ii=esccor_ii+v1ij*cosphi+v2ij*sinphi
+#endif
gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
enddo
gloc_sc(intertyp,i-3,icg)=gloc_sc(intertyp,i-3,icg)+wsccor*gloci
integer nterm_sccor,isccortyp,nsccortyp,nlor_sccor
common /sccor/ v1sccor(maxterm_sccor,3,-ntyp:ntyp,-ntyp:ntyp),
& v2sccor(maxterm_sccor,3,-ntyp:ntyp,-ntyp:ntyp),
- & v0sccor(maxterm_sccor,-ntyp:ntyp),
+ & v0sccor(-ntyp:ntyp,-ntyp:ntyp),
& vlor1sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
& vlor2sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
& vlor3sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
+++ /dev/null
-C Store the geometric variables in the following COMMON block.
- integer ntheta,nphi,nside,nvar,Origin,nstore,ialph,ivar,
- & mask_theta,mask_phi,mask_side
- double precision theta,phi,alph,omeg,varsave,esave,varall,vbld,
- & thetaref,phiref,costtab,sinttab,cost2tab,sint2tab,
- & xxtab,yytab,zztab,xxref,yyref,zzref
- common /var/ theta(maxres),phi(maxres),alph(maxres),omeg(maxres),
- & omicron(2,maxres),tauangle(3,maxres),
- & vbld(2*maxres),thetaref(maxres),phiref(maxres),
- & costtab(maxres), sinttab(maxres), cost2tab(maxres),
- & sint2tab(maxres),xxtab(maxres),yytab(maxres),
- & zztab(maxres),xxref(maxres),yyref(maxres),zzref(maxres),
- & ialph(maxres,2),ivar(4*maxres2),ntheta,nphi,nside,nvar
-C Store the angles and variables corresponding to old conformations (for use
-C in MCM).
- common /oldgeo/ varsave(maxvar,maxsave),esave(maxsave),
- & Origin(maxsave),nstore
-C freeze some variables
- logical mask_r
- common /restr/ varall(maxvar),mask_r,mask_theta(maxres),
- & mask_phi(maxres),mask_side(maxres)
data wname /
& "WSC","WSCP","WELEC","WCORR","WCORR5","WCORR6","WEL_LOC",
& "WTURN3","WTURN4","WTURN6","WANG","WSCLOC","WTOR","WTORD",
- & "WHPB","WVDWPP","WSCP14","WBOND","WSCCOR","WDIHC","WSC"/
+ & "WSTRAIN","WVDWPP","WSCP14","WBOND","WSCCOR","WDIHC","WSC"/
data ww0 /1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,
& 1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,0.4d0,1.0d0,1.0d0,
& 0.0d0,0.0/
character*5 ctemper
integer ilen
external ilen
- real*4 Fdimless(MaxStr)
+ real*4 Fdimless(MaxStr),Fdimless_(MaxStr)
double precision enepot(MaxStr)
integer iperm(MaxStr)
integer islice
& +wbond*estr
#endif
#ifdef MPI
- Fdimless(i)=
+ Fdimless_(i)=
& beta_h(ib,iparm)*etot-entfac(i)
potE(i,iparm)=etot
#ifdef DEBUG
#endif
enddo ! i
#ifdef MPI
- call MPI_Gatherv(Fdimless(1),scount(me),
+ call MPI_Gatherv(Fdimless_(1),scount(me),
& MPI_REAL,Fdimless(1),
& scount(0),idispl(0),MPI_REAL,Master,
& WHAM_COMM, IERROR)
do i=1,nres
itype(i)=rescode(i,sequence(i),iscode)
enddo
+ if (itype(2).eq.10.and.itype(1).eq.ntyp1) then
+ write (iout,*)
+ & "Glycine is the first full residue, initial dummy deleted"
+ do i=1,nres
+ itype(i)=itype(i+1)
+ enddo
+ nres=nres-1
+ endif
+ if (itype(nres-1).eq.10.and.itype(nres).eq.ntyp1) then
+ write (iout,*)
+ & "Glycine is the last full residue, terminal dummy deleted"
+ nres=nres-1
+ endif
write (iout,*) "Numeric code:"
write (iout,'(20i4)') (itype(i),i=1,nres)
do i=1,nres-1
character*2 licz2
character*3 licz3
character*128 nazwa
+ character*30 frm_write
integer ilen
external ilen
write(licz2,'(bz,i2.2)') islice
do i=1,nR(ib,iparm)
fi(i,ib,iparm)=fi(i,ib,iparm)-avefi
enddo
- write (iout,'(8f10.5)') (fi(i,ib,iparm),i=1,nR(ib,iparm))
- write (iout,'(8f10.5)') (f(i,ib,iparm),i=1,nR(ib,iparm))
+ write (iout,'(6f15.5)') (fi(i,ib,iparm),i=1,nR(ib,iparm))
+ write (iout,'(6f15.5)') (f(i,ib,iparm),i=1,nR(ib,iparm))
enddo
enddo
do i=1,nParmSet
write (iout,*) "Parameter set",i
do j=1,nT_h(i)
- write (iout,*) j,PotEmin_all(j,i)
+ write (iout,*) j,1.0d0/(1.987d-3*beta_h(j,i)),
+ & PotEmin_all(j,i)
enddo
enddo
write (iout,*) "potEmin_min",potEmin_min
c write (iout,*) "ftbis",ftbis
betaT=1.0d0/(1.987D-3*betaT)
if (betaT.ge.beta_h(1,iparm)) then
- potEmin=potEmin_all(1,iparm)
-c write(iout,*) "first",temper,potEmin
- else if (betaT.lt.beta_h(nT_h(iparm),iparm)) then
- potEmin=potEmin_all(nT_h(iparm),iparm)
-c write (iout,*) "last",temper,potEmin
+ potEmin=potEmin_all(1,iparm)+
+ & (potEmin_all(1,iparm)-potEmin_all(2,iparm))/
+ & (1.0/beta_h(1,iparm)-1.0/beta_h(2,iparm))*
+ & (1.0/betaT-1.0/beta_h(1,iparm))
+#ifdef DEBUG
+ write(iout,*) "first",temper,potEmin
+#endif
+ else if (betaT.le.beta_h(nT_h(iparm),iparm)) then
+ potEmin=potEmin_all(nT_h(iparm),iparm)+
+ &(potEmin_all(nT_h(iparm),iparm)-potEmin_all(nT_h(iparm)-1,iparm))/
+ &(1.0/beta_h(nT_h(iparm),iparm)-1.0/beta_h(nT_h(iparm)-1,iparm))*
+ &(1.0/betaT-1.0/beta_h(nt_h(iparm),iparm))
+#ifdef DEBUG
+ write (iout,*) "last",temper,potEmin
+#endif
else
do l=1,nT_h(iparm)-1
if (betaT.le.beta_h(l,iparm) .and.
& betaT.gt.beta_h(l+1,iparm)) then
potEmin=potEmin_all(l,iparm)
-c write (iout,*) "l",l,
-c & betaT,1.0d0/(1.987D-3*beta_h(l,iparm)),
-c & 1.0d0/(1.987D-3*beta_h(l+1,iparm)),temper,potEmin
+#ifdef DEBUG
+ write (iout,*) "l",l,
+ & betaT,1.0d0/(1.987D-3*beta_h(l,iparm)),
+ & 1.0d0/(1.987D-3*beta_h(l+1,iparm)),temper,potEmin
+#endif
exit
endif
enddo
endif
-c write (iout,*) ib," PotEmin",potEmin
+#ifdef DEBUG
+ write (iout,*) "k",k," potEmin",potEmin
+#endif
#ifdef SPLITELE
etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+ft(1)*welec*ees
& +wvdwpp*evdw1
endif
enddo
endif
+
+c write (iout,*) "i",i," potEmin",potEmin
+
sumE(i,iparm)=sumE(i,iparm)/sumW(i,iparm)
sumEbis(i,iparm)=(startGridT+i*delta_T)*sumEbis(i,iparm)/
& sumW(i,iparm)
write (iout,*)
write (34,'(f7.1,2f15.5,$)') startGridT+i*delta_T,
& sumW(i,iparm),sumE(i,iparm)
- write (34,'(f10.5,$)') (sumQ(j,i,iparm),j=1,nQ+2)
- write (34,'(e15.5,$)') sumEsq(i,iparm)-sumEbis(i,iparm),
+ write(frm_write,'( "(",i3,"e15.5,$)" )' ) nQ+2
+ write (34,frm_write) (sumQ(j,i,iparm),j=1,nQ+2)
+ write(frm_write,'( "(",i3,"e15.5,$)" )' ) (nQ+2)*2+1
+ write (34,frm_write) sumEsq(i,iparm)-sumEbis(i,iparm),
& (sumQsq(j,i,iparm),j=1,nQ+2),(sumEQ(j,i,iparm),j=1,nQ+2)
write (34,*)
enddo
# TESTS
#=========================================
+ if (UNRES_SRUN)
+ set (SRUN "srun")
+ else()
+ set (SRUN "")
+ endif()
+
+
# Create files needed for tests
# Test xdrf2pdb
-add_test(NAME XDRF2PDB-one COMMAND xdrf2pdb one ala10one.seq ala10MD.cx )
-add_test(NAME XDRF2PDB-three COMMAND xdrf2pdb three ala10three.seq ala10MD.cx )
+add_test(NAME XDRF2PDB-one COMMAND ${SRUN} ${CMAKE_BINARY_DIR}/bin/xdrf2pdb one ala10one.seq ala10MD.cx )
+add_test(NAME XDRF2PDB-three COMMAND ${SRUN} ${CMAKE_BINARY_DIR}/bin/xdrf2pdb three ala10three.seq ala10MD.cx )
# Test xdrf2pdb-m
-add_test(NAME XDRF2PDB-M-one COMMAND xdrf2pdb-m one 1L2Yone.seq 1L2Y_MREMD_MD000.cx 32 30 )
-add_test(NAME XDRF2PDB-M-three COMMAND xdrf2pdb-m three 1L2Ythree.seq 1L2Y_MREMD_MD000.cx 32 30 )
+add_test(NAME XDRF2PDB-M-one COMMAND ${SRUN} ${CMAKE_BINARY_DIR}/bin/xdrf2pdb-m one 1L2Yone.seq 1L2Y_MREMD_MD000.cx 32 30 )
+add_test(NAME XDRF2PDB-M-three COMMAND ${SRUN} ${CMAKE_BINARY_DIR}/bin/xdrf2pdb-m three 1L2Ythree.seq 1L2Y_MREMD_MD000.cx 32 30 )
# Test xdrf2ang
-add_test(NAME XDRF2ANG-one COMMAND xdrf2ang one ala10one.seq ala10MD.cx )
-add_test(NAME XDRF2ANG-three COMMAND xdrf2ang three ala10three.seq ala10MD.cx )
+add_test(NAME XDRF2ANG-one COMMAND ${SRUN} ${CMAKE_BINARY_DIR}/bin/xdrf2ang one ala10one.seq ala10MD.cx )
+add_test(NAME XDRF2ANG-three COMMAND ${SRUN} ${CMAKE_BINARY_DIR}/bin/xdrf2ang three ala10three.seq ala10MD.cx )