Changeset 8d0e6d6


Ignore:
Timestamp:
11/19/09 11:29:11 (14 years ago)
Author:
baerbaer <baerbaer@…>
Branches:
master
Children:
ffd2d46
Parents:
5ae43a7
Message:

Make grad an allocatable rather than a static array.

The array grad(mxat, mxat, 3) in the function esolan caused memory
problems when the number of residues was chosen large even when the analytic
solvent calculation isn't used.
Now, the array is allocated dynamically and only when the function is called. It
is deallocated when esolan is done.

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/smmp/trunk@23 26dc1dd8-5c4e-0410-9ffe-d298b4865968

File:
1 edited

Legend:

Unmodified
Added
Removed
  • esolan.f

    r5ae43a7 r8d0e6d6  
    4444     
    4545     
     46      integer nmol, ks0, ks2
     47Cf2py intent(in) nmol
     48     
    4649      parameter (ks0=mxat*(mxat+1))
    4750      parameter (ks2=mxat+mxat)
    48      
    49       dimension neib(0:mxat),vertex(ks0,4),ax(ks0,2),
    50      &          pol(mxat),neibp(0:mxat),as(mxat),ayx(ks0,2),
    51      &          ayx1(ks0),probe(ks0),dd(mxat),ddat(mxat,4),ivrx(ks0)
    52        
    53       dimension grad(mxat,mxat,3),dadx(4,3),gp(4),dalp(4),dbet(4),
     51! Functions
     52      real*8 grnd
     53
     54      integer neib, neibp, ivrx, iv, ial, i, ij, j, iii, idi,ivr, ifu,
     55     &          ita2, ita3, ine, kk, j2, jkk, jjj, jj, jk, k, l, ll,
     56     &          nb, numat, nyx
     57      real*8 vertex, ax, pol, as, ayx, ayx1, probe, dd, ddat, dadx, gp,
     58     &          dalp,dbet, daalp, dabet, vrx, dv, dx, dy, dz, dt, di,
     59     &          dii, ss, dta, dtb, di1, di2, gs, xold, yold, zold,
     60     &          energy, sss, a1, a, ab1, a2, aa, ac2, ac1, ab2, am2,
     61     &          am, aia, ak, alp, am1, ap1, amibe, amabe, amaal, amial,
     62     &          ang, D, ddp, cf, b2, arg2, arg1, ap2, b, b1, b2c2, ca,
     63     &          ba, bcd, bc, bet, c1, c, c2, cc, sfcg, caba, cg, cfsg,
     64     &          cfcg, daba, ct, cs, d1, d2, dbe, dal, dcotbma, dcbet,
     65     &          dcalp, dcbetmalp, dcbetpalp, ddp2, div, dsbetmalp,
     66     &          dsalp, dsbet, yy, dsbetpalp, enr, p1, p2, r42, r22,
     67     &          r22p, r2, pom, prob, r, r42p, ratom, rr, s, sfsg, sf,
     68     &          sg, vv1, t, ufi, tt, uga, uv, vv, vv2, wv, xx, xv, yv,
     69     &          zz, zv
     70      dimension neib(0:mxat),neibp(0:mxat),ivrx(ks0)
     71      dimension vertex(ks0,4),ax(ks0,2),
     72     &          pol(mxat),as(mxat),ayx(ks0,2),
     73     &          ayx1(ks0),probe(ks0),dd(mxat),ddat(mxat,4)
     74      dimension dadx(4,3),gp(4),dalp(4),dbet(4),
    5475     &   daalp(4),dabet(4),vrx(ks0,4),dv(4),dx(4),dy(4),dz(4),dt(4),
    5576     &   di(4),dii(4,3),ss(mxat),dta(4),dtb(4),di1(4),di2(4),gs(3)
     
    5778      integer ta2(0:mxat),ta3(0:mxat),fullarc(0:mxat),al(0:ks2)
    5879      real*8 neibor(mxat,4)
     80     
     81      real*8, dimension(:, :, :), allocatable :: grad
     82     
     83      allocate(grad(mxat, mxat, 3))
    5984     
    6085     
     
    10131038
    10141039      esolan=sss
    1015 
     1040     
     1041      deallocate(grad)
    10161042!     close(3)
    10171043      return
Note: See TracChangeset for help on using the changeset viewer.