Changeset 32289cd for enysol_p.f
- Timestamp:
- 11/19/09 11:29:41 (14 years ago)
- Branches:
- master
- Children:
- 38d77eb
- Parents:
- 6650a56
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
enysol_p.f
r6650a56 r32289cd 4 4 ! 5 5 ! Copyright 2003-2005 Frank Eisenmenger, U.H.E. Hansmann, 6 ! Shura Hayryan, Chin-Ku 6 ! Shura Hayryan, Chin-Ku 7 7 ! Copyright 2007 Frank Eisenmenger, U.H.E. Hansmann, 8 8 ! Jan H. Meinke, Sandipan Mohanty … … 10 10 ! ************************************************************** 11 11 12 12 13 13 real*8 function enysol(nmol) 14 14 … … 19 19 ! 20 20 ! Double Cubic Lattice algorithm for calculating the 21 ! solvation energy of proteins using 21 ! solvation energy of proteins using 22 22 ! solvent accessible area method. 23 23 ! … … 26 26 ! 27 27 ! ------------------------------------------------------------- 28 ! TODO: Check the solvent energy for multiple molecules 28 ! TODO: Check the solvent energy for multiple molecules 29 double precision startwtime, avr_x, avr_y, avr_z, xmin, ymin, zmin 30 double precision xmax, ymax, zmax, rmax, diamax, sizex, sizey 31 double precision sizez, shiftx, shifty, shiftz, boxpp, trad, dx 32 double precision dy, dz, dd, akrad, dr, xyz, radb, radb2, sdd, sdr 33 double precision area, volume, eyslsum, endwtime 34 35 integer nmol, nrslow, nrshi, nlow, nup, i, numat, inbox, j, ndx 36 integer ndy, ndz, nqxy, ncbox, mx, my, mz, nboxj, numbox, jj 37 integer indsort, iboxmin, iboxmax, ibox, iz, iy, ix, lbn, nsx, nsy 38 integer nsz, nex, ney, nez, jcnt, jz, jy, jx, jbox, ii, look, ia 39 integer jbi, nnei, ib, jtk, il, lst, ilk, ik, icount, jres, nursat 40 integer ierror, nhx, mhx, nbt, mbt 41 29 42 dimension numbox(mxat),inbox(mxbox+1),indsort(mxat),look(mxat) 30 43 dimension xyz(mxinbox,3),radb(mxinbox),radb2(mxinbox) … … 33 46 34 47 ! common/ressurf/surfres(mxrs) 35 real*8 tsurfres(mxrs) 48 real*8 tsurfres(mxrs) 36 49 startwtime = MPI_Wtime() 37 50 root = 0 … … 50 63 do i=nrslow,nrshi 51 64 surfres(i) = 0.0d0 52 end do 65 end do 53 66 54 67 numat= nup - nlow + 1 … … 57 70 inbox(i)=0 58 71 end do 59 72 60 73 asa=0.0d0 61 74 vdvol=0.0d0 … … 124 137 stop 125 138 end if 126 139 127 140 ! Let us shift the borders to home all boxes 128 141 … … 164 177 inbox(i+1)=inbox(i+1)+inbox(i) 165 178 end do 166 167 179 180 168 181 ! Sorting the atoms by the their box numbers 169 182 … … 173 186 indsort(jj)=i 174 187 inbox(j)=jj-1 175 end do 176 188 end do 189 177 190 ! Getting started 178 191 ! We have to loop over ncbox boxes and have no processors available … … 202 215 ney=min(iy+1,ndy-1) 203 216 nez=min(iz+1,ndz-1) 204 217 205 218 ! Atoms in the boxes around 206 219 … … 218 231 end do 219 232 end do 220 end do 221 233 end do 234 222 235 do ia=inbox(ibox)+1,inbox(ibox+1) 223 236 jbi=indsort(ia) … … 271 284 end do 272 285 99 continue 273 286 274 287 if(ik.gt.nnei)then 275 288 surfc(il)=.true. … … 313 326 surfres(jres) = surfres(jres) + area 314 327 end if 315 end do 328 end do 316 329 end if 317 330 ! end do 318 331 ! end do 319 332 end do 320 call MPI_ALLREDUCE(eysl, eyslsum, 1, MPI_DOUBLE_PRECISION, 333 call MPI_ALLREDUCE(eysl, eyslsum, 1, MPI_DOUBLE_PRECISION, 321 334 & MPI_SUM,my_mpi_comm, ierror) 322 335 ! write(*,*) 'enysol>', myrank, eysl, eyslsum 323 336 tsurfres = surfres 324 call MPI_ALLREDUCE(tsurfres, surfres, mxrs, MPI_DOUBLE_PRECISION, 337 call MPI_ALLREDUCE(tsurfres, surfres, mxrs, MPI_DOUBLE_PRECISION, 325 338 & MPI_SUM,my_mpi_comm, ierror) 326 339 eysl = eyslsum 327 340 328 341 endwtime = MPI_Wtime() 329 342 if (myrank.le.-1) then … … 349 362 subroutine tessel 350 363 include 'INCL.H' 364 integer i 365 351 366 character lin*80 352 367 353 ! Skipping comment lines, which begin with '!' 368 ! Skipping comment lines, which begin with '!' 354 369 355 370 read(20,'(a)') lin … … 363 378 ! write(*,'(a,i5)') 'the number of points---->',npnt 364 379 365 ! Read the surface points 380 ! Read the surface points 366 381 367 382 do i=1,npnt 368 383 read(20,'(3f20.10)') spoint(i,1),spoint(i,2),spoint(i,3) 369 384 370 385 ! write(31,'(3f20.10)') spoint(i,1),spoint(i,2),spoint(i,3) 371 386 end do 372 387 373 388 return 374 389 375 390 end 376 391
Note:
See TracChangeset
for help on using the changeset viewer.