src/alphas.f90: corrections to LIMIT option in READ PAIRS
authorAnthony Stone <ajs1@cam.ac.uk>
Tue, 11 Sep 2018 13:26:40 +0000 (14:26 +0100)
committerAnthony Stone <ajs1@cam.ac.uk>
Tue, 11 Sep 2018 13:26:40 +0000 (14:26 +0100)
src/alphas.f90
src/listinds.f90

index e728130..c1e40f6 100644 (file)
@@ -266,7 +266,7 @@ do
     !  molecule
     k = head(mol)
     firstp(mol) = 0
-    ! print "(a)", "Polarizable sites"
+    if (verbose) print "(/a)", "Summary of polarizable sites:"
     do while (k > 0)
       if (ps(k) > 0) then
         if (firstp(mol) == 0) then
@@ -276,7 +276,8 @@ do
         endif
         pk = k
         nextp(k) = 0
-        ! print "(i2, 1x, a, 5i3)", k, name(k), ps(k), pr(k), pz(k), ixa(k,k), la(ixa(k,k))
+        if (verbose) print "(i3,1x,2a, i1, a,i1, a, i0)", k, name(k),   &
+            " rank ", pr(k), "  limit ", lq(pz(k)), "  ps ", ps(k)
       endif
       k = next(k)
     end do
@@ -1004,7 +1005,6 @@ if (datafile .ne. "") then
 end if
 switch(3)=.true.
 print "(a)", "Done"
-!  call flush(6)
 
 END SUBROUTINE read_alphas
 
@@ -1041,7 +1041,9 @@ do while (item < nitems)
     if (limit > maxla) then
       call die('Maximum rank for polarizabilities is'//trim(stri(maxla)),.true.)
     else
-      print "(a,i0)", "Limiting polarizabilities to rank ", limit
+      print "(/a)", "LIMIT option here is DEPRECATED. Use separate LIMIT subcommand."
+      print "(a)", "All polarizabilities given will be read in."
+      print "(a,i0,a/)", "Rank will be limited to ", limit," here but may be changed subsequently."
     endif
     limsize = qsize(limit)
   case("RANK")
@@ -1156,8 +1158,8 @@ do
   lmax = max(max1,max2)
   last = (lmax+1)**2
   call getix(k1,k2,lmax,ix)
-  if (verbose) print "(i3,2x,a3,2x,i3,2x,a3, i5)",                      &
-      k1, trim(name(k1)), k2, trim(name(k2)), ix
+  if (verbose) print "(i3,2x,a3,2x,i3,2x,a3, i5)",                      &
+      k1, trim(name(k1)), k2, trim(name(k2)), ix
   alpha(:,:,ix) = 0d0
   ! call read_line(eof)
   do i = qsize(min1-1)+1,qsize(max1)
@@ -1171,10 +1173,10 @@ do
   end if
   ! la(ix) = min(lmax,limit)
   ! la(ixt) = min(lmax,limit)
-  pr(k1) = min(max(max1,pr(k1)),limit)
+  pr(k1) = max(max1,pr(k1))
   pz(k1) = min(max(pz(k1),qsize(pr(k1))),limsize)
   if (k2 .ne. k1) then
-    pr(k2) = min(max(max2,pr(k2)),limit)
+    pr(k2) = max(max2,pr(k2))
     pz(k2) = min(max(pz(k2),qsize(pr(k2))),limsize)
   end if
   !  End of this site-site polarizability matrix
@@ -1192,7 +1194,18 @@ if (datafile .ne. "") then
   call stream(5)
 end if
 switch(3)=.true.
-print "(a)", "Done"
+
+if (verbose) then
+  print "(a)", "Summary of polarizable sites as read:"
+  k1 = head(mol)
+  do while (k1 > 0)
+    if (ps(k1) > 0) then
+      print "(i3,1x,2a, i1, a,i1, a, i0)", k1, name(k1),                &
+          " rank ", pr(k1), "  limit ", lq(pz(k1)), "  ps ", ps(k1)
+    end if
+    k1 = next(k1)
+  end do
+end if
 
 END SUBROUTINE read_site_pairs
 
index 6b89ca4..1523abe 100644 (file)
@@ -11,7 +11,7 @@ USE input, ONLY : die
 USE labels
 USE molecules
 USE sites
-USE sizes
+USE sizes, ONLY: lq
 USE switches
 USE types
 USE interact
@@ -36,7 +36,8 @@ if (t1 .gt. 0 .and. t2 .gt. 0) then
 endif
 pz1 = pz(k1)
 pz2 = pz(k2)
-maxjes = min(pr(k1)+pr(k2),eslimit-1)
+maxjes = min(lq(pz1)+lq(pz2),eslimit-1)
+! maxjes = min(pr(k1)+pr(k2),eslimit-1)
 
 !  list(n) is the index number of the S function needed at position n.