From 1bbb46aa9f4b7d3af09839b0148bb6a74cb2f077 Mon Sep 17 00:00:00 2001 From: Adam Liwo Date: Mon, 11 Jun 2012 07:06:28 -0400 Subject: [PATCH] 6/11/2012 Update of the CSA version --- .gitignore | 3 + bin/xdrf2ang | Bin 0 -> 40927 bytes examples/unres/CSA/CASP3/ENERGY/dist_dfa.dat | 4 + examples/unres/CSA/CASP3/ENERGY/protA.out_LJ000 | 210 ++++ examples/unres/CSA/CASP3/ENERGY/prota_nmr.pdb | 723 +++++++++++++ examples/unres/CSA/CASP3/ENERGY/start.mat | 12 + examples/unres/CSA/CASP3/ENERGY/test.e54956 | 15 + examples/unres/CSA/CASP3/ENERGY/test.e54959 | 15 + examples/unres/CSA/CASP3/ENERGY/test.o54956 | 8 + examples/unres/CSA/CASP3/ENERGY/test.o54957 | 14 + examples/unres/CSA/CASP3/ENERGY/test.o54958 | 14 + examples/unres/CSA/CASP3/ENERGY/test.o54959 | 14 + examples/unres/CSA/CASP3/ENERGY/test.o54960 | 14 + examples/unres/CSA/CASP3/ENERGY/test.o54961 | 14 + examples/unres/CSA/CASP3/ENERGY/unres_casp3.csh | 9 +- examples/unres/MD/ff_gab/ala10-cx.inp | 21 + examples/unres/MD/ff_gab/ala10-cx.out_GB | 309 ++++++ examples/unres/MD/ff_gab/ala10-cx.rst | 50 + examples/unres/MD/ff_gab/ala10-cx_GB.stat | 101 ++ examples/unres/MD/ff_gab/ala10-cx_MD.ang | 110 ++ examples/unres/MD/ff_gab/ala10-cx_MD.cx | Bin 0 -> 2168 bytes examples/unres/MD/ff_gab/ala10.seq | 1 + source/unres/src_CSA/COMMON.CONTACTS | 8 +- source/unres/src_CSA/Makefile | 103 +- source/unres/src_CSA/Makefile_4P | 7 +- source/unres/src_CSA/Makefile_CASP3 | 100 ++ source/unres/src_MD/cinfo.f | 6 +- source/unres/src_MD/readrtns.F | 2 +- source/xdrfpdb/src/Makefile | 2 +- source/xdrfpdb/src/arcos.o | Bin 0 -> 1888 bytes source/xdrfpdb/src/intcor.o | Bin 0 -> 5448 bytes source/xdrfpdb/src/misc.o | Bin 0 -> 8784 bytes source/xdrfpdb/src/nazwy.o | Bin 0 -> 1188 bytes source/xdrfpdb/src/rescode.o | Bin 0 -> 2736 bytes source/xdrfpdb/src/xdrf | 1 - source/xdrfpdb/src/xdrf/Makefile | 27 + source/xdrfpdb/src/xdrf/Makefile_jubl | 31 + source/xdrfpdb/src/xdrf/Makefile_linux | 27 + source/xdrfpdb/src/xdrf/RS6K.m4 | 20 + source/xdrfpdb/src/xdrf/ftocstr.c | 35 + source/xdrfpdb/src/xdrf/ftocstr.o | Bin 0 -> 1456 bytes source/xdrfpdb/src/xdrf/libxdrf.a | Bin 0 -> 22106 bytes source/xdrfpdb/src/xdrf/libxdrf.m4 | 1238 +++++++++++++++++++++++ source/xdrfpdb/src/xdrf/libxdrf.o | Bin 0 -> 20104 bytes source/xdrfpdb/src/xdrf/types.h | 99 ++ source/xdrfpdb/src/xdrf/underscore.m4 | 19 + source/xdrfpdb/src/xdrf/xdr.c | 752 ++++++++++++++ source/xdrfpdb/src/xdrf/xdr.h | 379 +++++++ source/xdrfpdb/src/xdrf/xdr_array.c | 174 ++++ source/xdrfpdb/src/xdrf/xdr_float.c | 307 ++++++ source/xdrfpdb/src/xdrf/xdr_stdio.c | 196 ++++ source/xdrfpdb/src/xdrf/xdrf.h | 10 + source/xdrfpdb/src/xdrf2ang.f | 2 +- source/xdrfpdb/src/xdrf2ang.o | Bin 0 -> 15376 bytes 54 files changed, 5087 insertions(+), 119 deletions(-) create mode 100644 .gitignore create mode 100755 bin/xdrf2ang create mode 100644 examples/unres/CSA/CASP3/ENERGY/dist_dfa.dat create mode 100644 examples/unres/CSA/CASP3/ENERGY/file create mode 100644 examples/unres/CSA/CASP3/ENERGY/protA.intin create mode 100644 examples/unres/CSA/CASP3/ENERGY/protA.out_LJ000 create mode 100644 examples/unres/CSA/CASP3/ENERGY/protA_LJ000.int create mode 100644 examples/unres/CSA/CASP3/ENERGY/protA_LJ000.mol2 create mode 100644 examples/unres/CSA/CASP3/ENERGY/protA_LJ000.pdb create mode 100644 examples/unres/CSA/CASP3/ENERGY/protA_LJ000.stat create mode 100644 examples/unres/CSA/CASP3/ENERGY/prota_nmr.pdb create mode 100755 examples/unres/CSA/CASP3/ENERGY/start.mat create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.e54956 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.e54957 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.e54958 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.e54959 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.e54960 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.e54961 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.o54956 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.o54957 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.o54958 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.o54959 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.o54960 create mode 100644 examples/unres/CSA/CASP3/ENERGY/test.o54961 create mode 100644 examples/unres/MD/ff_gab/ala10-cx.inp create mode 100644 examples/unres/MD/ff_gab/ala10-cx.intin create mode 100644 examples/unres/MD/ff_gab/ala10-cx.out_GB create mode 100644 examples/unres/MD/ff_gab/ala10-cx.rst create mode 100644 examples/unres/MD/ff_gab/ala10-cx_GB.int create mode 100644 examples/unres/MD/ff_gab/ala10-cx_GB.mol2 create mode 100644 examples/unres/MD/ff_gab/ala10-cx_GB.pdb create mode 100644 examples/unres/MD/ff_gab/ala10-cx_GB.stat create mode 100644 examples/unres/MD/ff_gab/ala10-cx_MD.ang create mode 100644 examples/unres/MD/ff_gab/ala10-cx_MD.cx create mode 100644 examples/unres/MD/ff_gab/ala10.seq mode change 100644 => 120000 source/unres/src_CSA/Makefile create mode 100644 source/unres/src_CSA/Makefile_CASP3 create mode 100644 source/xdrfpdb/src/arcos.o create mode 100644 source/xdrfpdb/src/intcor.o create mode 100644 source/xdrfpdb/src/misc.o create mode 100644 source/xdrfpdb/src/nazwy.o create mode 100644 source/xdrfpdb/src/rescode.o delete mode 120000 source/xdrfpdb/src/xdrf create mode 100644 source/xdrfpdb/src/xdrf/Makefile create mode 100644 source/xdrfpdb/src/xdrf/Makefile_jubl create mode 100644 source/xdrfpdb/src/xdrf/Makefile_linux create mode 100644 source/xdrfpdb/src/xdrf/RS6K.m4 create mode 100644 source/xdrfpdb/src/xdrf/ftocstr.c create mode 100644 source/xdrfpdb/src/xdrf/ftocstr.o create mode 100644 source/xdrfpdb/src/xdrf/libxdrf.a create mode 100644 source/xdrfpdb/src/xdrf/libxdrf.m4 create mode 100644 source/xdrfpdb/src/xdrf/libxdrf.o create mode 100644 source/xdrfpdb/src/xdrf/types.h create mode 100644 source/xdrfpdb/src/xdrf/underscore.m4 create mode 100644 source/xdrfpdb/src/xdrf/xdr.c create mode 100644 source/xdrfpdb/src/xdrf/xdr.h create mode 100644 source/xdrfpdb/src/xdrf/xdr_array.c create mode 100644 source/xdrfpdb/src/xdrf/xdr_float.c create mode 100644 source/xdrfpdb/src/xdrf/xdr_stdio.c create mode 100644 source/xdrfpdb/src/xdrf/xdrf.h create mode 100644 source/xdrfpdb/src/xdrf2ang.o diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7d78886 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.[oa] +*~ +*.swp diff --git a/bin/xdrf2ang b/bin/xdrf2ang new file mode 100755 index 0000000000000000000000000000000000000000..5126797050840889b7f7382121ec35d347a5830c GIT binary patch literal 40927 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�Y5>u=Go{0#GGfZ2nsa>)qMW}n1;8EVEids4RAHf4!z zb5#tHEiq9aB1%-;yu?ID)I>~~=F}&LP%z-Vu%5!wRex*3J+n1LgQ$3ZNdLrYWN5W! z4JqO4+$syU3c6Bk!PUm2)ls?q+BcaPM(e${dG^0nZwTs4>K^HRc!!Z^;m)N3* zeguin5Hi7{v;Pg0pSEmltskN(>4u2?`nBUJ;>zwUlHM(NUf3p?Mof|YAtpNw%EE52 z%`@DYf&_;ILI_VNkvp5amXuSJ=Jp>xp2V=>!xmWb?$)y-&wML)p!xo%&cWL*Dcyoa zweGzXOgp;+y0?+ahjLow_TUUnz)!p}($6+u1fiyDgZiwFT## zqk-q@O^6?WWk~92y&=_4{-@7u(cja8t+dqljT2p1zJ;{vk>}YUT)#uyVFuaWL90e) z85)}9aJ)9_ap(yb7$;%5b4d|C`MrLm_7i{N4e?ozD*=WzW=XU$jAKAo^@kh@TM4%0 zt5XIa4-1bD2MG;0ZGWSP+eRlHQI(1#H3&HG60?b}ntc`tw=EAW!)4!aRtO z#+Ga^#|q7i6*^p1Oo6X(Ry^52NL%n#*6g64YDU83E*xHv9@{ZdDS8-rWuElYV-)ld zHlYBM_KDK?q~Tn@ay-TB_$Wj}QS{+2B7I0_H$Tva-;hMzy5F%y{(sVqk1$4486((C zLbC(9BFm&U8{q@VFlK%~leZym>NQMnLDD_7{xEOq5|}0#kGM!pycn zkQtIg)%z?{IF|GjbwtzIu$x2JD67jqQudH;`WUvi_9^{E=Rrj_`H@bW?Cr40v)kp; zy|w_t8;*r$cLoN_yL~4Rgb&-avw=Rs_5+bU1n1=Io3VTt&ti>28QIYD6w>xK;s8niw!E@fdG|AUdjEfcn>eY6llMQ65!a>x z|5}@1Ikb1##k_gs*gXTqaY(>=5~pNEI3=S~FN~BHK2qk;sE}V}>ri=vjg1rw!P@*b zg!~E2YiJs}o|@-3A%_gi=BJtgN%mW4W(YD2InEIDHU`lq)+5c6QJ(Gz-9vz8Spdte*>5Yi?e8gj4>y;2WM~EPIuMK^g(sM930tAIw#4y^(C_- zw1FV;;(MrcI73xJKZX{#NBj}fk2Be~%K{a-xS!!(%hyYbeb$*2Xu*SWeajN)G@A*OEUl+wMzw&1sR5P)iMi|ZW17|LB_^Q_CI4N|6j5QtLN*|($V0` zUqMFqH#FGdRT>>t>5hm>bj!$9q5%$-sCTKW;#BH_AVnQoLo`nZ3)1yThKTCQwr=^9 zx-?pcC@21dR$lBOd2+RD^J2|;J0O)gz$m#wQUa_LHFv>DL{Flz_$9W2UV1FuB> zt6g8xr9yWi-$~wFqJMcWQMA1Q!3dewje+59)&ta@;`s-bFQSMZv~EE}Tels(AvMzn znXV8Em4Nkt%|((nkyOSin3`hOgm8PCYLj;(@~vjIF}Lt~`*u+p`WkjekV^vt+1lPS z9HNvp^8q-pC(veX2OR{oW7sdmBx#;6Y``qg01IrCz3X9s)o6FXx?Z-z!YgI#N!WS3 z^`t)d0;>+219Fm9Y0+rBIuec9&7an~QWcJA$g9Hf9ZXZtJ%RZvecz2*c7-ia%9^wz z8~nvO?bZ*lzglE-9Z`@1J`!-7YY!*Q*==*Z#f+iaV+|f7{|gzx%Mx&}49s8ee{b0g zbMdjI!xeVu5y7tGeTcc4wsA>^D0~~>pvG>ljW%-k!l^b!;?rnIfB|rO!MfCXe7PH4 z8kh~YE?v#%C;isUVXJ3(}q5>Ja2V?0E*=*1*;_Gz?;9N_qAHG#M>crW>3Brz~$|ONYp0HYPCp zBu$+pAo%#5n6gy;7oAQ2p3^4xX?mmGr|P+%!YuGH3~RO-LsAqUJ4rsqwq&An3h9_l zv$^brf#-Jytbg5pXRI&$m~mYEBLzJ(7Hwqc<#EA)+z-ac7E_n`E@c#(AgmpuxCKtU z4WoDqM)78h;^)z|nr*x7xIxpUZ5#>GK@9%40McdN=pBxl>hDj*QQ(>Z)|msltIOwiHUlIH=(d! z6EF)!d*Own%=MJ@J7329?@i*XpdF&u1t;-FSU1rmeh=Ump2XY#`fp6)Lr6@5N&GZf zDA^=l2?_t^B<_rv#2;2o;-miulQ?_U5V2!L%*s<)ZPLS3$`%?nM^fLQeNc>Rwkl+g zTB)$<40}pHk2b*AGIb+cvi=85XfaFcUMxiwLD->9iC3jRI#!o1upwRg)5Wx?KRT98 zNN7WkcwvMqPnTiKI9{QI6tT>Dg-!`cW7JAW5zDL(3RpWT_1W#%_bct7QWtXcF$W-n zwU?CwqbPpfq&fOko?u+?(ET%y%hT8*NbQZmS4?h$%br}1dVJ~ z_7m`xJ^8OEj3%!E!JuUtZ+Se6*0N@EjJ{|{JVq$*9mFiTb6 z_6rZOT4Icd5sD#WD8*2kTM8JDoSO(qgNH_+p_B#{4I_@+Oh}@)0wl&*mxA0v$W6+a zW_&^*ijU}+-bhtC2;58jLdcOiT-XXi5{N~M(rttU8Aq-rB!NgB0|lMA zG~_vQ9U)gJnlL_~pG)JMYXX9~R(wP>@h`^EK`oY6>hpAaaJH;}k{-&XTZ4ZhA`s7w zgxVZ~+9yyEahr&ciQ60_ZVMM@2y#(#OE-$(ZCXZpP6_xtCThI|KAF;~_)W=-UdQmqP+p?gdr2uOTno1}%%|;1!RC$To zPjV?0;a}Nz=NsTOoR>hGd;!5)I&cDHgGW*9n#<>$0=)eXAmSY3A9Y3=K| zNU)VcGv8t!ZtVl4586_Auy)ef$}DVe*jxi`feCMv4|Gblz|^$BE#Vp2vi9CRz@3i6 zg=ZKEW0U7)Vf|N=)oGV2vbyZZh3v8?tJf|s&FZ70ni4r&B7b9(kCw=PDV6uO>27T` zA}Ct;K|Ci2bN~#V{Kfthwtsoo@EO<(gQcygY~J_zafcDt@1vL{Eqp^=TlY}UTpTY;&I4<%a8g#Pm_CFLt5V_ z1A{f$8vi%Tu9v?wAL%j=>M(0gn|U*E`Or%vxN zm!UOy>#5C>wVH0U{bBvu7m=1giJb)CClvPJysXtF!FyB9Y-^)us@$!Ad9bEkzqMT+ z+!{)=`F5w;icfh%*ox9wXvxBcf1%GJcl11iok6)HFmL5*zPa$8_nMwTu$rc&cu&)rVCo_C zNE)?r&ugS7(~D8^t@@+tzOn>H*@KJFSyx-+_t9V5?6~k zFkw~eCuufU_YlvE2AOZ-o;f31UNq=mZp+!{>(==jvnv#W-dM#SC>k3C+P#2im3^|GH61Wg#U7y=swwLM95NN1-x+ho&^2#y?jP4%Stt4 zx(Fhq*yIzeFK9%Jf%(Lkp)uhLYxHYd(IRtTMrz=})Z$Z3CT>hK8@BeKCo8i=K51qQ zNYOO;`<~3nfwHu;NdeEGG#XH-G(_HGkvskGd9!-%kiTpW(OFqw;_(}e%IV=g9CMTR zh34$VBQ}%6CBX@+>~fb`K4a0pTx8Llwdl8=wa7)SC*Tw<7|(s)kHGM-=VEz}e(NdO z^RxlO7g+yc8p*pgmg1xOCp>H(C#CjS5GYeE!NT_;M6wp2X}Z+Bld^1_ndJ}6zRxw@ z+j{2t-}79@F@f3qO+35&Md(?)h(%+?=6eJ2;aKBG@H&x_BZwm}vn`@MIu=nrCpu4i~H%Xz3;3C|5LRH)FyvU6~5Vn zhe}T4O&&bl&&ptc&ONiuh_^<=djBRy{i&_>)0EKTgp+meF;p*7`|G=uD}upJ5~RQTo6{D(;Sw3)-m1^ukB9GW{3-HSTU}p`RG<9;z`M=*?6dmpqgbLH z;6bGOO>hPA0Da!R#v!NmbG4_ zyfjZ&iV_*|syWD@$(?EquDT9DwH7Voc{f`Eudwd6=!_0t)O^72#! z(S7OW94!6znOo0~v=;PQb9$+e^QKj9H{-O$TF`3EX|-w&nsfG8wKw*kNnkIWj@ zGXnj^QP_hN1qoD$HyFPDd2hfeQT;JJ2 z+ex0@e#qw9ze9S!Bn8qRm)~mb85v9;a_C#xo|T13F7+|9yw}`%a->(4?2!ic zNK$zsA+fnESr$;@Ir$SK@!ZCtKD4PE?Jt7K!e)A$5UZ0HvsNGlltnnYnOaB_d3yJ) zh;=2dqqbn?Op4|ZrFdyp z`Le=5Q|f5kJjq`IQE)KlV6g|#s{>7GfaXV_5StEu5@DAQD~1X5&#d1?C%A zWrUV34qR*tPEHS`;RN|@`8S@dYgIOMCmZiYJz@_qK@&IU+OIr1i zljb5L1ulj|(m;Siu0Yw20cH*ifHzV=g4tIB2vKP^tji4yK@JbZY9M?|;c{M6z>`&m zkYDgeOih2pn^7<(RReeqz*i9XDGsJe0M7$hOJEVMNS*z7xhnSQMvBLp6pP4=T(EwZY?|BZeF9Ktf*lU3v$xPr{; z8OIjs{28yn#Mv*SFOK3ZDOe5aXQcEcQ*BvrILPKf|T-XJZx+~#V{5FvszSo+KqyP%){*^Hwnik3j#K$N+=W18)l%CDUZE_`ceaXebppPh z!D8GLM_yGgwXdgo0o|oY5-qju!RJ}@wacH73oJt268HmKO_Y>_jcxPqA0pMv;y zHSt6>aXt!I9T2UrO*48Y5Agr_N<_x%VCt2~5?+q1M5=i?=}M%E;|tYmh?TEES3ZD) zX1vEfXa`>;?8bZOG#V{|+{Z9BErG1ZE%NhhWKv420ZQ3&ATW08@A!DT1>9&1t;foT z);j=4$DJ&Yi#YNzAQSZomfE_(23pkJr#-D7hV=tDxrr0nUWD+n6s|W8JS=jkH8gTc zFgM$L=z9zHFLJH&r{>l#Mp`wWnh(JndoaspQ@BG4hENF$7rbtmYN8QaWDDj#26mW1 z$BP;Ci{HZIt|TjAONP&$#|V_hK&fKpe3L+5GukC_97SqSOFl~_KVnEnKk(V%>4kgreU zy;Ye83J5!&^lII9*X-G|&vdhAuX1){p(P*8`I~$y=Sy(SrVY?CHhX8ol2<|#Y>lMz zX`0j{oy3wL!JP2cW=PosDZF8b>6V;6G>oQm227roSGUG?nwFN82>}9vnBBuMyd3p;?O-FaP{{ka4E+0Kg zD_WT+@Uwhr$tbv8?sndBgO=TfgP}m?1~x}x+jpeq(4lXMpyzrRD%T>PWtEm;#w0Q} zH4<4cbJ!tlr+rI{bw7iyOt40WuNttNSo+AtFiS2rbi2dn#P>e*=(a&I+V8X>Rqc1~ z$i{%*HUzlsc)>vGUWu81mR;VX+O-TB@$xl4Pr8G2js#3jEmO5U9R z*7V$fovgi=BlsJE;9Enh?>9*y+n^86Cp3vx zVA?iaBh;nq-aYhSEkCZX$=}=LGro!6zW|&!o87N(UkC-D2-%FjmMzUTaU*ixlWn>q zAS1BK48DmE{@Ms^ChRaWs;hn_-4)q7{%_k#t=ABe0q(u|4eQuLekCNHQkh9G=ZOB^vIBgNy z{GWMm*hRr2^yW(uN`5?6$ZA;R6ZBaAYv9vkWSnx35}v{L*|5vGiBLMWaKzVo`1tXN zc|JQi>!OWgoR?M5c^U0>KYFr=yG-FKNRx?IcZcyjMZ$){wd$<#_LWiTpKQb&&rOoR9aez6(A32UtpO zqX{RCRx^XmZK+vwZ`*U9+zn0fEh@woZOBwGHmpR`LiTW+;&l zSmZZ?kDw*t(9su@wZs*;*|$%_niF~e{?)%R-=c2Mg!sk;E)E&`H)ahu&>_Y(k>_$~lBXNVD9&Z=i(Z z3>NH)zg#{RcaAw`Ur0l=L607X|9$$cgICi@3hfkuL9h37tK4!sj@2}%%R<)aJ^pVz zqY++Kws>w>JrMjnS7D=%RbWu>iJpu04Ky-XahvxmR%;LFY(dMdnx5m)Z?KG>V#(jJ zbF9E^ILZjUPQ5FCF8?E>MdL!hgZT&gY-0>h-#Ab%w055dCPlwg(d|%l6C5wLa ztN|TvhenbW5D)iIbV___DB@k?UWGdz?`L8|&-bH+dG~ zo6wC-?guNYYurZHVwT*CuSb7yzVTl6djLq?brtvoC&JEW)6(>5)-u~ns}-rSzR}3? z##(Qa$G8CO8r-hx%4&B7|B0OXnu_eAd}l#U_L%%^=gqkVi*s^FZ3@wOuEkdReE{Q) z#=3fs(FqldBqbF%+JeAMt%L_I*=6>4+_eoJqo>};zCs>f@s0|0?kcCJ`XOX%>+y>N z#`;PlzW2SpaY>$3%2I_GKUiR_bb@z1$=KY=0(^md4sTfQn973uyqlF0F9`Mf zB^E%!aZs9#=~7Z@MWu-Wq~0Glx|>|}6>fAVzp_W&fXk@Z59sO&uX|K(bz$x(<3eYX z(OGBo)&X2!^N_p3Sm#9BM&&whCgayuH@U#bNOH2B=ox3uZARzAf-_GZd#GgL?&~K^ zRDd)~;aaYgdD{EqUo-F*KNj#63Z8)z&?|VJ_A2!h@Cqfv)2<)aI`4;rEWmgAKTuJ> zs1BV1hpnr?SN=B{@e2&b>nn^E_3oy+Q66Kh)8ksmItox)Xwn6TH{vG->KpUmV@CQp z0~!NH{8WS6Sqq{?jrg$x;)V5 zfA-4;jcOhW}?oQ{9GPo+mJaFih#@t=+VG59y(e+K^D_+Nql|AYUx@J~)S3I9LGKZP1U z{&Q*2VsH+|;G9c?69O_J;7>xpUVJB~TL`!l0^Sk=o`ZlVg#arA+$01%4gn4!AQJ+1 z2?5y4zI2tdGD2q1U63xIzW`axp z!we8z#LDok0%(mAbqzj9PUKAtR3}W!;g_>BlW%&4$nb);xG7GMx>kG##h!N z%{v?pw4Befx&gp|Jd{0*e*kS@WyVI4@HL>fZ+Al|hz zqOT_6J-~9L^FDw+NPmK~1L;#pdy&46)PVk6-vv6P<+wlFf^;#`4y4!Oq^TFF1*ri6 zdFj{qmR+Pj`X(G+jPxYZO-Nrm1HF;Hi!_AvTcm05k>P#N8|ke`ZAkAzO5eEdMY1E%-&PdCV_95Mbboe0H9ceyNy4d4FNHq`7lr)PCnk&->rmaKYWC4bA zWy$kGIJ}>}<=mWMSd}t)=zua`>Kd)~kC%ZCP)1`xI{fu;_$BIFg--ih4UrI^3jA+w z4u>CBDHtMwJCczAEKj^$67oa@TywhTGno#qA}4;0RAj|^?BqY z`c(L|DL>)72uySppnC|uTtxsy?hMe)jMC)-MT_)TLAOrb{uG;Uz#3gJb*)xAnOTCE zaK1Z1e+kBbH-^3rhE0i3lKkVKTd@Da?IHWo@1*o%EYWWsMfB9l5&P!?e&0ciaQJ!@ ze^y7Wp!#;;C;l}Yz6tW8_#2qX2wwxd{V4nd`3OGcx6BBHUjzIx;3-ddU&=ih%*jwB z*o(k-0*^yzfu9q>Q#%g;e;9Zl;TL3>o=91%4W_Qqts3APm{QJ3Cjj*o=x+R5IQ$CH zP0BE=O_`K2JgA+NVO*1H&d6S+GiT)c2BbWnk!{W}0tJ#uiXa*1eT%P_7=@o7DR1L^Al{te*&{4eVJ ziwo$>+7EuYh}{Qps`7*FU!m1LebL}V24FqH+7JKUe3E~S8gKtyvF!(b6Y#&I_Ax(A zSu|MmDAg|m{)W%O;cFv!;e04le|vz>1-?kMKS=$xhWum|`JYc`$;j7^(y;D^zo^}h z#gkW1KkIWL|K5z2)L_aQ?W$CtE@f>*&n(EHZ%6+%==PBw^D|6qQ-azxsjGDG?ac}y z(WTOy^hG%Qc7M7*Ds;CS zpIembEd_oB@CZkdi~3_d;EMs533?~RFGq&SH;{+3lxWN&G@>!PC{I^>nM0%ZLgaFE zDd`s?qm<9bmD7cC>Aae>NpE7gp`zSb$;)4#57!f@JjI01=x?+Z4di8*o?WX`Oe|Fv z>enE4(Z!=7))BlY(U*U#FF_`4Syaxzip^%Eaw@VXT`(QHl;2>QF~r2m3fw5l%Dh55 zuXKs!P(=RuFmF%GU=zc`uB?5E9_SuczDM90(f`7S^1HL~q7I6F`9P$fi}bumGYlqH zUBCQkYGLfzo=`Th4l1Q6HdQhYvi1c%jo)>AxFd<*0c_O_{q|-!t zpGfOOx=f^NMfyvTz9iCSkscK32O|Akq~}GNagmTO(mavgCemply-%cdB3&lZwIcnc zNSQIkM}EPWn+wO@a%)ksaboT@*BK)>`@m10JFC=MHp6Buv0Lrd*>{=kWiw}#&7Ens zo2T06V#{Zib>>w2H1n)!Q|+_Ovu4;zW|;w)J8QHBT*@b>}pz z#WwSf8FQvio;=Q&jbGf&F&5?(=8ZLu$uGz+C@2_X%$|umXPeW*;Wv)S!A(%pl3I^* z0a8yRPZugVc4yrn8!;sM&?!3gAG3N7;nyJK@+H5^|iIwZBlpA|1f_g z>QP8k;*FGILJ5}uP@Gp^N*q;S*C9i(N2xy|#e@>(2LUj$QuITFvk0I7Id%OBDJF)S zAnMb6p}yklTY$uEWxXQ5JjDbE#c7tX{R_%rslYBJE{dW=_fiy_mHMkwOejeb-Ivp~ zMF^z$PHk7}D{=fTz$j)a^_BUcNCadh{)2>F@%Fn9P>Q`ueI?%BBPNgvQBTodp;OWa zfTvill$ChiBI=im`lLVUspv1j67A+u6P5bP{9zOmR=yxqsU#Z^~SD$`qjIItZOCtTmOa0{^1VSyJerAlWE>S;TUVQloXqB-+^_2BTNYrl; z_EY>*sjsx_80x6yE5E0@c@c5zudh;HN&g8Nb$w<1w?))nE#xz1Dt=1+6LIxTOUfCk zX$ecD_&LJJ!I95i#vDr{tdtH}G_kvXB?Z zc=_r&@p&z2n_`LwLtYBz$3$?gq|ATnN?Jtd@`Us{%u^;Q{?fvum3c^w(_*Go=9gG_ zn$$Abqz19P7IzKGe4s{Zaay3n`B?an$o*3+JY7=aax8qPq{Q1;c!s3J(O5Wwx)L8% z2rZ(768BVK*cslX#4{B_i(h6};*<&u`il{F%GDs2*J2l0i7RTP7I$$7$6EG@UKZ=hZ`8Y zza5GgyuTf+fTu`9CFx=la?$HvWHmTNY8UZD88`O}c!z*1<8d+I#HS&SPcr>!-9h@d z$Mx4w8GM+u&1*s~dOeG*CP6>`9&nPosnQfBMy?hAiR^X&aE+vw=tnE*GO|xedJieJ zw@b8Z(;ANW1W6)36n7KB&oDm2CHf*_x)i&mAfv%*h`t0_4Ie7t^i7j=DY5W!0jKXF zq)XwGCE)ZGgK9YKX%qh$aqw{hPTzP(ml6&q1D;6#JCeZ5lECLBfmZ@f_Ees}+r*?x zQoVp@;@L8~l=Vy#;M9-TPc1pmkLOpK77 zxgqyU0r!vLaCQa;_zMC)u8_l@2aK-Y13rw#^@gFyVc!z=qU*l}efek;E3>mf=tN^A`o&DB$OWJzoVpQUB62noLi8GatJ)@|E~O0hbzhzbG55 zos3Wa^}`1YK2%!dHZeBJUiK#fe)e__pUkj$6@L6r=^08FIk1fOHhSU&3nJ-v*tzJ4Rn;@8wO7!8WjC=hJDWnTL%^@B;P87@vzJ`f+jf=S3g z0=_to&l3zTh*ZfAz?q-K_2WJPHwpNPCjr29FbSWJ7#!=>2_{Czo&`YeL=yUe*#Dq7 zeDqdM&z?m9y`I4tis~Cu^ zRnXgAoc?VAzcUGabrN_W3Hg&Tn1JuJa{ey~!5<0!Ey90LWY-x%Un9mf-3QX89mMUqUfh4NXQBWfEa1-z ze`9C*fL|ow@7-=fNs^R)zly;bDCT2w68OR-@FxH#`;_B{3K^pToZZGG^e-lXw*sDM z9JME*e?JNQYX%=Gt-Z~}6k*Q@A@`kt&yDMs0k~0O`ai?<=e2Ow066*Wqhj5gD%L-j z3wWlRQ@WTGJR`{9qM%A_g8wG5E-e(enF?IUUE$=2IRZ|%=yXFBX9v&tL} zlq@l&+b63~74?p)n)(IK8V5TNb2z<=B^-7&)VMwFio9EHzPU&ugrmA*F-nE`5gjYYui)0=0!dI572cvy6cye|ZK`#G zXW>|Bq4)m0f?}ZSoDVNr0`WMubm2MVO3B&is&7JCQ@wz+gC&tvS2W;Y(uKo6dcJu< zwWmp9GLrEe^}vY39Ro+ zYaLQ0-a4qMa44PWknk!%liL$p+u?xKT@F{1*TK$lqiQsH9P~(boEAb`QpW3OS_qZn z_(ht5`imN?J#J>fI4)EjwvMgZ=&po$y)KV~wRJ&#eN8NZLpAQm^KXC1G1FZ|FC;Wh zuA!&Ro8Urq4>UQN8fwsUaI{*WUNr`hh0bc&zro478q8ShF-%AYl3!Wh;C#>v zWAZ1^V>JPiSw__j!jP<+9kt*dTcZMMI;3j6l>tv?4P=kWOHq4Q<6(LiD#iCX*CUo2 z*N;4iELmAo?~H375r_x%;Q@}4>F75+#_#ark$kG7;8;t&tRLYpc>N_-4mT$pIiaJX zMR;qVB2foNn+1=9AF)6a*SN|?cJ|p~~$+_d2Qz<0z?vdA9%&GqCU|NHpwJvT@^(nigP+sDkIXnw%_LbNiuv z4#|o6B$f%8Y*C}Lfx8DMr2vCiS-%J!9rX+zVi|>l`XZK3)ZT& zHkyZFSx*J#pZ-J`$qj@rHJ407_(eU6f-Hit2&DFg$OwY(P!v}WAGO}~4Gy>xUOJ19 zd{H7=7C8|jxWVIi0qDkCPG}jMYhslq*){dVS#4K0d%mc$0dc}p8H+=cFst?N^#yQQ z*5FFKs6>{ka@Ql6*EwL@MHLPTamwmI6-Am5VGsfqyB!Tq&%!vx;k9BaSWsVqo`EuM T8n!gwRM$ytDZxz3QeVA literal 0 HcmV?d00001 diff --git a/examples/unres/CSA/CASP3/ENERGY/dist_dfa.dat b/examples/unres/CSA/CASP3/ENERGY/dist_dfa.dat new file mode 100644 index 0000000..44e0be8 --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/dist_dfa.dat @@ -0,0 +1,4 @@ +0 +0 +0 +0 diff --git a/examples/unres/CSA/CASP3/ENERGY/file b/examples/unres/CSA/CASP3/ENERGY/file new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/CSA/CASP3/ENERGY/protA.intin b/examples/unres/CSA/CASP3/ENERGY/protA.intin new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/CSA/CASP3/ENERGY/protA.out_LJ000 b/examples/unres/CSA/CASP3/ENERGY/protA.out_LJ000 new file mode 100644 index 0000000..b4757db --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/protA.out_LJ000 @@ -0,0 +1,210 @@ +-------------------------------------------------------------------------------- + FILE ASSIGNMENT +-------------------------------------------------------------------------------- + Input file : protA.inp + Output file : protA.out_LJ000 + + Sidechain potential file : ../../../../../PARAM/scinter_LJ.parm + SCp potential file : ../../../../../PARAM/scp.parm + Electrostatic potential file : ../../../../../PARAM/electr.parm + Cumulant coefficient file : ../../../../../PARAM/fourier_GAP.parm + Torsional parameter file : ../../../../../PARAM/torsion_cryst.parm + Double torsional parameter file : + ../../../../../PARAM/torsion_double_631Gdp.parm + SCCOR parameter file : ../../../../../PARAM/rotcorr_AM1.parm + Bond & inertia constant file : ../../../../../PARAM/bond.parm + Bending parameter file : ../../../../../PARAM/thetaml.5parm + Rotamer parameter file : ../../../../../PARAM/scgauss.parm + Threading database : ../../../../../PARAM/patterns.cart +-------------------------------------------------------------------------------- +******************************************************************************** +United-residue force field calculation - parallel job. +******************************************************************************** + ### LAST MODIFIED 11/03/09 1:19PM by czarek + ++++ Compile info ++++ + Version CSA and DFA only + +Potential is LJ , exponents are 6 12 + +Disulfide bridge parameters: +S-S bridge energy: -5.50 +d0cm: 3.78 akcm: 15.10 +akth: 11.00 akct: 12.00 +v1ss: -1.08 v2ss: 7.61 v3ss: 13.70 + MPI: node= 0 iseed= -3059742 + ran_num 0.273754117333397 +RMSDBC = 3.0 +RMSDBC1 = 0.5 +RMSDBC1MAX = 1.5 +DRMS = 0.1 +RMSDBCM = 3.0 +Time limit (min): 960.0 + RESCALE_MODE 1 +Library routine used to diagonalize matrices. + +******************************************************************************** + Options in energy minimization: +******************************************************************************** +MaxMin: 2000 MaxFun: 5000MinMin: 2000 MinFun: 2000 TolF: 1.00000E-02 RTolF: 1.00000E-04 + +Energy-term weights (unscaled): + +WSCC= 1.000000 (SC-SC) +WSCP= 1.000000 (SC-p) +WELEC= 1.500000 (p-p electr) +WVDWPP= 1.500000 (p-p VDW) +WBOND= 1.000000 (stretching) +WANG= 0.103840 (bending) +WSCLOC= 0.103840 (SC local) +WTOR= 0.086170 (torsional) +WTORD= 0.000000 (double torsional) +WSTRAIN= 1.000000 (SS bridges & dist. cnstr.) +WEL_LOC= 0.000000 (multi-body 3-rd order) +WCORR4= 1.500000 (multi-body 4th order) +WCORR5= 0.000000 (multi-body 5th order) +WCORR6= 0.000000 (multi-body 6th order) +WSCCOR= 1.000000 (back-scloc correlation) +WTURN3= 0.000000 (turns, 3rd order) +WTURN4= 0.000000 (turns, 4th order) +WTURN6= 0.000000 (turns, 6th order) +WDFA_D= 1.000000 (DFA, distance) +WDFA_T= 1.000000 (DFA, torsional) +WDFA_N= 1.000000 (DFA, number of neighbor) +WDFA_B= 1.000000 (DFA, beta formation) + +Hydrogen-bonding correlation between contact pairs of peptide groups + +Scaling factor of 1,4 SC-p interactions: 0.400 +General scaling factor of SC-p interactions: 1.000 + +Energy-term weights (scaled): + +WSCC= 1.000000 (SC-SC) +WSCP= 1.000000 (SC-p) +WELEC= 2.571429 (p-p electr) +WVDWPP= 1.500000 (p-p VDW) +WBOND= 1.000000 (stretching) +WANG= 0.103840 (bending) +WSCLOC= 0.103840 (SC local) +WTOR= 0.147720 (torsional) +WTORD= 0.000000 (double torsional) +WSTRAIN= 1.000000 (SS bridges & dist. cnstr.) +WEL_LOC= 0.000000 (multi-body 3-rd order) +WCORR4= 1.616968 (multi-body 4th order) +WCORR5= 0.000000 (multi-body 5th order) +WCORR6= 0.000000 (multi-body 6th order) +WSCCOR= 1.714286 (back-scloc correlatkion) +WTURN3= 0.000000 (turns, 3rd order) +WTURN4= 0.000000 (turns, 4th order) +WTURN6= 0.000000 (turns, 6th order) +WDFA_D= 1.000000 (DFA, distance) +WDFA_T= 1.000000 (DFA, torsional) +WDFA_N= 1.000000 (DFA, number of neighbor) +WDFA_B= 1.000000 (DFA, beta formation) + Reference temperature for weights calculation: 300.000000000000 + Parameters of the SS-bond potential: + D0CM 3.78000000000000 AKCM 15.1000000000000 AKTH + 11.0000000000000 AKCT 12.0000000000000 + V1SS -1.08000000000000 V2SS 7.61000000000000 V3SS + 13.7000000000000 + EBR -5.50000000000000 + ITEL + 1 21 0 + 2 13 1 + 3 13 1 + 4 14 1 + 5 9 1 + 6 3 1 + 7 8 1 + 8 15 1 + 9 4 1 + 10 5 1 + 11 17 1 + 12 5 1 + 13 20 2 + 14 14 1 + 15 5 1 + 16 14 1 + 17 15 1 + 18 15 1 + 19 13 1 + 20 18 1 + 21 14 1 + 22 10 1 + 23 3 1 + 24 4 1 + 25 13 1 + 26 12 1 + 27 5 1 + 28 19 1 + 29 16 1 + 30 16 1 + 31 20 2 + 32 12 1 + 33 13 1 + 34 12 1 + 35 9 1 + 36 14 1 + 37 5 1 + 38 5 1 + 39 9 1 + 40 15 1 + 41 9 1 + 42 19 1 + 43 19 1 + 44 5 1 + 45 14 1 + 46 16 1 + 47 9 1 + ns= 0 iss: +Boundaries in phi angle sampling: +D 1 -180.0 180.0 +GLN 2 -180.0 180.0 +GLN 3 -180.0 180.0 +ASN 4 -180.0 180.0 +ALA 5 -180.0 180.0 +PHE 6 -180.0 180.0 +TYR 7 -180.0 180.0 +GLU 8 -180.0 180.0 +ILE 9 -180.0 180.0 +LEU 10 -180.0 180.0 +HIS 11 -180.0 180.0 +LEU 12 -180.0 180.0 +PRO 13 -180.0 180.0 +ASN 14 -180.0 180.0 +LEU 15 -180.0 180.0 +ASN 16 -180.0 180.0 +GLU 17 -180.0 180.0 +GLU 18 -180.0 180.0 +GLN 19 -180.0 180.0 +ARG 20 -180.0 180.0 +ASN 21 -180.0 180.0 +GLY 22 -180.0 180.0 +PHE 23 -180.0 180.0 +ILE 24 -180.0 180.0 +GLN 25 -180.0 180.0 +SER 26 -180.0 180.0 +LEU 27 -180.0 180.0 +LYS 28 -180.0 180.0 +ASP 29 -180.0 180.0 +ASP 30 -180.0 180.0 +PRO 31 -180.0 180.0 +SER 32 -180.0 180.0 +GLN 33 -180.0 180.0 +SER 34 -180.0 180.0 +ALA 35 -180.0 180.0 +ASN 36 -180.0 180.0 +LEU 37 -180.0 180.0 +LEU 38 -180.0 180.0 +ALA 39 -180.0 180.0 +GLU 40 -180.0 180.0 +ALA 41 -180.0 180.0 +LYS 42 -180.0 180.0 +LYS 43 -180.0 180.0 +LEU 44 -180.0 180.0 +ASN 45 -180.0 180.0 +ASP 46 -180.0 180.0 +ALA 47 -180.0 180.0 +D 48 -180.0 180.0 +dist_dfa.dat is opened! +Error opening dist_dfa.dat file diff --git a/examples/unres/CSA/CASP3/ENERGY/protA_LJ000.int b/examples/unres/CSA/CASP3/ENERGY/protA_LJ000.int new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/CSA/CASP3/ENERGY/protA_LJ000.mol2 b/examples/unres/CSA/CASP3/ENERGY/protA_LJ000.mol2 new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/CSA/CASP3/ENERGY/protA_LJ000.pdb b/examples/unres/CSA/CASP3/ENERGY/protA_LJ000.pdb new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/CSA/CASP3/ENERGY/protA_LJ000.stat b/examples/unres/CSA/CASP3/ENERGY/protA_LJ000.stat new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/CSA/CASP3/ENERGY/prota_nmr.pdb b/examples/unres/CSA/CASP3/ENERGY/prota_nmr.pdb new file mode 100644 index 0000000..74420ad --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/prota_nmr.pdb @@ -0,0 +1,723 @@ +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 diff --git a/examples/unres/CSA/CASP3/ENERGY/start.mat b/examples/unres/CSA/CASP3/ENERGY/start.mat new file mode 100755 index 0000000..eb990a9 --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/start.mat @@ -0,0 +1,12 @@ +#PBS -N test +#PBS -q dque +#PBS -l nodes=1:ppn=1 +#PBS -l mem=2gb +#PBS -l walltime=24:00:00 + +setenv MPIRUN "/users/software/mpich-1.2.7p1_intel-10.1_em64_ssh/bin/mpirun " +setenv NPROCS `cat $PBS_NODEFILE | wc -l` + +cd $PBS_O_WORKDIR +$MPIRUN -machinefile $PBS_NODEFILE -np $NPROCS ./unres_casp3.csh + diff --git a/examples/unres/CSA/CASP3/ENERGY/test.e54956 b/examples/unres/CSA/CASP3/ENERGY/test.e54956 new file mode 100644 index 0000000..4c0eb06 --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/test.e54956 @@ -0,0 +1,15 @@ +forrtl: Is a directory +forrtl: severe (39): error during read, unit 28, file /users/adam/unres/examples/unres/CSA/CASP3/ENERGY/ +Image PC Routine Line Source +unres_csa-CASP3_i 000000000060E70D Unknown Unknown Unknown +unres_csa-CASP3_i 000000000060D215 Unknown Unknown Unknown +unres_csa-CASP3_i 00000000005B0ED9 Unknown Unknown Unknown +unres_csa-CASP3_i 000000000056787D Unknown Unknown Unknown +unres_csa-CASP3_i 00000000005670CA Unknown Unknown Unknown +unres_csa-CASP3_i 000000000058F60A Unknown Unknown Unknown +unres_csa-CASP3_i 0000000000423157 Unknown Unknown Unknown +unres_csa-CASP3_i 0000000000410A63 Unknown Unknown Unknown +unres_csa-CASP3_i 0000000000404F55 Unknown Unknown Unknown +unres_csa-CASP3_i 0000000000404E9C Unknown Unknown Unknown +libc.so.6 00007F1FF8A0BC5D Unknown Unknown Unknown +unres_csa-CASP3_i 0000000000404D99 Unknown Unknown Unknown diff --git a/examples/unres/CSA/CASP3/ENERGY/test.e54957 b/examples/unres/CSA/CASP3/ENERGY/test.e54957 new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/CSA/CASP3/ENERGY/test.e54958 b/examples/unres/CSA/CASP3/ENERGY/test.e54958 new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/CSA/CASP3/ENERGY/test.e54959 b/examples/unres/CSA/CASP3/ENERGY/test.e54959 new file mode 100644 index 0000000..87a2b11 --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/test.e54959 @@ -0,0 +1,15 @@ +forrtl: severe (24): end-of-file during read, unit 89, file /users/adam/unres/examples/unres/CSA/CASP3/ENERGY/dist_dfa.dat +Image PC Routine Line Source +unres_csa-CASP3_i 000000000060E70D Unknown Unknown Unknown +unres_csa-CASP3_i 000000000060D215 Unknown Unknown Unknown +unres_csa-CASP3_i 00000000005B0ED9 Unknown Unknown Unknown +unres_csa-CASP3_i 000000000056787D Unknown Unknown Unknown +unres_csa-CASP3_i 00000000005670CA Unknown Unknown Unknown +unres_csa-CASP3_i 000000000058B87D Unknown Unknown Unknown +unres_csa-CASP3_i 00000000004A9586 Unknown Unknown Unknown +unres_csa-CASP3_i 0000000000417D1A Unknown Unknown Unknown +unres_csa-CASP3_i 0000000000410A87 Unknown Unknown Unknown +unres_csa-CASP3_i 0000000000404F55 Unknown Unknown Unknown +unres_csa-CASP3_i 0000000000404E9C Unknown Unknown Unknown +libc.so.6 00007FD9BAD0AC5D Unknown Unknown Unknown +unres_csa-CASP3_i 0000000000404D99 Unknown Unknown Unknown diff --git a/examples/unres/CSA/CASP3/ENERGY/test.e54960 b/examples/unres/CSA/CASP3/ENERGY/test.e54960 new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/CSA/CASP3/ENERGY/test.e54961 b/examples/unres/CSA/CASP3/ENERGY/test.e54961 new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/CSA/CASP3/ENERGY/test.o54956 b/examples/unres/CSA/CASP3/ENERGY/test.o54956 new file mode 100644 index 0000000..927f417 --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/test.o54956 @@ -0,0 +1,8 @@ + Processor 0 out of 1 rank in CG_COMM 0 + size of CG_COMM 1 size of FG_COMM 1 rank in FG_COMM1 + 0 size of FG_COMM1 1 +Inside initialize-------------------------------------- +Running PBS epilogue script + +Single processor job or ~/.nokill exist, no need to kill processes +Done. diff --git a/examples/unres/CSA/CASP3/ENERGY/test.o54957 b/examples/unres/CSA/CASP3/ENERGY/test.o54957 new file mode 100644 index 0000000..5ebc201 --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/test.o54957 @@ -0,0 +1,14 @@ + Processor 0 out of 1 rank in CG_COMM 0 + size of CG_COMM 1 size of FG_COMM 1 rank in FG_COMM1 + 0 size of FG_COMM1 1 +Inside initialize MPI: node= 0 iseed= -3059742 + indpdb= 0 pdbref= F + Call Read_Bridge. + ns= 0 + ishiftca= 1 ilastca= 47 + init_dfa_vars finished! +-------------------------------------- +Running PBS epilogue script + +Single processor job or ~/.nokill exist, no need to kill processes +Done. diff --git a/examples/unres/CSA/CASP3/ENERGY/test.o54958 b/examples/unres/CSA/CASP3/ENERGY/test.o54958 new file mode 100644 index 0000000..5ebc201 --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/test.o54958 @@ -0,0 +1,14 @@ + Processor 0 out of 1 rank in CG_COMM 0 + size of CG_COMM 1 size of FG_COMM 1 rank in FG_COMM1 + 0 size of FG_COMM1 1 +Inside initialize MPI: node= 0 iseed= -3059742 + indpdb= 0 pdbref= F + Call Read_Bridge. + ns= 0 + ishiftca= 1 ilastca= 47 + init_dfa_vars finished! +-------------------------------------- +Running PBS epilogue script + +Single processor job or ~/.nokill exist, no need to kill processes +Done. diff --git a/examples/unres/CSA/CASP3/ENERGY/test.o54959 b/examples/unres/CSA/CASP3/ENERGY/test.o54959 new file mode 100644 index 0000000..5ebc201 --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/test.o54959 @@ -0,0 +1,14 @@ + Processor 0 out of 1 rank in CG_COMM 0 + size of CG_COMM 1 size of FG_COMM 1 rank in FG_COMM1 + 0 size of FG_COMM1 1 +Inside initialize MPI: node= 0 iseed= -3059742 + indpdb= 0 pdbref= F + Call Read_Bridge. + ns= 0 + ishiftca= 1 ilastca= 47 + init_dfa_vars finished! +-------------------------------------- +Running PBS epilogue script + +Single processor job or ~/.nokill exist, no need to kill processes +Done. diff --git a/examples/unres/CSA/CASP3/ENERGY/test.o54960 b/examples/unres/CSA/CASP3/ENERGY/test.o54960 new file mode 100644 index 0000000..5ebc201 --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/test.o54960 @@ -0,0 +1,14 @@ + Processor 0 out of 1 rank in CG_COMM 0 + size of CG_COMM 1 size of FG_COMM 1 rank in FG_COMM1 + 0 size of FG_COMM1 1 +Inside initialize MPI: node= 0 iseed= -3059742 + indpdb= 0 pdbref= F + Call Read_Bridge. + ns= 0 + ishiftca= 1 ilastca= 47 + init_dfa_vars finished! +-------------------------------------- +Running PBS epilogue script + +Single processor job or ~/.nokill exist, no need to kill processes +Done. diff --git a/examples/unres/CSA/CASP3/ENERGY/test.o54961 b/examples/unres/CSA/CASP3/ENERGY/test.o54961 new file mode 100644 index 0000000..5ebc201 --- /dev/null +++ b/examples/unres/CSA/CASP3/ENERGY/test.o54961 @@ -0,0 +1,14 @@ + Processor 0 out of 1 rank in CG_COMM 0 + size of CG_COMM 1 size of FG_COMM 1 rank in FG_COMM1 + 0 size of FG_COMM1 1 +Inside initialize MPI: node= 0 iseed= -3059742 + indpdb= 0 pdbref= F + Call Read_Bridge. + ns= 0 + ishiftca= 1 ilastca= 47 + init_dfa_vars finished! +-------------------------------------- +Running PBS epilogue script + +Single processor job or ~/.nokill exist, no need to kill processes +Done. diff --git a/examples/unres/CSA/CASP3/ENERGY/unres_casp3.csh b/examples/unres/CSA/CASP3/ENERGY/unres_casp3.csh index 96e24d3..e414f04 100755 --- a/examples/unres/CSA/CASP3/ENERGY/unres_casp3.csh +++ b/examples/unres/CSA/CASP3/ENERGY/unres_casp3.csh @@ -5,9 +5,10 @@ setenv POT LJ setenv PREFIX protA -set DD = ../../PARAM -set BIN = $HOME/UNRES/NEW/bin/unres_ifc6_cryst_tor.exe +set DD = ../../../../../PARAM +set BIN = ../../../../../bin/unres/CSA/unres_csa-CASP3_ifort_mpich-1.2.7p1.exe #--------------------------------- +setenv BONDPAR $DD/bond.parm setenv THETPAR $DD/thetaml.5parm setenv ROTPAR $DD/scgauss.parm setenv TORPAR $DD/torsion_cryst.parm @@ -16,10 +17,12 @@ setenv ELEPAR $DD/electr.parm setenv SIDEPAR $DD/scinter_$POT.parm setenv FOURIER $DD/fourier_GAP.parm setenv SCPPAR $DD/scp.parm +setenv FOURIER $DD/fourier_GAP.parm +setenv SCCORPAR $DD/rotcorr_AM1.parm # Pattern database setenv PATTERN $DD/patterns.cart #-------------------------------------------- -$BIN -p4wd `pwd` +$BIN $* diff --git a/examples/unres/MD/ff_gab/ala10-cx.inp b/examples/unres/MD/ff_gab/ala10-cx.inp new file mode 100644 index 0000000..41ef785 --- /dev/null +++ b/examples/unres/MD/ff_gab/ala10-cx.inp @@ -0,0 +1,21 @@ +ala10 unblocked +SEED=-1111333 MD ONE_LETTER rescale_mode=2 +nstep=10000 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 diff --git a/examples/unres/MD/ff_gab/ala10-cx.intin b/examples/unres/MD/ff_gab/ala10-cx.intin new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/MD/ff_gab/ala10-cx.out_GB b/examples/unres/MD/ff_gab/ala10-cx.out_GB new file mode 100644 index 0000000..6833434 --- /dev/null +++ b/examples/unres/MD/ff_gab/ala10-cx.out_GB @@ -0,0 +1,309 @@ +-------------------------------------------------------------------------------- + FILE ASSIGNMENT +-------------------------------------------------------------------------------- + Input file : ala10-cx.inp + Output file : ala10-cx.out_GB + + Sidechain potential file : + ../../../../PARAM/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k + SCp potential file : ../../../../PARAM/scp.parm + Electrostatic potential file : ../../../../PARAM/electr_631Gdp.parm + Cumulant coefficient file : + ../../../../PARAM/fourier_opt.parm.1igd_hc_iter3_3 + Torsional parameter file : ../../../../PARAM/torsion_631Gdp.parm + Double torsional parameter file : ../../../../PARAM/torsion_double_631Gdp.parm + SCCOR parameter file : ../../../../PARAM/rotcorr_AM1.parm + Bond & inertia constant file : ../../../../PARAM/bond.parm + Bending parameter file : ../../../../PARAM/thetaml.5parm + Rotamer parameter file : ../../../../PARAM/scgauss.parm + Threading database : ../../../../PARAM/patterns.cart +-------------------------------------------------------------------------------- + ### LAST MODIFIED 03/28/12 23:29 by czarek + ++++ Compile info ++++ + Version 2.5 build 34 + compiled Mon Apr 2 08:16:44 2012 + compiled by adam@matrix.chem.cornell.edu + OS name: Linux + OS release: 2.6.34.9-69.fc13.x86_64 + OS version: #1 SMP Tue May 3 09:23:03 UTC 2011 + flags: + FC = ifort + FFLAGS = -c ${OPT} -I$(INSTALL_DIR)/include + FFLAGS1 = -c -w -g -d2 -CA -CB -I$(INSTALL_DIR)... + FFLAGS2 = -c -w -g -O0 -I$(INSTALL_DIR)/include + FFLAGSE = -c -w -O3 -ipo -ipo_obj -opt_report ... + CC = cc + CFLAGS = -DLINUX -DPGI -c + OPT = -O3 -ip -w + LIBS = -Lxdrf -lxdrf + ARCH = LINUX + PP = /lib/cpp -P + object = unres.o arcos.o cartprint.o chainbuild... + GAB: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DUNRES ... + GAB: BIN = ../../../bin/unres/MD/unres_ifort_si... + E0LL2Y: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DUNR... + E0LL2Y: BIN = ../../../bin/unres/MD/unres_ifort... + ++++ End of compile info ++++ + +Potential is GB , exponents are 6 12 + +Disulfide bridge parameters: +S-S bridge energy: -5.50 +d0cm: 3.78 akcm: 15.10 +akth: 11.00 akct: 12.00 +v1ss: -1.08 v2ss: 7.61 v3ss: 13.70 + ran_num 0.383569105241247 +RMSDBC = 3.0 +RMSDBC1 = 0.5 +RMSDBC1MAX = 1.5 +DRMS = 0.1 +RMSDBCM = 3.0 +Time limit (min): 960.0 + RESCALE_MODE 2 +Library routine used to diagonalize matrices. + +=========================== Parameters of the MD run =========================== + +The units are: +positions: angstrom, time: 48.9 fs +velocity: angstrom/(48.9 fs), acceleration: angstrom/(48.9 fs)**2 +energy: kcal/mol, temperature: K + + Number of time steps: 10000 + Initial time step of numerical integration: 0.10000 natural units + 4.89000 fs +Maximum acceleration threshold to reduce the time step/increase split number: 1.00000 +Maximum predicted energy drift to reduce the timestep/increase split number: 10.00000 + Maximum velocity threshold to reduce velocities: 20.00000 + Frequency of property output: 100 + Frequency of coordinate output: 1000 +Berendsen bath calculation + Temperature: 300.00000 + Coupling constant (tau): 0.10000 +Momenta will be reset at zero every 1000 steps +Velocities will be reset at random every 1000 steps + +============================== End of MD run setup ============================= + + +Energy-term weights (unscaled): + +WSCC= 1.352790 (SC-SC) +WSCP= 1.593040 (SC-p) +WELEC= 0.715340 (p-p electr) +WVDWPP= 0.113710 (p-p VDW) +WBOND= 1.000000 (stretching) +WANG= 1.138730 (bending) +WSCLOC= 0.162580 (SC local) +WTOR= 1.985990 (torsional) +WTORD= 1.570690 (double torsional) +WSTRAIN= 1.000000 (SS bridges & dist. cnstr.) +WEL_LOC= 0.160360 (multi-body 3-rd order) +WCORR4= 0.428870 (multi-body 4th order) +WCORR5= 0.000000 (multi-body 5th order) +WCORR6= 0.000000 (multi-body 6th order) +WSCCOR= 1.000000 (back-scloc correlation) +WTURN3= 1.687220 (turns, 3rd order) +WTURN4= 0.662300 (turns, 4th order) +WTURN6= 0.000000 (turns, 6th order) + +Hydrogen-bonding correlation between contact pairs of peptide groups + +Scaling factor of 1,4 SC-p interactions: 0.400 +General scaling factor of SC-p interactions: 1.000 + +Energy-term weights (scaled): + +WSCC= 1.352790 (SC-SC) +WSCP= 1.593040 (SC-p) +WELEC= 0.715340 (p-p electr) +WVDWPP= 0.113710 (p-p VDW) +WBOND= 1.000000 (stretching) +WANG= 1.138730 (bending) +WSCLOC= 0.162580 (SC local) +WTOR= 1.985990 (torsional) +WTORD= 1.570690 (double torsional) +WSTRAIN= 1.000000 (SS bridges & dist. cnstr.) +WEL_LOC= 0.160360 (multi-body 3-rd order) +WCORR4= 0.428870 (multi-body 4th order) +WCORR5= 0.000000 (multi-body 5th order) +WCORR6= 0.000000 (multi-body 6th order) +WSCCOR= 1.000000 (back-scloc correlatkion) +WTURN3= 1.687220 (turns, 3rd order) +WTURN4= 0.662300 (turns, 4th order) +WTURN6= 0.000000 (turns, 6th order) + Reference temperature for weights calculation: 300.000000000000 + Parameters of the SS-bond potential: + D0CM 3.78000000000000 AKCM 15.1000000000000 AKTH + 11.0000000000000 AKCT 12.0000000000000 + V1SS -1.08000000000000 V2SS 7.61000000000000 V3SS + 13.7000000000000 + EBR -5.50000000000000 + ITEL + 1 21 0 + 2 9 1 + 3 9 1 + 4 9 1 + 5 9 1 + 6 9 1 + 7 9 1 + 8 9 1 + 9 9 1 + 10 9 1 + 11 9 0 + ns= 0 iss: +Boundaries in phi angle sampling: +D 1 -180.0 180.0 +ALA 2 -180.0 180.0 +ALA 3 -180.0 180.0 +ALA 4 -180.0 180.0 +ALA 5 -180.0 180.0 +ALA 6 -180.0 180.0 +ALA 7 -180.0 180.0 +ALA 8 -180.0 180.0 +ALA 9 -180.0 180.0 +ALA 10 -180.0 180.0 +ALA 11 -180.0 180.0 +D 12 -180.0 180.0 + NZ_START= 2 NZ_END= 11 + IZ_SC= 0 +Initial geometry will be read in. + +Geometry of the virtual chain. + Res d Theta Gamma Dsc Alpha Beta +D 1 0.000 0.000 0.000 0.000 0.000 0.000 +ALA 2 3.800 0.000 0.000 0.743 110.000 -120.000 +ALA 3 3.800 90.000 0.000 0.743 110.000 -120.000 +ALA 4 3.800 90.000 180.000 0.743 110.000 -120.000 +ALA 5 3.800 90.000 180.000 0.743 100.000 -120.000 +ALA 6 3.800 90.000 180.000 0.743 110.000 -120.000 +ALA 7 3.800 90.000 180.000 0.743 100.000 -120.000 +ALA 8 3.800 90.000 180.000 0.743 110.000 -120.000 +ALA 9 3.800 90.000 180.000 0.743 110.000 -120.000 +ALA 10 3.800 90.000 180.000 0.743 110.000 -120.000 +ALA 11 3.800 90.000 180.000 0.743 110.000 -120.000 +D 12 3.800 90.000 180.000 0.000 0.000 0.000 +Mesoscopic molecular dynamics (MD) calculation. + +******************************************************************************** + + Calling chainbuild +====================MD calculation start==================== + Initial velocities randomly generated + Initial velocities + 0 -0.02571 0.04778 -0.01151 0.00000 0.00000 0.00000 + 1 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 + 2 -0.11082 -0.24316 -0.01092 -0.01544 0.04693 0.02901 + 3 0.17509 0.14021 0.01920 -0.06074 0.20983 -0.00546 + 4 -0.28110 -0.18298 0.04141 0.05768 -0.02663 -0.10403 + 5 0.52321 0.32791 -0.28506 0.24480 0.23049 0.08887 + 6 -0.24047 -0.12903 0.12193 0.03851 -0.08315 0.33390 + 7 0.09902 -0.00280 0.29189 -0.33532 -0.00436 0.03329 + 8 -0.12228 0.11945 -0.17716 0.08467 -0.09409 -0.31636 + 9 0.15147 -0.14801 -0.02818 0.01545 -0.19775 0.03783 + 10 0.03113 0.28957 -0.29450 0.09912 -0.08052 0.16164 + 11 0.00000 0.00000 0.00000 -0.24131 -0.01384 0.16566 + 12 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 + Calling the zero-angular momentum subroutine + vcm right after adjustment: + -2.929524022998914E-017 -5.326407314543479E-018 -1.731082377226631E-017 + + + alpha-carbon coordinates centroid coordinates + X Y Z X Y Z +D ( 1) 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 +ALA( 2) 3.80000 0.00000 0.00000 3.73284 0.42654 0.60465 +ALA( 3) 3.80000 -3.80000 0.00000 3.37346 -3.73284 -0.60465 +ALA( 4) 7.60000 -3.80000 0.00000 7.53284 -3.37346 0.60465 +ALA( 5) 7.60000 -7.60000 0.00000 7.25007 -7.43253 -0.63368 +ALA( 6) 11.40000 -7.60000 0.00000 11.33284 -7.17346 0.60465 +ALA( 7) 11.40000 -11.40000 0.00000 11.05007 -11.23253 -0.63368 +ALA( 8) 15.20000 -11.40000 0.00000 15.13284 -10.97346 0.60465 +ALA( 9) 15.20000 -15.20000 0.00000 14.77346 -15.13284 -0.60465 +ALA( 10) 19.00000 -15.20000 0.00000 18.93284 -14.77346 0.60465 +ALA( 11) 19.00000 -19.00000 0.00000 18.57346 -18.93284 -0.60465 +D ( 12) 22.80000 -19.00000 0.00000 22.80000 -19.00000 0.00000 + +Geometry of the virtual chain. + Res d Theta Gamma Dsc Alpha Beta +D 1 0.000 0.000 0.000 0.000 0.000 0.000 +ALA 2 3.800 0.000 0.000 0.743 110.000 -120.000 +ALA 3 3.800 90.000 0.000 0.743 110.000 -120.000 +ALA 4 3.800 90.000 180.000 0.743 110.000 -120.000 +ALA 5 3.800 90.000 180.000 0.743 100.000 -120.000 +ALA 6 3.800 90.000 180.000 0.743 110.000 -120.000 +ALA 7 3.800 90.000 180.000 0.743 100.000 -120.000 +ALA 8 3.800 90.000 180.000 0.743 110.000 -120.000 +ALA 9 3.800 90.000 180.000 0.743 110.000 -120.000 +ALA 10 3.800 90.000 180.000 0.743 110.000 -120.000 +ALA 11 3.800 90.000 180.000 0.743 110.000 -120.000 +D 12 3.800 90.000 180.000 0.000 180.000 180.000 + Potential energy and its components + +Virtual-chain energies: + +EVDW= -1.466547E+01 WEIGHT= 1.352790D+00 (SC-SC) +EVDW2= 1.045502E+01 WEIGHT= 1.593040D+00 (SC-p) +EES= -3.731028E+00 WEIGHT= 7.153400D-01 (p-p) +EVDWPP= -1.171261E+01 WEIGHT= 1.137100D-01 (p-p VDW) +ESTR= 1.531499E-27 WEIGHT= 1.000000D+00 (stretching) +EBE= -2.106038E+00 WEIGHT= 1.138730D+00 (bending) +ESC= 9.424775E+01 WEIGHT= 1.625800D-01 (SC local) +ETORS= 0.000000E+00 WEIGHT= 1.985990D+00 (torsional) +ETORSD= -9.403905E-01 WEIGHT= 1.570690D+00 (double torsional) +EHBP= 0.000000E+00 WEIGHT= 1.000000D+00 (SS bridges & dist. cnstr.) +ECORR4= -2.225631E+00 WEIGHT= 4.288700D-01 (multi-body) +ECORR5= 0.000000E+00 WEIGHT= 0.000000D+00 (multi-body) +ECORR6= 0.000000E+00 WEIGHT= 0.000000D+00 (multi-body) +EELLO= 1.644793E+01 WEIGHT= 1.603600D-01 (electrostatic-local) +ETURN3= -1.490245E+00 WEIGHT= 1.687220D+00 (turns, 3rd order) +ETURN4= 6.106256E+00 WEIGHT= 6.623000D-01 (turns, 4th order) +ETURN6= 0.000000E+00 WEIGHT= 0.000000D+00 (turns, 6th order) +ESCCOR= 0.000000E+00 WEIGHT= 1.000000D+00 (backbone-rotamer corr) +EDIHC= 0.000000E+00 (dihedral angle constraints) +ESS= 0.000000E+00 (disulfide-bridge intrinsic energy) +UCONST= 0.000000E+00 (Constraint energy) +ETOT= 7.475595E+00 (total) + +Initial: + Kinetic energy 1.64667E+01 + potential energy 7.47559E+00 + total energy 2.39423E+01 + + maximum acceleration 9.73465E-01 + +Velocities reset to random values, time 84.93 +Momenta zeroed out, time 84.93 +Velocities reset to random values, time 162.90 +Momenta zeroed out, time 162.90 +Velocities reset to random values, time 249.85 +Momenta zeroed out, time 249.85 +Velocities reset to random values, time 319.31 +Momenta zeroed out, time 319.31 +Velocities reset to random values, time 398.92 +Momenta zeroed out, time 398.92 +Velocities reset to random values, time 476.10 +Momenta zeroed out, time 476.10 +Velocities reset to random values, time 540.82 +Momenta zeroed out, time 540.82 +Velocities reset to random values, time 612.01 +Momenta zeroed out, time 612.01 +Velocities reset to random values, time 687.88 +Momenta zeroed out, time 687.88 +Velocities reset to random values, time 762.77 +Momenta zeroed out, time 762.77 + + +=================================== Timing =================================== + + MD calculations setup: 0.00000E+00 + Energy & gradient evaluation: 7.80000E-01 + Stochastic MD setup: 0.00000E+00 + Stochastic MD step setup: 0.00000E+00 + MD steps: 8.80000E-01 + + +============================ End of MD calculation =========================== + + +***** Computation time: 0 hours 0 minutes 1 seconds ***** diff --git a/examples/unres/MD/ff_gab/ala10-cx.rst b/examples/unres/MD/ff_gab/ala10-cx.rst new file mode 100644 index 0000000..8dc9f7c --- /dev/null +++ b/examples/unres/MD/ff_gab/ala10-cx.rst @@ -0,0 +1,50 @@ + 762.874218750042 16.7068894456558 -9.52495969646534 + 7.18192974919049 300.000000000000 + 0.00000E+00 0.00000E+00 0.00000E+00 + -0.50050E+00 0.60725E+00 0.15311E+00 + 0.14719E+00 -0.23391E+00 0.85997E-01 + -0.23010E+00 -0.31874E+00 0.14102E+00 + 0.13411E+00 0.29864E+00 -0.39217E+00 + -0.87656E-01 -0.24391E+00 0.10252E+00 + 0.92362E-01 0.31446E+00 0.33708E+00 + 0.59434E-01 -0.24152E+00 -0.24215E+00 + -0.19140E+00 -0.58835E-02 -0.36460E-01 + 0.20739E-01 0.18868E+00 0.54941E-01 + 0.00000E+00 0.00000E+00 0.00000E+00 + 0.00000E+00 0.00000E+00 0.00000E+00 + 0.00000E+00 0.00000E+00 0.00000E+00 + -0.17211E+00 0.14962E+00 -0.53198E-01 + 0.37402E-01 -0.33329E+00 0.20813E+00 + 0.97410E-01 -0.14024E+00 -0.25120E-01 + 0.17827E+00 0.10293E+00 -0.13628E+00 + 0.15438E+00 -0.11584E+00 0.10299E+00 + 0.16099E+00 0.70136E-01 0.39551E-01 + 0.97236E-01 0.39265E-02 -0.61408E-01 + 0.26000E+00 0.23294E+00 -0.30235E-02 + 0.43844E-01 0.12882E+00 0.18455E+00 + -0.10385E+00 0.79485E-01 -0.43086E-01 + 0.00000E+00 0.00000E+00 0.00000E+00 + 0.38000E+01 0.00000E+00 0.00000E+00 + 0.28635E+01 0.14450E+01 -0.19617E+01 + 0.36316E+01 -0.77536E+00 -0.64699E+00 + -0.76911E+00 0.55276E-01 -0.37348E+01 + -0.14330E+01 0.34834E+01 0.32173E+00 + 0.32851E+01 0.14137E+01 0.14138E+01 + 0.21800E+01 -0.21248E+01 -0.22605E+01 + 0.13810E+01 -0.31666E+01 0.15476E+01 + 0.13000E+01 -0.27570E+01 -0.23114E+01 + 0.12276E+01 -0.32677E+01 0.14444E+01 + 0.38000E+01 -0.55583E-30 -0.23268E-14 + 0.00000E+00 0.00000E+00 0.00000E+00 + 0.00000E+00 0.00000E+00 0.00000E+00 + -0.36917E-01 -0.67438E+00 0.17653E+00 + 0.11494E+00 0.67124E+00 0.47263E-01 + 0.36412E+00 -0.54904E+00 0.30919E+00 + -0.51202E+00 -0.46879E+00 -0.28296E+00 + -0.68371E+00 -0.19989E+00 0.73791E-01 + 0.24266E+00 -0.12138E+00 0.66211E+00 + 0.44340E+00 -0.14137E+00 -0.57216E+00 + -0.33880E+00 -0.18304E+00 0.61886E+00 + 0.40692E+00 0.63346E+00 -0.24106E+00 + -0.53372E+00 -0.56804E+00 -0.17698E+00 + 0.00000E+00 0.00000E+00 0.00000E+00 diff --git a/examples/unres/MD/ff_gab/ala10-cx_GB.int b/examples/unres/MD/ff_gab/ala10-cx_GB.int new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/MD/ff_gab/ala10-cx_GB.mol2 b/examples/unres/MD/ff_gab/ala10-cx_GB.mol2 new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/MD/ff_gab/ala10-cx_GB.pdb b/examples/unres/MD/ff_gab/ala10-cx_GB.pdb new file mode 100644 index 0000000..e69de29 diff --git a/examples/unres/MD/ff_gab/ala10-cx_GB.stat b/examples/unres/MD/ff_gab/ala10-cx_GB.stat new file mode 100644 index 0000000..cfd365f --- /dev/null +++ b/examples/unres/MD/ff_gab/ala10-cx_GB.stat @@ -0,0 +1,101 @@ + 0 0.00 16.467 7.476 23.942 0.973 276.380 300.000 7.834 0 + 100 9.10 16.328 -6.245 10.083 0.913 274.046 300.000 8.684 0 + 200 18.15 17.606 -8.260 9.346 0.821 295.503 300.000 9.852 0 + 300 26.60 17.633 -6.013 11.620 0.142 295.952 300.000 10.097 0 + 400 35.80 17.943 -5.890 12.053 0.547 301.156 300.000 8.982 0 + 500 41.98 17.384 -3.630 13.754 0.148 291.768 300.000 8.448 0 + 600 51.58 16.187 0.569 16.756 0.677 271.688 300.000 8.613 0 + 700 60.66 17.691 -1.921 15.770 0.842 296.932 300.000 8.910 0 + 800 70.01 18.301 -5.865 12.435 0.260 307.162 300.000 8.917 0 + 900 79.56 18.508 -1.201 17.307 0.632 310.645 300.000 9.128 0 + 1000 84.98 18.836 -2.314 16.522 0.245 316.144 300.000 9.136 0 + 1100 92.93 18.012 -6.747 11.265 0.190 302.321 300.000 8.645 0 + 1200 101.65 17.092 2.645 19.737 0.478 286.872 300.000 8.006 0 + 1300 107.20 17.207 1.125 18.333 0.826 288.813 300.000 8.018 0 + 1400 115.95 18.648 -1.952 16.696 0.560 312.984 300.000 8.570 0 + 1500 124.95 18.069 -5.726 12.344 0.688 303.281 300.000 8.805 0 + 1600 134.15 18.394 -10.412 7.982 0.445 308.725 300.000 8.641 0 + 1700 141.91 18.166 -3.630 14.535 0.090 304.894 300.000 8.413 0 + 1800 150.16 19.083 -6.497 12.586 0.809 320.290 300.000 8.272 0 + 1900 153.55 17.612 -4.945 12.667 0.131 295.609 300.000 8.493 0 + 2000 162.95 17.590 -1.869 15.721 0.159 295.239 300.000 8.767 0 + 2100 171.05 17.209 -4.409 12.800 0.139 288.838 300.000 8.718 0 + 2200 179.70 17.507 -7.610 9.897 0.139 293.838 300.000 8.769 0 + 2300 187.85 17.120 -0.502 16.618 0.805 287.345 300.000 8.905 0 + 2400 196.75 18.459 1.456 19.915 0.944 309.821 300.000 8.602 0 + 2500 206.05 17.708 -2.636 15.072 0.836 297.219 300.000 8.410 0 + 2600 215.35 18.956 -5.931 13.025 0.549 318.155 300.000 8.925 0 + 2700 224.00 18.119 -6.021 12.098 0.572 304.115 300.000 9.351 0 + 2800 231.50 18.678 5.920 24.598 0.792 313.492 300.000 9.333 0 + 2900 240.60 17.320 -7.378 9.942 0.671 290.707 300.000 8.713 0 + 3000 249.95 16.503 -1.872 14.631 0.784 276.984 300.000 8.098 0 + 3100 255.97 17.818 4.567 22.385 0.002 299.060 300.000 8.132 0 + 3200 263.92 18.398 -0.332 18.065 0.065 308.791 300.000 8.193 0 + 3300 268.34 17.860 0.247 18.107 0.000 299.766 300.000 8.187 0 + 3400 274.73 16.831 4.505 21.336 0.980 282.495 300.000 8.188 0 + 3500 281.48 18.149 -1.105 17.044 0.163 304.618 300.000 8.418 0 + 3600 289.33 19.066 -3.115 15.951 0.952 320.001 300.000 8.999 0 + 3700 296.88 17.911 -8.099 9.812 0.528 300.623 300.000 9.419 0 + 3800 306.33 18.439 -5.739 12.700 0.147 309.490 300.000 9.724 0 + 3900 311.62 17.844 -2.005 15.838 0.001 299.489 300.000 9.417 0 + 4000 319.36 17.788 -5.589 12.198 0.203 298.552 300.000 8.808 0 + 4100 324.15 18.296 -0.895 17.401 0.652 307.084 300.000 8.896 0 + 4200 329.04 17.523 -9.432 8.091 0.192 294.109 300.000 9.160 0 + 4300 338.04 17.089 -0.430 16.659 0.935 286.826 300.000 9.730 0 + 4400 347.09 17.437 -12.280 5.157 0.463 292.670 300.000 9.568 0 + 4500 355.30 17.828 -6.993 10.835 0.951 299.234 300.000 9.095 0 + 4600 365.10 17.447 0.593 18.040 0.264 292.827 300.000 8.617 0 + 4700 374.40 17.248 -0.425 16.823 0.568 289.501 300.000 7.937 0 + 4800 383.65 18.354 -0.773 17.581 0.620 308.061 300.000 7.793 0 + 4900 390.77 18.793 -0.973 17.820 0.927 315.424 300.000 7.717 0 + 5000 399.02 18.096 -1.591 16.505 0.722 303.729 300.000 7.397 0 + 5100 408.72 17.308 1.699 19.008 0.680 290.509 300.000 7.222 0 + 5200 415.89 17.852 5.048 22.901 0.003 299.639 300.000 7.369 0 + 5300 424.20 17.934 0.214 18.147 0.130 301.004 300.000 7.566 0 + 5400 432.65 18.692 -8.277 10.415 0.613 313.728 300.000 7.941 0 + 5500 437.18 17.852 -7.456 10.396 0.020 299.631 300.000 8.147 0 + 5600 445.70 17.562 -4.347 13.215 0.486 294.762 300.000 8.254 0 + 5700 454.90 17.618 1.864 19.482 0.146 295.699 300.000 8.213 0 + 5800 462.75 17.470 -4.524 12.946 0.807 293.219 300.000 7.987 0 + 5900 471.70 17.535 -2.686 14.848 0.180 294.302 300.000 7.699 0 + 6000 476.15 17.393 -1.046 16.347 0.138 291.925 300.000 7.754 0 + 6100 482.98 18.158 6.699 24.856 0.122 304.763 300.000 7.391 0 + 6200 489.35 17.753 -2.463 15.290 0.224 297.970 300.000 7.555 0 + 6300 495.52 17.873 4.396 22.269 0.000 299.981 300.000 7.701 0 + 6400 496.99 18.261 2.555 20.816 0.889 306.491 300.000 7.655 0 + 6500 505.31 19.109 -3.507 15.602 0.559 320.730 300.000 7.549 0 + 6600 511.86 19.921 -2.615 17.306 0.831 334.362 300.000 7.473 0 + 6700 516.50 17.836 1.609 19.445 0.009 299.365 300.000 7.515 0 + 6800 525.13 17.551 -5.494 12.058 0.813 294.583 300.000 7.319 0 + 6900 534.48 16.969 -3.074 13.895 0.850 284.805 300.000 7.009 0 + 7000 540.87 16.846 -3.773 13.073 0.141 282.746 300.000 6.951 0 + 7100 547.49 18.501 -4.184 14.317 0.132 310.525 300.000 6.688 0 + 7200 554.64 17.291 -1.757 15.535 0.877 290.215 300.000 6.455 0 + 7300 561.99 16.237 -3.244 12.993 0.979 272.518 300.000 6.148 0 + 7400 569.18 17.372 3.789 21.160 0.150 291.570 300.000 6.037 0 + 7500 576.36 17.692 -1.857 15.835 0.916 296.950 300.000 5.832 0 + 7600 580.20 17.908 3.568 21.476 0.045 300.575 300.000 5.672 0 + 7700 586.58 17.253 -1.713 15.541 0.645 289.584 300.000 5.324 0 + 7800 595.28 18.636 -4.664 13.972 0.768 312.794 300.000 5.042 0 + 7900 602.66 17.616 -5.709 11.906 0.735 295.667 300.000 4.857 0 + 8000 612.06 17.814 -4.197 13.617 0.153 298.996 300.000 5.023 0 + 8100 619.07 17.423 -8.016 9.407 0.207 292.435 300.000 4.999 0 + 8200 626.27 18.598 -4.785 13.813 0.453 312.145 300.000 4.862 0 + 8300 634.62 17.465 -9.443 8.022 0.139 293.132 300.000 5.005 0 + 8400 643.17 17.222 -4.356 12.866 0.719 289.049 300.000 5.086 0 + 8500 652.47 18.706 -6.319 12.388 0.500 313.972 300.000 5.489 0 + 8600 658.22 17.874 -8.851 9.023 0.000 299.999 300.000 5.720 0 + 8700 666.44 20.872 5.048 25.920 0.446 350.319 300.000 5.880 0 + 8800 674.14 18.412 -7.266 11.146 0.495 309.036 300.000 6.265 0 + 8900 682.42 17.086 -5.330 11.755 0.852 286.772 300.000 6.611 0 + 9000 687.98 18.421 -12.007 6.414 0.809 309.182 300.000 6.336 0 + 9100 695.08 18.351 -1.368 16.983 0.176 307.998 300.000 6.306 0 + 9200 700.84 18.777 -3.479 15.297 0.125 315.151 300.000 6.316 0 + 9300 708.56 17.878 -5.025 12.854 0.000 300.075 300.000 6.027 0 + 9400 713.22 17.006 -7.676 9.330 0.706 285.435 300.000 5.765 0 + 9500 722.77 19.028 -10.245 8.783 0.655 319.362 300.000 5.419 0 + 9600 729.81 17.878 -0.689 17.190 0.000 300.069 300.000 5.101 0 + 9700 736.47 18.024 -11.583 6.441 0.441 302.514 300.000 5.360 0 + 9800 744.92 18.233 -7.035 11.198 0.133 306.022 300.000 5.671 0 + 9900 753.67 18.163 -12.974 5.189 0.826 304.847 300.000 5.703 0 + 10000 762.87 16.707 -9.525 7.182 0.708 280.411 300.000 5.685 0 diff --git a/examples/unres/MD/ff_gab/ala10-cx_MD.ang b/examples/unres/MD/ff_gab/ala10-cx_MD.ang new file mode 100644 index 0000000..f688f0d --- /dev/null +++ b/examples/unres/MD/ff_gab/ala10-cx_MD.ang @@ -0,0 +1,110 @@ + 1 0.84978127E+02 -0.23142E+01 0.00000E+00 300.00000 +ALA 149.777 -116.250 +ALA 115.006 159.994 +ALA 136.663 -165.949 +ALA 144.549 -160.838 +ALA 145.726 172.354 +ALA 130.111 -167.542 +ALA 91.980 133.026 +ALA 92.759 89.936 +ALA 115.225 115.286 +ALA 104.503 + 2 0.16295000E+03 -0.18690E+01 0.00000E+00 300.00000 +ALA 100.883 -152.419 +ALA 114.047 95.450 +ALA 146.102 -137.939 +ALA 112.985 179.337 +ALA 141.104 -156.278 +ALA 140.256 -168.236 +ALA 102.050 162.119 +ALA 91.158 120.771 +ALA 89.182 139.040 +ALA 89.606 + 3 0.24995000E+03 -0.18720E+01 0.00000E+00 300.00000 +ALA 104.388 158.274 +ALA 97.919 67.644 +ALA 110.100 -163.300 +ALA 108.685 166.084 +ALA 117.521 107.838 +ALA 112.365 -86.773 +ALA 131.325 -173.788 +ALA 105.013 140.652 +ALA 121.982 -171.326 +ALA 125.653 + 4 0.31935858E+03 -0.55894E+01 0.00000E+00 300.00000 +ALA 112.920 -140.590 +ALA 100.328 166.852 +ALA 111.144 106.514 +ALA 97.985 178.549 +ALA 120.699 -152.026 +ALA 124.816 -175.948 +ALA 116.714 -156.814 +ALA 107.321 173.196 +ALA 114.722 163.522 +ALA 129.215 + 5 0.39901797E+03 -0.15912E+01 0.00000E+00 300.00000 +ALA 121.180 -97.270 +ALA 127.421 -167.342 +ALA 90.137 126.194 +ALA 126.532 -125.402 +ALA 112.021 170.716 +ALA 86.923 75.196 +ALA 106.730 -121.619 +ALA 112.789 -148.902 +ALA 95.490 94.846 +ALA 127.742 + 6 0.47615079E+03 -0.10461E+01 0.00000E+00 300.00000 +ALA 131.206 -167.357 +ALA 132.852 -159.425 +ALA 122.793 165.625 +ALA 92.453 74.728 +ALA 90.936 134.399 +ALA 94.777 -163.471 +ALA 117.081 156.140 +ALA 90.579 124.435 +ALA 97.267 -170.405 +ALA 132.830 + 7 0.54086719E+03 -0.37729E+01 0.00000E+00 300.00000 +ALA 133.879 156.151 +ALA 111.476 -163.488 +ALA 109.341 174.653 +ALA 95.391 65.313 +ALA 90.352 52.539 +ALA 92.439 174.814 +ALA 126.855 -110.258 +ALA 117.771 -175.801 +ALA 120.593 -153.930 +ALA 107.506 + 8 0.61206250E+03 -0.41971E+01 0.00000E+00 300.00000 +ALA 117.391 169.055 +ALA 84.971 83.016 +ALA 99.076 51.890 +ALA 91.358 47.572 +ALA 90.578 102.030 +ALA 88.648 -58.570 +ALA 103.319 -57.841 +ALA 98.287 172.865 +ALA 106.026 97.126 +ALA 88.519 + 9 0.68797656E+03 -0.12007E+02 0.00000E+00 300.00000 +ALA 120.646 179.395 +ALA 88.205 125.417 +ALA 88.009 65.849 +ALA 89.373 65.627 +ALA 91.198 63.709 +ALA 84.865 -120.981 +ALA 135.339 179.669 +ALA 103.412 175.245 +ALA 110.230 -101.832 +ALA 123.634 + 10 0.76287421E+03 -0.95250E+01 0.00000E+00 300.00000 +ALA 139.607 -156.396 +ALA 138.096 125.184 +ALA 88.328 55.289 +ALA 90.371 58.139 +ALA 92.648 37.754 +ALA 93.782 -98.046 +ALA 115.772 161.867 +ALA 118.675 -176.771 +ALA 120.187 -102.464 +ALA 108.963 diff --git a/examples/unres/MD/ff_gab/ala10-cx_MD.cx b/examples/unres/MD/ff_gab/ala10-cx_MD.cx new file mode 100644 index 0000000000000000000000000000000000000000..726e8f00c9592b77bb1fd89b11e8db66119dd7eb GIT binary patch literal 2168 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 QR^sU{a~(tCX|61P0BqW|RsaA1 literal 0 HcmV?d00001 diff --git a/source/xdrfpdb/src/intcor.o b/source/xdrfpdb/src/intcor.o new file mode 100644 index 0000000000000000000000000000000000000000..4a99a6da86d33f941958659a2b45ea853b1e3087 GIT binary patch literal 5448 zcmbtXU2GIp6u#Rnq6qBNh#>*P8pRX>OWQ!A2BBItDWm$IJMz-7RE~JtW zs^Fxf;COMO8@QqOmPrZac;R*{>`{rS%C zz2}}YGZ*Z`FSkS@OtlC*z*bfYWvut%m3cRxcC!s^9qV&yzd9Gc8Fgysr<~fENvGB~ z;f&c+W6YUw#(S5Y+ME-qJCV7inAQ3%1c^G?jJlpvmtx0nEXCUFIbxe=#&$1C=A|c@ zInNE}VxvWOB}@+bvLJm4^97smnQQ{-jNv$Z29o+SIM&^aMoa053vcgJy6?7#jr<5U&>Q42Z-gh?hVF1a~YH zog`9T5HEu`syyL(h(C!u7oHG9(x%Syq&h;WLsERq#S&{!B4StTu`lY?dhESlc)_sj zi7@FqN%G9`jdOET0dv#BoHZ^?CEW>GoT>xD_P89m?Of~_6)tN7{2-$@lrNRNga$Zi zE8x5$rKQBNA2jXUimH6o&18};79VQWURwRO(HY~G9kC{rI4>SB%f*4Yv>$%H)f2*D zoM6(%eqB1_q)R&#^t_}4Mffcjnq1-(^kG5gdQ_C^#8wr8Jf=KQRl(`KJlgm!a4SksQJ!EwN@?SeYPah&wwe0!TN~t~9 zj2cW`ys@DqT!>WCaxGzUPz_Z8&zDeU2Q)P;5J6>kXuEbp9eM++MMQ}@B8tViD&0i7kvZx<@*lQdRJ zV$7>qDSJAdsANYfEO9DbNwdVsa+xJcMX|^f3x(_u(T0kZY=SnryIe_U-XaEwW%H?A zDP71))Av2ZNdw$}K-1JM*IzyqB(w&XYzwV*3@p=@VCz@u`l zhP#?wh3mF<5dk{?uY4!T!alA*psf?D?f}S`+?IzvOEbuKc!-#EOZnXz4qh}hzUZ5C zg6s-X-j89fCI2-D9VA`NLj zjfJo2{$s8C4))6%h0v@NSWin_3Ee)hX7&eUp!$Rwuh;E+1Z@JoR(5+?gZVNVih|&Z zHuVJlH9cX%`Fkg1BFff=FaS|+_d#+rl)a4plo@-(=O?dmgdtvSY-u@8BX1KT^AS(| zZiBv!9_Uf>ycQC+ot|d=I|=ve@1`}{9(tf>Tn3QWOv3ij1Ae7T#TR+u*R$9qZi%bm zqgQ3+8XT%*ils!3rB4s%(bM|Jom|~{}%as(%m5PPb zxiZORQ>>KDQGq^_A-q(q6w)+OOQ55M`!BCFUmxau7%v;}j|}*A13quSRY-Mzw#kdF z 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 D;CLq; literal 0 HcmV?d00001 diff --git a/source/xdrfpdb/src/nazwy.o b/source/xdrfpdb/src/nazwy.o new file mode 100644 index 0000000000000000000000000000000000000000..7e2c2984402e7ac9d4d4639171c9802661412768 GIT binary patch literal 1188 zcmbtTO;58x5T05;PuiP_2iKD|v7~M4#e*rS2#sq+puR7s1}%+7sYW*OV;;M{}hTC@aAMOpsy$)(T`hqua0oi_i)E6Dx2XtII8J z_0LTncy17SCO2&!29D=jp3Qrv-?Mq&^j)Xxn@EJd>zy7l);T%q^7DV8X$SsU&pLFx zWA}g7-tKhvS=H|KcUa448GEc*Z`2!&Mw3;&c*vYczA39KAd~8>8G0U^KdpZ-)bfNt|X*#1F{;?(ydwi|gnX$sY+$Ut$0N literal 0 HcmV?d00001 diff --git a/source/xdrfpdb/src/rescode.o b/source/xdrfpdb/src/rescode.o new file mode 100644 index 0000000000000000000000000000000000000000..333126a7a217f027a405378024810dfed852dc41 GIT binary patch literal 2736 zcmb`IPiP!f9LL{eYa837yDb$8^)Pxci6lcdMrbY6Xk7aQl@cs^8>hRo*`e8)GBc~O zAXUPO!@4%0g@P9^B3`^1u+VnVV)P=l$DV{zs8pefha95Y-*@J{?%S8mMf}0c`@PTa z@0*$T=3MFJ7l#akNio?3STd6qRPs~e ztX10N7kT>x<-X314mYmz_9_f%RPxKE%=w3_7}JPmr?H2klG4U+IVzOa`LvT?>#R^= zGQM*6W2J?2$L<=d)FZ0r*9uv=l{-d$?LAaE{N00OYc$o9#nMT}T_&)T2rYL`Sj z!;PQ5XDoE1a!_%tDyox=k3C6ZmclRy%_)=2UZvrVO?tDFV`j~XOvg7HKH*^LEw^I& zPTe)fCY`4y*zx)KXUy^Aub!MRXRTT5X>(?}I9)6jXUy>h^5jmO@u`^!s&gQ%#+Y$- zff>sMi;Z=Gwj}pfP`5K?Zb9)OP49$=3%zb5$3u9LFPCa%`(HMu>Sd&`lE;&~0 zF2~HOII+X5Q&GgMFvuq5pk8--U6Oj`JVxS5m#?eElb z&53!sHpPaQstUdsox#5RaOPzqImsTnpwg2`<)9d!pb;E9K$UwUPG!*bT9d?(^S{Oy zDHf&Z9Ox5S|D`_K>tAAQ4#ZDOAjTsi;grVZvgG(Y*`=E4 zNte%G;ssLlXA0ZJ-I<4cPk4WbmGP4ABc?xlM1C&nJD4b<_m8>WJKVYWAm@Z}gcv?4 zy*}8W`X36%Kgh0%USGATI{bF9Khv{O<3VHrOj1#&x{RcdMk$FMG_u@W}D7N1Yz1UTP5E)h7(DwY;U39}irgF^* zopRh~l&S1W;H&wfI5=bbjk+6pWmb-ys<(tLNfX^vMc*_~#=6a@XW>N4b+Bdj}EzonysBmbz#f#HP0@oHsV gU*UO$f245amj0h99A};6UnqRP!cEd4=m(dS`}Xt5LjV8( literal 0 HcmV?d00001 diff --git a/source/xdrfpdb/src/xdrf b/source/xdrfpdb/src/xdrf deleted file mode 120000 index 038166c..0000000 --- a/source/xdrfpdb/src/xdrf +++ /dev/null @@ -1 +0,0 @@ -../xdrf \ No newline at end of file diff --git a/source/xdrfpdb/src/xdrf/Makefile b/source/xdrfpdb/src/xdrf/Makefile new file mode 100644 index 0000000..02c29f6 --- /dev/null +++ b/source/xdrfpdb/src/xdrf/Makefile @@ -0,0 +1,27 @@ +# 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 + diff --git a/source/xdrfpdb/src/xdrf/Makefile_jubl b/source/xdrfpdb/src/xdrf/Makefile_jubl new file mode 100644 index 0000000..8dc35cf --- /dev/null +++ b/source/xdrfpdb/src/xdrf/Makefile_jubl @@ -0,0 +1,31 @@ +# 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 + diff --git a/source/xdrfpdb/src/xdrf/Makefile_linux b/source/xdrfpdb/src/xdrf/Makefile_linux new file mode 100644 index 0000000..f03276e --- /dev/null +++ b/source/xdrfpdb/src/xdrf/Makefile_linux @@ -0,0 +1,27 @@ +# 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 + diff --git a/source/xdrfpdb/src/xdrf/RS6K.m4 b/source/xdrfpdb/src/xdrf/RS6K.m4 new file mode 100644 index 0000000..0331d97 --- /dev/null +++ b/source/xdrfpdb/src/xdrf/RS6K.m4 @@ -0,0 +1,20 @@ +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) + diff --git a/source/xdrfpdb/src/xdrf/ftocstr.c b/source/xdrfpdb/src/xdrf/ftocstr.c new file mode 100644 index 0000000..ed2113f --- /dev/null +++ b/source/xdrfpdb/src/xdrf/ftocstr.c @@ -0,0 +1,35 @@ + + +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; +} diff --git a/source/xdrfpdb/src/xdrf/ftocstr.o b/source/xdrfpdb/src/xdrf/ftocstr.o new file mode 100644 index 0000000000000000000000000000000000000000..f0102ea3cff2ee21851f306d97ab4ddca1e40452 GIT binary patch literal 1456 zcmbtUL2DCH5T2K`ZcGbltA|1r){~8zM-mbw9yF!KE=4>P1#i0DZYbC^C3(RrLJMo5 zIRyL-{sK>>$7rFo-uw?9)Iw=h#GB6SzE_{mJ?X&i%zQK7%)B?*tkrJcN-zdW7+ib~8zAUI^(M6DdJl{fZ9 zb}IPDD7Pmv%<2BfY^66-PS9sg@CFMUbq;IY{%r4=#gMyAeZKB&d>5B9TZ!j=acR@S zdg8nj?1h97?R-8M+qLWvtL$~Yg{&RSb9y(gvV#v;V`h5#nmsvl=U&z>@e(iF#e5-O zC=`nJ6NzO(J*wZ;+t0Qb;*h;;?gNz`4PR2Z`3Cm0ShSb2@Pa49V zM=e^BUR0LwR|W6|SGd6E+il=pv(fOE5nFBwpW~dlws5^iz+3*3%l*X%^_JW4RptNE z6Ue50oHD9ZrT@~v2MqrL`ovEfI9+p`nEZ>Fl)~p<`B#uj{ndS=8H(zkQ-IWzOQLjH zv%`RVjj9A4jLDsqSi;B~m;9=M(^++?p<~_&#n%U;EOoBa=+cf9e>@7qC~EWWD0E-; zzbo^UGLJ>RIXmU9$f1rTF^!sfoBe67xc(32{Pg?M#q6)gber-9;P|JGDLZ+xJ%vO% z8G90%FK$A@<&b}tLEQWrRQYUqE^{cPG@2ju=SKZrVr`I$`mfSS#hQP(HbmGK{i4~J7rc?w1B|J&} z4Fo1mDi;|R4bwC&U(-Cl{LgvjEYq|(%U0Gl*SFL~mp8R6)F|xyK2R5lHZ?ophGkJF zP~X^8BZ5uKYwnNLad={FeWaG!H8W(Ey(WVGQXeeMk z`C4PcVk&rXlc=iR8bU=(Dx=CMEulKX@8mMXCzOPtR+h(uigKJsyGiSd zNmSF?uk8z0@?fQQnWk&svDhIiGQ_f{?;zB&XZ!8R={W_=drv3Q&brdla{`oNvH8IR z7HbS13A5VZu`oj2VHORZ3bR$g9xMJ)c@;}nvCk}axQhM$R@u^yC;I|aB zC(&8V(tt^Rk*o*(pEc4II%Y}W?!!w3b!b~IQJwpRs9toZiw zPU9|Pu2DVrJ62+0wtYi5(c}x+3$$?JK7Yve1>+Znw0_%Q$Jr?(dCVX0_8aUVOB#pH zhlU;qvArR-(`0WLhd!RwUN+K*Cq40=A*&C^KlZaz$!>4_gCU8=0#Dm#t=F*A#-U@z z&;y3&tP%fWNNb)EPx)E5$+jW?p%d+S-uMm=yCK9DXd&hchT4v{j$kKW^rK*AAp{&V z+kNBjSzydJ78v(-zCZY~P5dMOE;HEf(C8bU z18o(Q*g}B8^M@1jgY8v`dwj-Az_iqCc3j^y%(GkHyqgV6cKfaPHlI~-Cf4275gTN( z_fn(q!@Bg%r&x4-dwiP*G)OvWKz>y`=`$*NqGJs9n#m4^+TM?L8+Kusy=f%OVA@KQ z#Z7h~^-TPPhaIrzuWf&kM7AA`jZF=O)jS;)oh|1QzAn^=pGw*JThf#3#VKE)XzH+9 zSEhYkII#kib(P89Mzx{3LK-{6i$=9p8Dj5JomEBl=$o^L8$);V`Z?hbahn^5POvWH z(0k_41M%~yv&3CJtSfokJ1bE;){}hKTe!FFVCz)YRdKjwRD6e@INciAH$&e%8mx{O z@$H_%-(IEnw=|D@ z^b{CWu`ki`vkmrdRc!yQYzL}uG++&WzVP$N=WRZI-rqXeLJj7!!&|A9gxQDPZ(m5K znKynCRoCf@f8}5O??z(wIW)w?JWukN_uP?CV%3nIP+Pk7a+6)49RGwIR^$*fpUg#< zF>Mp_xHEp-6aPFNdy7a}v`r&!v8{G>FfaL@AMEp!$8v{m8(tmEMPzjHSU$Q0Y-ByM zolGE&V=SaGLmf}LspKdd@BThMq+BYQ#+6evuFx2gPpsJQl@Z9k%(5ptEJK>@^>D6z zV+C4ae&+!7^A$VCs)Ihm)~p1E6pNkUbwNF10?a4+4E2e4+M{nsLS@6A*Jxs%yd;^`noVXX0UUnzNy^woHzB&=S^0gJb^~hf&SbR`vVvrjE-cT z`sOn%`gAV3FH+kMQcvFIF)I%1k4MvJ78oo25RZYM5FH_WI-*Cm$*k0?YH9Y?cz3s-~R2@;wD=f`P z+dA~MmtRI8q}f?!B3K#k8M^u^XTW{Y2bLH^E%vd@aQy5DP&1UrVIV5kYD?>F8#(od zR`SCv&fH>7Ge!IARW}DT8Pzq}u``xFuH%gUU7qudUesen(tkcf%MPPh9!HPkn<1N* z-X1)S^Vc{016TP2EBV3yJC#pak$|Jc4}G;=l~gah*76~u$} z;+@UI&+6axo;CD&$<$C0oWIS~3yzq2_1hsm?`TN>-qCtfFMf-+UQ?fa;H+M>d)oRS zmCRntJw2RcP6#*^2snBA?SxZ^=@2-}rx$lN594C=dAs@qb_juQssi6o1s<68B)2LU zlX3O%HZZ0Ta55%v^7PvYrx3f_M-u&dF|V`c93hp*QrS*yK97+RzeNT^k&mbva8T8v zW13UVru{sxZc`7RGMN)b5>+rIabLfkCsCNq#vr;g+bG1+Z>N#GFeX%bDpYuiB87WG zY`2l@0hA0CCPSY6Mqy`&9dV$}5F(y;FrKvz4<|y|;fkFhef9@dd>5wsJqE)Z*cq<) zSbww_^RbDcs@6(8&1*y*8xk$P-f<$);_nMT&8y~XklIhmTBS-qtB>1;XZKlseo~mX zG=7fFOobx z++{`f@;S)PevG}6OpQro5AXV%g@Zv%a=u3mw%tg6G{*33H@d!rJ^Ww~&*yj=JS$=b zO;ECJ$rED|zO1eulxY#lUk;O{jo(2ERwvH|*T4tLM>yI{Euo1#`}h=$bybnWRwD0C z8qF;$G5Uw7AS%W*sQvIAp|+E)VSBh)__@JeO@2PcD1Fr^eATR26X1DmpWAnsL zBcXJE;r@y!(5vhgKhTn16k@Z%Povb;BPw75{h4k0=7Y5Oucig&4y-b|TUXj6t;Ec1 z+t2>3@KtsJ-Kq3k;W?w?%hr3tiCcW(#LQg7t}w=zUz9e(O8mfYC0g=K`wDaXs1Q43 zB)>qfdoxt{W~kz|)~nfYhI}5w&NbKwgK729gQXMSYO3hYMJc!nA+S5YzWD^=-&l(QqhU}pxno9}9 z7iqDP@UqiN%)yazKMG8L=8EK;9Ba&o&V#3e!sb_k!o93|kRQ#@n+-X+oHv?4Xj;L;cah|LNDg85gf$g zA8obBs<~~S=|4h)FsDU><*^}a$gI(+e38xl zyc%=PC#XmaEyo-smyjx6XPgoP6txEJ!EacRr0r{iei|PoJlnd?L-kzj2HyFgP^B8P}+{rR5cC ztB=6?L2|;(QjXzem8Nf)3LYlwPIix(l_)AOy1p`Teo+)+9~#L&jtO}_G`g_kPGOcU zpdkf*F8Q=@$+Z%`O6sxYR-))pu)_>GO`SonBrD-aMwvbR9P+6%=cg&6@?U!Ld>Z-U z5b41xjV5_d2orpr4>6kE4UaDvPAv5sI5hN%nJT8|laSr9{d{zYT?4wU_uO%|8@qwRZCGfr{e`cyGli$YwZK^e(d=CSOI`_0 za5R$bOw*(u=_Hl}ndXE}NO1~=G2JZeLBVJ`M~DiAU^WH4A&m+XYWpm9FG@sHBBqX8 zaUhjPH2DVep@`hnD0Ph1^GR%`P~)g~)IDttL~JH@VBg0^8TvS1us05F02G3moF7fsCRU6EtvAsk=J+}6g#Ii>C|n6@lvcFN@nGx{ z?ZNBN?27n#COTT{O;+T9o%bWEM>_T$&3&&}n z(_-D3VAl??Mn_xC#d2cR!y{pqA{^)*Pk)(q7G$YGFF-Lm@3i16=bg^M6b_WM7wNX_ z_*%^T-wCr$<?@0%i}Rvru>xK^USCjzY=)lF;kRyl3Zd9X4hw=6GswJou)~->UG=rU z(HU!%rbK)ms<6fr0q93JQ#&ekLgvEC8)KmZm@fIuU!*^OZX_3o+e9L?95gT zX`CO_9K4G*8X*19WbcOA3BKy=m-rqn&~p2ZLNTCV68TYwzPW>WE&J(UK8drR3kKka z?Pr4p+g6jaA&{o|K zgT{s#yL>^~+otYi$Dt{EN2-}8Q!K1R{TxkAC5>_CGgw|kvNw4G4RHI&JPQ7tWSWDN0jkM*$#uipD|2n0>HA5BKXR;lMhfxx7pgUkmBKE}iP7g26 zr3y3MT^M_0ro!}HVn|b5x;W^V8ShWBE`7b?zjU(a(#d}!_g|L$CuHN^h^l-*x3uQ_ zP0fMD&2=?@Q`@v+S)gHAprvkEEnXRD2`q~(4O~+jsBNliS$17Cu(T!`SrTYzc&H92 z4c6pv@gAsaZfchGjL;x)zcJ zTJgrgG!j+Qd|%*!778J)zM+x7e8As5m>O7K)6!B0lE7_q!{Na4Ca74~EY%=A1Rd09 z!RrNmx)7gX+R~cF#->Q1z6LR9zhb=BtksNn3h^g?{YWQ4I4{#^O-I*}-@p^VQ-Egz zo=QA(@YLa1gXgDsUcp1FnHhNg77qe1gdpGsA>c6xSSSSKLBPvGKmi1-hJbW>h;|1Aq=kT=7366bgn$qP zd?f_f5O5v>a5k@90Rf*%0Z?%wcW1wil44ByKL#Ljh-V@xl=uXYEGS_ou_7MLQuw6bd zel0A0BPTbW^}QUb8%it3L++dO!_(&Rv;d;jgu%t>XK_yD<5?TL3E%ob>juY%WG%|^ zQ{I)72KPMu%*e^zkToMGKjEE`6IkyvathWBGIC1dgR`E^DKK&ZNCL?W5bJqMGUzu z7xdbB<0aCzh_soM@3x%4x~#Z2ikzh15s~(<2mE)h}wZ`jx z`m$jI6&6-^+D=sPqp~~Yy^EKZ+S?N%?U%i2Su2L|8guggTBKjyn~nyBFtw?DB8}G# z%ABA&Sx;?X9kr?WATy`Ld!2_@C)xric$3ls$m^#u0*=eQC#S=g$Xf4R=Zg=@+Q9h- zkjA??{GE8T1v!-)vJ&3)zIB7pPJcl}0l;$vpI7_S{Dx?#%uzuzhG<;%{lq2Gp1VZa z?n|V-e~C027s(Bz%jip_m1juPid!CB8m(CjKicg0OJu0IuCb;#TDLN)71!28Yqa9U zEiGDca}z~~ytKId;%KRiO1~H{qV>@rQl_SqPS%PeO-q;7ErWz*P0_ky41?FVL~9~{ z12Pg`w`5^`bInp3)Bi#jKz{04G@YofQbc|(2PY91=ISNA5+OH6iAyFqBx^=FK8<%I zhuSzf-e=%ni-&MgwFo(`+a*`xZdpZ0AfE30PD8->Ow1J*P{I@}#X}@CRbJ$HL&C=L zBCt%_?J zs+0DYek~FQ%3q!#zqG&f@6V8bPKNwaAL*|a`AbwK5nd$n^P7DojdUd^{dOhH6U0wK zx{_#Fb|F#S4 z*fscp`?=%w{<`(2xLbE3_K$b6>>lFyBqvC?6YcGPbb{Ki?*Ka>I>g_)n7ic*cKtk} z^J%Bk{Sp9p`_+O&0#0(PX}=98`@u4SHwxTo zPdLxWz^7Hvj}jGlwZl$h0xuUh-wPn^hZ*?%T?YK;g3oeVsKH5nev^To-p!_ReN!~7 zolZ85-klq$zV>Ip-^hT!EBGH1{Q3R@GENG76F+4X>v-UwXW%mk<1gvC-$kDbd>}oq z6!a%u^w(yfFBSCJVnUGZe|iS`S%QANi+)Z9`tJ(*n_cuYuMDLBazWqVqJJm@eO%DD zyXX@c=zBkgiO`W)L+x_p2Ls*EPA9B8uTKPt*o*zE) zR37U4RH|NnFa^;KO$#GnYM8vJ+KkQmsP!AJ8|PEA6qFOSS^e# z-l z3ZehY8IgRNS~~EMyUy`=x{5al9L=25H)8xC_psyfwKCB!7x+D5zH;+lByi$WfCm?n z+$~XX3N{Ho4`tx9TA?4O@cC~FuJZX`8TkB*LSLlt*{a|al;x@uOU_}y)U`&Vz^Poc zx02<0K*5U@e2s$Npy0m{^DXfwxgB`OZ4%~ZJ43;VUgA{>PUV$0y;s2}D)e;bJth4%1y}X#61ZE>*A;qI&tnR% z>UmPZNiIF)aOJ=q)uW1!5KDN%%kW4&^A()vWxY6W@;ZBCRsV^C-mQPR!bjDAhJvg5 z->KlLoof}G^pSctD7dQsas^lES1Guvzb$aL{!b|Ms{Vhk;Hv(=P;k}Gn_RfmKU-{Z zWW7i`&s1<)T1oob6`YnJ62Du)X-y^Z2o(s9_y_Pv{C)*j`LE7^w=1|R_ZbCO<=!hM z7?N9{$o+l>{DBNO%YgqV1OC$t_%;O}tLXD?23$6H(qETCj)-@h=Jwakpchj0w?oPxul-| zEL3a;w^I|Wzm{HlVh_Iypj zRsD}DxJv(_f~)#}CUCd@Unumd{)6%yyHa~l^&hF=B$pm?-*n-!{Tm9d_S4%k;P+&} zmu0|zkO6PcfR|nF=u72N^_e4ZvX45>KcvvBc79aBRX#sdaFzZi3a*Z0zfy3Oey@UG z4V|Ptk19CP%kjhzN>jO1KGhlU`!e9`GvM!Lz|$GPXQ+Nf89mjA?QC*=v6(v;@p(%MtbfR^nQVp zeN;U!Q*c$!u>zNRb_hP#D)f_qNj-}doa`yjA8vNxVmQ+77C7li^it3JUG!o(q&?)K zm-V>LMc)Zto(z1xQs^y(&meJrPxe>&Tp@6GxkfAWH!FOC3a;{* zoPp0Yg+8qCnW^9^pScpQ@$|@h#$UT|d7rq?h0A-xZWk`^ z2YuAY;3R)}4;XOa^1g4n3zzqL;!o}R|A$@0!2e-aS~h8NfV;2%A9lYMbx-FCHfZ$FgO+aIK(<`#$RrEkeBz1vz=|9MaSdQqqQB;aqUCEFZwO~ z2?)=?(b$R9WjluiI99PM_6g6`2|6obPVuDPhw%U4d*oC)x#n@dOHOMr+0P?H2uD~6 z4>>Qj^WY`k9qsqp=zrCVo=}XIC{!Qf3WcjmKb0c%GvP~5G&vdN=ZlnIH0fTP%sh~D z=f4g_ems9}{vzZh`O@A9awp}}`d@WKOHTTelrT>aKO-c83JyR^^C^*Lx#;pm{z?~4 zWmR1W5w}e!UEZXgV!dl8cD zmQQ*OB!7{(BNR(u!KKgcy+DQl>GdCfSI}Jx4)e_K5DFz-It=u#9g$>u=aAkxkuD+v mw3j1X#%cY@ogADa{r`KE(gU2RZw?Sqe!oRwDj_|R@Ban*E+5$d literal 0 HcmV?d00001 diff --git a/source/xdrfpdb/src/xdrf/libxdrf.m4 b/source/xdrfpdb/src/xdrf/libxdrf.m4 new file mode 100644 index 0000000..a6da458 --- /dev/null +++ b/source/xdrfpdb/src/xdrf/libxdrf.m4 @@ -0,0 +1,1238 @@ +/*____________________________________________________________________________ + | + | 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 +#include +#include +/* #include +#include */ +#include "xdr.h" +#include +#include +#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; +} + + + diff --git a/source/xdrfpdb/src/xdrf/libxdrf.o b/source/xdrfpdb/src/xdrf/libxdrf.o new file mode 100644 index 0000000000000000000000000000000000000000..1f81ca3d80550270ff90ed38ee5491b18355bde9 GIT binary patch literal 20104 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 A7ytkO literal 0 HcmV?d00001 diff --git a/source/xdrfpdb/src/xdrf/types.h b/source/xdrfpdb/src/xdrf/types.h new file mode 100644 index 0000000..871f3fd --- /dev/null +++ b/source/xdrfpdb/src/xdrf/types.h @@ -0,0 +1,99 @@ +/* + * 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 + */ +#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 /* 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 +#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 +#include + +#include + +#ifndef INADDR_LOOPBACK +#define INADDR_LOOPBACK (u_long)0x7F000001 +#endif +#ifndef MAXHOSTNAMELEN +#define MAXHOSTNAMELEN 64 +#endif + +#endif /* rpc/types.h */ diff --git a/source/xdrfpdb/src/xdrf/underscore.m4 b/source/xdrfpdb/src/xdrf/underscore.m4 new file mode 100644 index 0000000..4d620a0 --- /dev/null +++ b/source/xdrfpdb/src/xdrf/underscore.m4 @@ -0,0 +1,19 @@ +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) diff --git a/source/xdrfpdb/src/xdrf/xdr.c b/source/xdrfpdb/src/xdrf/xdr.c new file mode 100644 index 0000000..33b8544 --- /dev/null +++ b/source/xdrfpdb/src/xdrf/xdr.c @@ -0,0 +1,752 @@ +# 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 +#include +#include +#include + +#include "types.h" +#include "xdr.h" + +#ifdef USE_IN_LIBIO +# include +#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; +} diff --git a/source/xdrfpdb/src/xdrf/xdr.h b/source/xdrfpdb/src/xdrf/xdr.h new file mode 100644 index 0000000..2602ad9 --- /dev/null +++ b/source/xdrfpdb/src/xdrf/xdr.h @@ -0,0 +1,379 @@ +/* + * 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 +#include +#include "types.h" + +/* We need FILE. */ +#include + +__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; + * *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 */ diff --git a/source/xdrfpdb/src/xdrf/xdr_array.c b/source/xdrfpdb/src/xdrf/xdr_array.c new file mode 100644 index 0000000..836405c --- /dev/null +++ b/source/xdrfpdb/src/xdrf/xdr_array.c @@ -0,0 +1,174 @@ +# 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 +#include +#include "types.h" +#include "xdr.h" +#include +#include + +#ifdef USE_IN_LIBIO +# include +#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; +} diff --git a/source/xdrfpdb/src/xdrf/xdr_float.c b/source/xdrfpdb/src/xdrf/xdr_float.c new file mode 100644 index 0000000..15d3c88 --- /dev/null +++ b/source/xdrfpdb/src/xdrf/xdr_float.c @@ -0,0 +1,307 @@ +/* @(#)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 +#include + +#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); +} diff --git a/source/xdrfpdb/src/xdrf/xdr_stdio.c b/source/xdrfpdb/src/xdrf/xdr_stdio.c new file mode 100644 index 0000000..12b1709 --- /dev/null +++ b/source/xdrfpdb/src/xdrf/xdr_stdio.c @@ -0,0 +1,196 @@ +/* + * 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 +#include "xdr.h" + +#ifdef USE_IN_LIBIO +# include +# 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) */ diff --git a/source/xdrfpdb/src/xdrf/xdrf.h b/source/xdrfpdb/src/xdrf/xdrf.h new file mode 100644 index 0000000..dedf5a2 --- /dev/null +++ b/source/xdrfpdb/src/xdrf/xdrf.h @@ -0,0 +1,10 @@ +/*_________________________________________________________________ + | + | 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) ; + diff --git a/source/xdrfpdb/src/xdrf2ang.f b/source/xdrfpdb/src/xdrf2ang.f index ad533bc..5714f40 100644 --- a/source/xdrfpdb/src/xdrf2ang.f +++ b/source/xdrfpdb/src/xdrf2ang.f @@ -14,7 +14,7 @@ character*8 onethree,cfreq character*8 ucase external ucase - logical oneletter + logical oneletter,iblnk integer rescode external rescode diff --git a/source/xdrfpdb/src/xdrf2ang.o b/source/xdrfpdb/src/xdrf2ang.o new file mode 100644 index 0000000000000000000000000000000000000000..8205b015a100abb325a7fe1eb975c07fdf8c74ed GIT binary patch literal 15376 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 WzsYd!&+jvw`_rMZP@q44ru-ifdDp!F literal 0 HcmV?d00001 -- 1.7.9.5