~ubuntu-branches/ubuntu/utopic/nwchem/utopic

« back to all changes in this revision

Viewing changes to src/nwpw/pspw/lib/exchange-correlation/v_bwexc_all.F

  • Committer: Package Import Robot
  • Author(s): Michael Banck, Daniel Leidert, Andreas Tille, Michael Banck
  • Date: 2013-07-04 12:14:55 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20130704121455-5tvsx2qabor3nrui
Tags: 6.3-1
* New upstream release.
* Fixes anisotropic properties (Closes: #696361).
* New features include:
  + Multi-reference coupled cluster (MRCC) approaches
  + Hybrid DFT calculations with short-range HF 
  + New density-functionals including Minnesota (M08, M11) and HSE hybrid
    functionals
  + X-ray absorption spectroscopy (XAS) with TDDFT
  + Analytical gradients for the COSMO solvation model
  + Transition densities from TDDFT 
  + DFT+U and Electron-Transfer (ET) methods for plane wave calculations
  + Exploitation of space group symmetry in plane wave geometry optimizations
  + Local density of states (LDOS) collective variable added to Metadynamics
  + Various new XC functionals added for plane wave calculations, including
    hybrid and range-corrected ones
  + Electric field gradients with relativistic corrections 
  + Nudged Elastic Band optimization method
  + Updated basis sets and ECPs 

[ Daniel Leidert ]
* debian/watch: Fixed.

[ Andreas Tille ]
* debian/upstream: References

[ Michael Banck ]
* debian/upstream (Name): New field.
* debian/patches/02_makefile_flags.patch: Refreshed.
* debian/patches/06_statfs_kfreebsd.patch: Likewise.
* debian/patches/07_ga_target_force_linux.patch: Likewise.
* debian/patches/05_avoid_inline_assembler.patch: Removed, no longer needed.
* debian/patches/09_backported_6.1.1_fixes.patch: Likewise.
* debian/control (Build-Depends): Added gfortran-4.7 and gcc-4.7.
* debian/patches/10_force_gcc-4.7.patch: New patch, explicitly sets
  gfortran-4.7 and gcc-4.7, fixes test suite hang with gcc-4.8 (Closes:
  #701328, #713262).
* debian/testsuite: Added tests for COSMO analytical gradients and MRCC.
* debian/rules (MRCC_METHODS): New variable, required to enable MRCC methods.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
*
 
2
* $Id: v_bwexc.F 22964 2012-10-08 16:26:17Z bylaska $
 
3
*
 
4
      
 
5
 
 
6
*    ************************************
 
7
*    *                                  *
 
8
*    *          v_bwexc_all             *       
 
9
*    *                                  *
 
10
*    ************************************
 
11
      subroutine v_bwexc_all(gga,n2ft3d,ispin,dn,xcp,xce)
 
12
      implicit none
 
13
      integer gga
 
14
      integer n2ft3d     
 
15
      integer  ispin     
 
16
      real*8  dn(n2ft3d,2)
 
17
      real*8  xcp(n2ft3d,2),xce(n2ft3d)
 
18
      
 
19
      
 
20
#include "mafdecls.fh"
 
21
#include "errquit.fh"
 
22
#include "nwxc.fh"
 
23
 
 
24
      integer tmp1(2)
 
25
      
 
26
*     **** lda's ****
 
27
      if ((.not.nwxc_is_on().and.gga.eq.0).or.
 
28
     +    (nwxc_is_on().and.nwxc_is_lda())) then
 
29
         if (.not.MA_push_get(mt_dbl,(ispin*n2ft3d),'tmp1',
 
30
     >                        tmp1(2),tmp1(1)))
 
31
     >      call errquit('v_bwexc_all: out of stack memory',0,MA_ERR)
 
32
 
 
33
         call vxc(n2ft3d,ispin,dn,xcp,xce,dbl_mb(tmp1(1)))
 
34
 
 
35
        if (.not.MA_pop_stack(tmp1(2)))
 
36
     >     call errquit('v_bwexc_all: error popping stack',0,MA_ERR)
 
37
 
 
38
 
 
39
 
 
40
*     **** gga's ****
 
41
      else if ((.not.nwxc_is_on().and.(gga.ge.10).and.(gga.lt.100)).or.
 
42
     +         (nwxc_is_on().and.nwxc_is_gga())) then
 
43
         call v_bwexc(gga,n2ft3d,ispin,dn,1.0d0,1.0d0,xcp,xce)
 
44
      
 
45
*     **** meta-gga's ****
 
46
      else if (nwxc_is_mgga()) then
 
47
         call v_mexc(gga,n2ft3d,ispin,dn,1.0d0,1.0d0,xcp,xce)
 
48
 
 
49
*     **** hybrid gga's ****
 
50
      else if (gga.eq.110) then
 
51
         call v_bwexc(10,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
 
52
      else if (gga.eq.111) then
 
53
         call v_bwexc(11,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
 
54
      else if (gga.eq.112) then
 
55
         call v_bwexc(12,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
 
56
      else if (gga.eq.114) then
 
57
         call v_bwexc(14,n2ft3d,ispin,dn,1.00d0,1.0d0,xcp,xce)
 
58
      else if (gga.eq.115) then
 
59
         call v_bwexc(15,n2ft3d,ispin,dn,0.80d0,1.0d0,xcp,xce)
 
60
      end if
 
61
        
 
62
      return
 
63
      end
 
64
 
 
65
 
 
66
 
 
67
*    ************************************
 
68
*    *                                  *
 
69
*    *          v_bwexc_all_tmp1        *
 
70
*    *                                  *
 
71
*    ************************************
 
72
      subroutine v_bwexc_all_tmp1(gga,n2ft3d,ispin,dn,xcp,xce,tmp1)
 
73
      implicit none
 
74
      integer gga
 
75
      integer n2ft3d
 
76
      integer  ispin
 
77
      real*8  dn(n2ft3d,2)
 
78
      real*8  xcp(n2ft3d,2),xce(n2ft3d)
 
79
      real*8  tmp1(n2ft3d)
 
80
 
 
81
 
 
82
#include "mafdecls.fh"
 
83
#include "errquit.fh"
 
84
#include "nwxc.fh"
 
85
 
 
86
*     **** lda's ****
 
87
      if ((.not.nwxc_is_on().and.gga.eq.0).or.
 
88
     +    (nwxc_is_on().and.nwxc_is_lda())) then
 
89
 
 
90
         call vxc(n2ft3d,ispin,dn,xcp,xce,tmp1)
 
91
 
 
92
*     **** gga's ****
 
93
      else if ((.not.nwxc_is_on().and.(gga.ge.10).and.(gga.lt.100)).or.
 
94
     +         (nwxc_is_on().and.nwxc_is_gga())) then
 
95
 
 
96
         call v_bwexc(gga,n2ft3d,ispin,dn,1.0d0,1.0d0,xcp,xce)
 
97
      
 
98
*     **** hybrid gga's ****
 
99
      else if (gga.eq.110) then
 
100
         call v_bwexc(10,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
 
101
      else if (gga.eq.111) then
 
102
         call v_bwexc(11,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
 
103
      else if (gga.eq.112) then
 
104
         call v_bwexc(12,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
 
105
      else if (gga.eq.114) then
 
106
         call v_bwexc(14,n2ft3d,ispin,dn,1.00d0,1.0d0,xcp,xce)
 
107
      else if (gga.eq.115) then
 
108
         call v_bwexc(15,n2ft3d,ispin,dn,0.80d0,1.0d0,xcp,xce)
 
109
      end if
 
110
        
 
111
      return
 
112
      end
 
113
 
 
114
*    ************************************
 
115
*    *                                  *
 
116
*    *          v_bwexc_print           *
 
117
*    *                                  *
 
118
*    ************************************
 
119
      subroutine v_bwexc_print(luout,gga)
 
120
      implicit none
 
121
      integer luout,gga
 
122
 
 
123
#include "errquit.fh"
 
124
#include "nwxc.fh"
 
125
 
 
126
      if (nwxc_is_on()) then
 
127
         call nwxc_print_nwpw()
 
128
         return
 
129
      endif
 
130
      IF (gga.eq.-1) THEN
 
131
         write(luout,1131) 'off'
 
132
      ELSE IF (gga.eq.0) THEN
 
133
         write(luout,1131) 'LDA (Vosko et al) parameterization'
 
134
      ELSE IF (gga.eq.10) THEN
 
135
         write(luout,1131)
 
136
     >   'PBE96 (White and Bird) parameterization'
 
137
      ELSE IF (gga.eq.11) THEN
 
138
         write(luout,1131)
 
139
     >   'BLYP (White and Bird) parameterization'
 
140
      ELSE IF (gga.eq.12) THEN
 
141
         write(luout,1131)
 
142
     >   'revPBE (White and Bird) parameterization'
 
143
      ELSE IF (gga.eq.13) THEN
 
144
         write(luout,1131)
 
145
     >   'PBEsol (White and Bird) parameterization'
 
146
 
 
147
      ELSE IF (gga.eq.110) THEN
 
148
         write(luout,1131)
 
149
     >   'PBE0 (White and Bird) parameterization'
 
150
      ELSE IF (gga.eq.111) THEN
 
151
         write(luout,1131)
 
152
     >   'BLYP0 (White and Bird) parameterization'
 
153
      ELSE IF (gga.eq.112) THEN
 
154
         write(luout,1131)
 
155
     >   'revPBE0 (White and Bird) parameterization'
 
156
      ELSE IF (gga.eq.113) THEN
 
157
         write(luout,1131)
 
158
     >   'BNL (White and Bird) parameterization'
 
159
      ELSE IF (gga.eq.114) THEN
 
160
         write(luout,1131)
 
161
     >   'HSE (White and Bird) parameterization'
 
162
      ELSE IF (gga.eq.115) THEN
 
163
         write(luout,1131)
 
164
     >   'B3LYP (White and Bird) parameterization'
 
165
 
 
166
      ELSE IF (gga.eq.200) THEN
 
167
         write(luout,1131) 'Hartree-Fock'
 
168
      ELSE
 
169
         write(luout,1131) 'unknown parameterization'
 
170
         call errquit('bad exchange_correlation',0, INPUT_ERR)
 
171
      END IF
 
172
 
 
173
      return
 
174
 1131 FORMAT(5X,' exchange-correlation = ',A)
 
175
      end