1c===============================================================================================
2ccase...Coulomb attenuation utilities
3c===============================================================================================
4c     need to initialize doscreen since case_setflags might not be called
5      block data case_data
6#include "case.fh"
7      data doscreen /.false./
8      data cam_srhf /.false./
9      end
10c
11      subroutine case_setflags(screenflag)
12
13c     Turn on/off the attenuation based on the screenflag
14
15      implicit none
16
17#include "stdio.fh"
18#include "mafdecls.fh"
19#include "case.fh"
20
21      logical screenflag
22
23      doscreen = .false.
24      doscreen = screenflag
25      call ga_sync()   ! synchronise over all processors
26
27      return
28      end
29c
30c===============================================================================================
31ccase...Calculate the Coulomb attenuation (CASE) factors
32c===============================================================================================
33c
34c================================================================================================
35ccase...For the Texas 2e4c integrals
36c================================================================================================
37c
38      subroutine case_txs(rho, rys, const)
39
40      implicit none
41
42#include "stdio.fh"
43#include "mafdecls.fh"
44#include "case.fh"
45
46      double precision rho, rys, const
47      double precision cam_omega2,mu
48
49c     Calculate the screening factors
50      mu = 1.d0
51      cam_omega2 = cam_omega*cam_omega
52      if (doscreen) mu = cam_omega2/(cam_omega2 + rho)
53
54c     Debug print
55c     write(luout,*) "In case_txs: cam_omega:",cam_omega
56c     write(luout,*) "In case_txs: cam_exch:",cam_exch
57c     write(luout,*) "In case_txs: doscreen:",doscreen
58
59c     Multiply in the screening factors
60      rys = mu*rys
61      const = const*dsqrt(mu)
62c
63      return
64      end
65c
66c=================================================================================================
67ccase...For the McMurchie-Davidson 2e4c integrals
68c=================================================================================================
69c
70      subroutine case_md(rho)
71
72      implicit none
73
74#include "stdio.fh"
75#include "mafdecls.fh"
76#include "case.fh"
77
78      double precision rho
79      double precision cam_omega2,mu
80
81c     Calculate the screening factors
82      mu = 1.d0
83      cam_omega2 = cam_omega*cam_omega
84      if (doscreen) mu = cam_omega2/(cam_omega2 + rho)
85c
86c     Debug print
87c     write(luout,*) "In case_md: cam_omega:",cam_omega
88c     write(luout,*) "In case_md: cam_exch:",cam_exch
89c     write(luout,*) "In case_md: doscreen:",doscreen
90
91c     Multiply in the screening factors
92      rho = mu*rho
93c
94      return
95      end
96c $Id$
97