Changeset bd2278d for enysol_p.f
- Timestamp:
- 09/05/08 11:49:42 (16 years ago)
- Branches:
- master
- Children:
- fafe4d6
- Parents:
- 2ebb8b6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
enysol_p.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 … … 16 16 include 'mpif.h' 17 17 18 c--------------------------------------------------------------19 c 20 cDouble Cubic Lattice algorithm for calculating the21 csolvation energy of proteins using22 csolvent accessible area method.23 c 24 cif nmol == 0 do solvation energy over all residues.25 cCALLS: nursat26 c 27 c-------------------------------------------------------------28 cTODO: Check the solvent energy for multiple molecules18 ! -------------------------------------------------------------- 19 ! 20 ! Double Cubic Lattice algorithm for calculating the 21 ! solvation energy of proteins using 22 ! solvent accessible area method. 23 ! 24 ! if nmol == 0 do solvation energy over all residues. 25 ! CALLS: nursat 26 ! 27 ! ------------------------------------------------------------- 28 ! TODO: Check the solvent energy for multiple molecules 29 29 dimension numbox(mxat),inbox(mxbox+1),indsort(mxat),look(mxat) 30 30 dimension xyz(mxinbox,3),radb(mxinbox),radb2(mxinbox) … … 101 101 diamax=2.d0*rmax 102 102 103 cThe sizes of the big box103 ! The sizes of the big box 104 104 105 105 sizex=xmax-xmin … … 107 107 sizez=zmax-zmin 108 108 109 cHow many maximal diameters in each size ?109 ! How many maximal diameters in each size ? 110 110 111 111 ndx=sizex/diamax + 1 … … 113 113 ndz=sizez/diamax + 1 114 114 115 cWe may need the number of quadratic boxes in (X,Y) plane115 ! We may need the number of quadratic boxes in (X,Y) plane 116 116 117 117 nqxy=ndx*ndy 118 118 119 cThe number of cubic boxes of the size "diamax"119 ! The number of cubic boxes of the size "diamax" 120 120 121 121 ncbox=nqxy*ndz … … 125 125 end if 126 126 127 cLet us shift the borders to home all boxes127 ! Let us shift the borders to home all boxes 128 128 129 129 shiftx=(dble(ndx)*diamax-sizex)/2.d0 … … 137 137 zmax=zmax+shiftz 138 138 139 cFinding the box of each atom139 ! Finding the box of each atom 140 140 141 141 do j=nlow,nup … … 159 159 end do 160 160 161 cSummation over the boxes161 ! Summation over the boxes 162 162 163 163 do i=1,ncbox … … 166 166 167 167 168 cSorting the atoms by the their box numbers168 ! Sorting the atoms by the their box numbers 169 169 170 170 do i=nlow,nup … … 175 175 end do 176 176 177 cGetting started178 cWe have to loop over ncbox boxes and have no processors available177 ! Getting started 178 ! We have to loop over ncbox boxes and have no processors available 179 179 boxpp = 1.0 * ncbox / no 180 180 iboxmin = boxpp * myrank … … 191 191 ! ibox=ix+iy*ndx+iz*nqxy + 1 192 192 193 cDoes this box contain atoms ?193 ! Does this box contain atoms ? 194 194 195 195 lbn=inbox(ibox+1)-inbox(ibox) … … 203 203 nez=min(iz+1,ndz-1) 204 204 205 cAtoms in the boxes around205 ! Atoms in the boxes around 206 206 207 207 jcnt=1 … … 235 235 dr=1.0d0+akrad 236 236 dr=dr*dr 237 cc if contact237 !c if contact 238 238 if(dd.le.dr) then 239 239 nnei=nnei+1 … … 246 246 end if 247 247 end do 248 cc248 !c 249 249 do il=1,npnt 250 250 surfc(il)=.false. 251 251 end do 252 252 253 cCheck overlap253 ! Check overlap 254 254 255 255 lst=1 … … 293 293 area = sdr*dble(icount) 294 294 volume = sdr/3.0d0*(trad*dble(icount) 295 #+(xat(jbi)-avr_x)*dx296 #+(yat(jbi)-avr_y)*dy297 #+(zat(jbi)-avr_z)*dz)295 & +(xat(jbi)-avr_x)*dx 296 & +(yat(jbi)-avr_y)*dy 297 & +(zat(jbi)-avr_z)*dz) 298 298 299 299 asa=asa+area 300 300 vdvol=vdvol+volume 301 301 eysl=eysl+area*sigma(jbi) 302 cSeparate hydrophilic (h) and hyrdophobic (p) contributions to eysl302 ! Separate hydrophilic (h) and hyrdophobic (p) contributions to eysl 303 303 if (sigma(jbi).lt.0) then 304 304 eyslp = eyslp + area * sigma(jbi) … … 309 309 asah = asah + area 310 310 endif 311 cMeasure how much a residue is solvent accessible:311 ! Measure how much a residue is solvent accessible: 312 312 jres = nursat(jbi) 313 313 surfres(jres) = surfres(jres) + area … … 332 332 & endwtime - startwtime, "s" 333 333 endif 334 c 334 ! 335 335 if (isolscl) then 336 336 nhx=0 … … 346 346 return 347 347 end 348 c*********************348 ! ********************* 349 349 subroutine tessel 350 350 include 'INCL.H' 351 351 character lin*80 352 352 353 cSkipping comment lines, which begin with '!'353 ! Skipping comment lines, which begin with '!' 354 354 355 355 read(20,'(a)') lin … … 358 358 end do 359 359 360 cThe first non-comment line is the number of the surface points360 ! The first non-comment line is the number of the surface points 361 361 362 362 read(lin(1:5),'(i5)') npnt 363 cwrite(*,'(a,i5)') 'the number of points---->',npnt364 365 cRead the surface points363 ! write(*,'(a,i5)') 'the number of points---->',npnt 364 365 ! Read the surface points 366 366 367 367 do i=1,npnt 368 368 read(20,'(3f20.10)') spoint(i,1),spoint(i,2),spoint(i,3) 369 369 370 cwrite(31,'(3f20.10)') spoint(i,1),spoint(i,2),spoint(i,3)370 ! write(31,'(3f20.10)') spoint(i,1),spoint(i,2),spoint(i,3) 371 371 end do 372 372
Note:
See TracChangeset
for help on using the changeset viewer.