- Timestamp:
- 09/05/08 11:49:42 (16 years ago)
- Branches:
- master
- Children:
- fafe4d6
- Parents:
- 2ebb8b6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
enysol.f
r2ebb8b6 rbd2278d 1 c**************************************************************2 c 3 cThis file contains the subroutines: enysol,tessel4 c 5 cCopyright 2003-2005 Frank Eisenmenger, U.H.E. Hansmann,6 cShura Hayryan, Chin-Ku7 cCopyright 2007 Frank Eisenmenger, U.H.E. Hansmann,8 cJan H. Meinke, Sandipan Mohanty9 c 10 c**************************************************************1 ! ************************************************************** 2 ! 3 ! This file contains the subroutines: enysol,tessel 4 ! 5 ! Copyright 2003-2005 Frank Eisenmenger, U.H.E. Hansmann, 6 ! Shura Hayryan, Chin-Ku 7 ! Copyright 2007 Frank Eisenmenger, U.H.E. Hansmann, 8 ! Jan H. Meinke, Sandipan Mohanty 9 ! 10 ! ************************************************************** 11 11 12 12 … … 14 14 15 15 include 'INCL.H' 16 c--------------------------------------------------------------17 c 18 cDouble Cubic Lattice algorithm for calculating the19 csolvation energy of proteins using20 csolvent accessible area method.21 c 22 cif nmol == 0 do solvation energy over all residues.23 cCALLS: nursat24 c 25 c-------------------------------------------------------------26 cTODO: Check the solvent energy for multiple molecules16 ! -------------------------------------------------------------- 17 ! 18 ! Double Cubic Lattice algorithm for calculating the 19 ! solvation energy of proteins using 20 ! solvent accessible area method. 21 ! 22 ! if nmol == 0 do solvation energy over all residues. 23 ! CALLS: nursat 24 ! 25 ! ------------------------------------------------------------- 26 ! TODO: Check the solvent energy for multiple molecules 27 27 dimension numbox(mxat),inbox(mxbox+1),indsort(mxat),look(mxat) 28 28 dimension xyz(mxinbox,3),radb(mxinbox),radb2(mxinbox) … … 95 95 diamax=2.d0*rmax 96 96 97 cThe sizes of the big box97 ! The sizes of the big box 98 98 99 99 sizex=xmax-xmin … … 101 101 sizez=zmax-zmin 102 102 103 cHow many maximal diameters in each size ?103 ! How many maximal diameters in each size ? 104 104 105 105 ndx=sizex/diamax + 1 … … 107 107 ndz=sizez/diamax + 1 108 108 109 cWe may need the number of quadratic boxes in (X,Y) plane109 ! We may need the number of quadratic boxes in (X,Y) plane 110 110 111 111 nqxy=ndx*ndy 112 112 113 cThe number of cubic boxes of the size "diamax"113 ! The number of cubic boxes of the size "diamax" 114 114 115 115 ncbox=nqxy*ndz … … 119 119 end if 120 120 121 cLet us shift the borders to home all boxes121 ! Let us shift the borders to home all boxes 122 122 123 123 shiftx=(dble(ndx)*diamax-sizex)/2.d0 … … 131 131 zmax=zmax+shiftz 132 132 133 cFinding the box of each atom133 ! Finding the box of each atom 134 134 135 135 do j=nlow,nup … … 153 153 end do 154 154 155 cSummation over the boxes155 ! Summation over the boxes 156 156 157 157 do i=1,ncbox … … 160 160 161 161 162 cSorting the atoms by the their box numbers162 ! Sorting the atoms by the their box numbers 163 163 164 164 do i=nlow,nup … … 169 169 end do 170 170 171 cGetting started171 ! Getting started 172 172 173 173 do iz=0,ndz-1 ! Over the boxes along Z-axis … … 177 177 ibox=ix+iy*ndx+iz*nqxy + 1 178 178 179 cDoes this box contain atoms ?179 ! Does this box contain atoms ? 180 180 181 181 lbn=inbox(ibox+1)-inbox(ibox) … … 189 189 nez=min(iz+1,ndz-1) 190 190 191 cAtoms in the boxes around191 ! Atoms in the boxes around 192 192 193 193 jcnt=1 … … 221 221 dr=1.0d0+akrad 222 222 dr=dr*dr 223 cc if contact223 !c if contact 224 224 if(dd.le.dr) then 225 225 nnei=nnei+1 … … 232 232 end if 233 233 end do 234 cc234 !c 235 235 do il=1,npnt 236 236 surfc(il)=.false. 237 237 end do 238 238 239 cCheck overlap239 ! Check overlap 240 240 241 241 lst=1 … … 279 279 area = sdr*dble(icount) 280 280 volume = sdr/3.0d0*(trad*dble(icount) 281 #+(xat(jbi)-avr_x)*dx282 #+(yat(jbi)-avr_y)*dy283 #+(zat(jbi)-avr_z)*dz)281 & +(xat(jbi)-avr_x)*dx 282 & +(yat(jbi)-avr_y)*dy 283 & +(zat(jbi)-avr_z)*dz) 284 284 285 285 asa=asa+area 286 286 vdvol=vdvol+volume 287 287 eysl=eysl+area*sigma(jbi) 288 cSeparate hydrophilic (h) and hyrdophobic (p) contributions to eysl288 ! Separate hydrophilic (h) and hyrdophobic (p) contributions to eysl 289 289 if (sigma(jbi).lt.0) then 290 290 eyslp = eyslp + area * sigma(jbi) … … 295 295 asah = asah + area 296 296 endif 297 cMeasure how much a residue is solvent accessible:297 ! Measure how much a residue is solvent accessible: 298 298 jres = nursat(jbi) 299 299 surfres(jres) = surfres(jres) + area … … 305 305 end do 306 306 307 c 307 ! 308 308 if (isolscl) then 309 309 nhx=0 … … 319 319 return 320 320 end 321 c*********************321 ! ********************* 322 322 subroutine tessel 323 323 include 'INCL.H' 324 324 character lin*80 325 325 326 c Skipping comment lines, which begin with '!' 327 326 ! Skipping comment lines, which begin with '!' 328 327 read(20,'(a)') lin 329 328 do while(lin(1:1).eq.'!') … … 331 330 end do 332 331 333 cThe first non-comment line is the number of the surface points332 ! The first non-comment line is the number of the surface points 334 333 335 334 read(lin(1:5),'(i5)') npnt 336 cwrite(*,'(a,i5)') 'the number of points---->',npnt337 338 cRead the surface points335 ! write(*,'(a,i5)') 'the number of points---->',npnt 336 337 ! Read the surface points 339 338 340 339 do i=1,npnt 341 340 read(20,'(3f20.10)') spoint(i,1),spoint(i,2),spoint(i,3) 342 343 c write(31,'(3f20.10)') spoint(i,1),spoint(i,2),spoint(i,3) 341 ! write(31,'(3f20.10)') spoint(i,1),spoint(i,2),spoint(i,3) 344 342 end do 345 343
Note:
See TracChangeset
for help on using the changeset viewer.