1c 2c 3c ################################################### 4c ## COPYRIGHT (C) 2017 by Jay William Ponder ## 5c ## All Rights Reserved ## 6c ################################################### 7c 8c ############################################################## 9c ## ## 10c ## subroutine ommdata -- transfer Tinker data to OpenMM ## 11c ## ## 12c ############################################################## 13c 14c 15c "ommdata" uses calls to the OpenMM interface to copy data 16c from Tinker modules to the corresponding OpenMM structures 17c 18c 19 subroutine ommdata () 20 use angbnd 21 use angpot 22 use angtor 23 use atomid 24 use atoms 25 use bath 26 use bitor 27 use bndpot 28 use bndstr 29 use bound 30 use boxes 31 use cell 32 use charge 33 use chgpot 34 use couple 35 use deriv 36 use energi 37 use ewald 38 use freeze 39 use group 40 use imptor 41 use inform 42 use ktrtor 43 use kvdwpr 44 use kvdws 45 use limits 46 use mdstuf 47 use molcul 48 use moldyn 49 use mplpot 50 use mpole 51 use mutant 52 use nonpol 53 use opbend 54 use openmm 55 use pitors 56 use pme 57 use polar 58 use polgrp 59 use polopt 60 use polpot 61 use potent 62 use restrn 63 use sizes 64 use solpot 65 use solute 66 use stodyn 67 use strbnd 68 use strtor 69 use torpot 70 use tors 71 use tortor 72 use units 73 use urey 74 use urypot 75 use usage 76 use vdw 77 use vdwpot 78 implicit none 79c 80c 81c use C++ interface calls to map Tinker variables to OpenMM 82c 83 call set_angbnd_data (nangle,iang,ak,anat,afld) 84 call set_angpot_data (angunit,stbnunit,aaunit,opbunit,opdunit, 85 & cang,qang,pang,sang,copb,qopb,popb,sopb, 86 & copd,qopd,popd,sopd,opbtyp,angtyp) 87 call set_angtor_data (nangtor,iat,kant) 88 call set_atomid_data (tag,class,atomic,valence,mass,name,story) 89 call set_atoms_data (n,type,x,y,z) 90 call set_bath_data (maxnose,voltrial,kelvin,atmsph,tautemp, 91 & taupres,compress,collide,eta,volmove,vbar, 92 & qbar,gbar,vnh,qnh,gnh,isothermal,isobaric, 93 & anisotrop,volscale,barostat,thermostat) 94 call set_bitor_data (nbitor,ibitor) 95 call set_bndpot_data (cbnd,qbnd,bndunit,bndtyp) 96 call set_bndstr_data (nbond,ibnd,bk,bl) 97 call set_bound_data (polycut,polycut2,use_bounds,use_replica, 98 & use_polymer) 99 call set_boxes_data (xbox,ybox,zbox,alpha,beta,gamma,xbox2, 100 & ybox2,zbox2,box23,volbox,alpha_sin,alpha_cos, 101 & beta_sin,beta_cos,gamma_sin,gamma_cos, 102 & beta_term,gamma_term,lvec,recip,orthogonal, 103 & monoclinic,triclinic,octahedron,dodecadron, 104 & nonprism,spacegrp) 105 call set_cell_data (ncell,icell,xcell,ycell,zcell, 106 & xcell2,ycell2,zcell2) 107 call set_charge_data (nion,iion,jion,kion,pchg) 108 call set_chgpot_data (electric,dielec,ebuffer,c2scale,c3scale, 109 & c4scale,c5scale,neutnbr,neutcut) 110 call set_couple_data (n12,n13,n14,n15,i12,i13,i14,i15) 111 call set_deriv_data (desum,deb,dea,deba,deub,deaa,deopb,deopd, 112 & deid,deit,det,dept,debt,deat,dett,dev,der, 113 & dedsp,dec,decd,ded,dem,dep,dect,derxf, 114 & des,delf,deg,dex) 115 call set_energi_data (esum,eb,ea,eba,eub,eaa,eopb,eopd,eid,eit, 116 & et,ept,ebt,eat,ett,ev,er,edsp,ec,ecd,ed, 117 & em,ep,ect,erxf,es,elf,eg,ex) 118 call set_ewald_data (aewald,aeewald,apewald,adewald,boundary) 119 call set_freeze_data (nrat,nratx,iratx,kratx,irat,rateps, 120 & krat,use_rattle,ratimage) 121 call set_group_data (ngrp,kgrp,grplist,igrp,grpmass,wgrp, 122 & use_group,use_intra,use_inter) 123 call set_imptor_data (nitors,iitors,itors1,itors2,itors3) 124 call set_inform_data (maxask,digits,iprint,iwrite,isend, 125 & silent,verbose,debug,holdup,abort) 126 call set_ktrtor_data (maxntt,maxtgrd,maxtgrd2,tnx,tny, 127 & ttx,tty,tbf,tbx,tby,tbxy,ktt) 128 call set_kvdwpr_data (maxnvp,radpr,epspr,kvpr) 129 call set_kvdws_data (rad,eps,rad4,eps4,reduct) 130 call set_limits_data (vdwcut,repcut,dispcut,chgcut,dplcut, 131 & mpolecut,ctrncut,vdwtaper,reptaper, 132 & disptaper,chgtaper,dpltaper,mpoletaper, 133 & ctrntaper,ewaldcut,dewaldcut,usolvcut, 134 & use_ewald,use_dewald,use_lights,use_list, 135 & use_vlist,use_dlist,use_clist,use_mlist, 136 & use_ulist) 137 call set_mdstuf_data (nfree,irest,bmnmix,arespa,dorest,integrate) 138 call set_molcul_data (nmol,imol,kmol,molcule,totmass,molmass) 139 call set_moldyn_data (v,a,aalt) 140 call set_mplpot_data (m2scale,m3scale,m4scale,m5scale,use_chgpen) 141 call set_mpole_data (maxpole,npole,ipole,polsiz,pollist, 142 & zaxis,xaxis,yaxis,pole,rpole,spole, 143 & srpole,polaxe) 144 call set_mutant_data (nmut,vcouple,imut,type0,class0,type1, 145 & class1,lambda,tlambda,vlambda,elambda, 146 & scexp,scalpha,mut) 147 call set_nonpol_data (epso,epsh,rmino,rminh,awater,slevy, 148 & solvprs,surften,spcut,spoff,stcut, 149 & stoff,rcav,rdisp,cdisp) 150 call set_opbend_data (nopbend,iopb,opbk) 151 call set_openmm_data (ommHandle,cudaPrecision, 152 & ommPlatform,cudaDevice) 153 call set_pitors_data (npitors,ipit,kpit) 154 call set_pme_data (nfft1,nfft2,nfft3,nefft1,nefft2,nefft3,ndfft1, 155 & ndfft2,ndfft3,bsorder,bseorder,bsporder, 156 7 bsdorder,igrid,bsmod1,bsmod2,bsmod3,bsbuild, 157 & thetai1,thetai2,thetai3,qgrid,qfac) 158 call set_polar_data (npolar,ipolar,polarity,thole,dirdamp,pdamp, 159 & udir,udirp,udirs,udirps,uind,uinp,uinds, 160 & uinps,uexact,douind) 161 call set_polgrp_data (maxp11,maxp12,maxp13,maxp14,np11, 162 & np12,np13,np14,ip11,ip12,ip13,ip14) 163 call set_polopt_data (maxopt,optorder,optlevel,copt,copm, 164 & uopt,uoptp,uopts,uoptps,fopt,foptp) 165 call set_polpot_data (politer,poleps,p2scale,p3scale,p4scale, 166 & p5scale,p2iscale,p3iscale,p4iscale,p5iscale, 167 & d1scale,d2scale,d3scale,d4scale,u1scale, 168 & u2scale,u3scale,u4scale,w2scale,w3scale, 169 & w4scale,w5scale,udiag,polprt,dpequal, 170 & use_thole,use_dirdamp,poltyp) 171 call set_potent_data (use_bond,use_angle,use_strbnd,use_urey, 172 & use_angang,use_opbend,use_opdist,use_improp, 173 & use_imptor,use_tors,use_pitors,use_strtor, 174 & use_angtor,use_tortor,use_vdw,use_repuls, 175 & use_disp,use_charge,use_chgdpl,use_dipole, 176 & use_mpole,use_polar,use_chgtrn,use_chgflx, 177 & use_rxnfld,use_solv,use_metal,use_geom, 178 & use_extra,use_born,use_orbit) 179 call set_restrn_data (npfix,ndfix,nafix,ntfix,ngfix,nchir,ipfix, 180 & kpfix,idfix,iafix,itfix,igfix,ichir,depth, 181 & width,rwall,xpfix,ypfix,zpfix,pfix,dfix, 182 & afix,tfix,gfix,chir,use_basin,use_wall) 183 call set_sizes_data (maxatm,maxtyp,maxclass,maxval,maxref, 184 & maxgrp,maxres,maxfix) 185 call set_solpot_data (solvtyp,borntyp) 186 call set_solute_data (doffset,p1,p2,p3,p4,p5,rsolv,asolv,rborn, 187 & drb,drbp,drobc,gpol,shct,aobc,bobc,gobc, 188 & vsolv,wace,s2ace,uace) 189 call set_stodyn_data (friction,fgamma,use_sdarea) 190 call set_strbnd_data (nstrbnd,isb,sbk) 191 call set_strtor_data (nstrtor,ist,kst) 192 call set_torpot_data (idihunit,itorunit,torsunit,ptorunit, 193 & storunit,atorunit,ttorunit) 194 call set_tors_data (ntors,itors,tors1,tors2,tors3, 195 & tors4,tors5,tors6) 196 call set_tortor_data (ntortor,itt) 197 call set_units_data (avogadro,lightspd,boltzmann,gasconst,elemchg, 198 & vacperm,emass,planck,joule,ekcal,bohr, 199 & hartree,evolt,efreq,coulomb,debye,prescon) 200 call set_urey_data (nurey,iury,uk,ul) 201 call set_urypot_data (cury,qury,ureyunit) 202 call set_usage_data (nuse,iuse,use) 203 call set_vdw_data (nvdw,ivdw,jvdw,ired,kred,xred,yred,zred,radmin, 204 & epsilon,radmin4,epsilon4,radhbnd,epshbnd) 205 call set_vdwpot_data (maxgauss,ngauss,igauss,abuck,bbuck,cbuck, 206 & ghal,dhal,v2scale,v3scale,v4scale,v5scale, 207 & use_vcorr,vdwindex,radtyp,radsiz,gausstyp, 208 & radrule,epsrule,vdwtyp) 209 return 210 end 211