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