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

« back to all changes in this revision

Viewing changes to src/nwdft/rt_tddft/closedshell/zfock_cs_core_scalarzora.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
C     
 
2
C     zfock_cs_core_scalarzora.F
 
3
C
 
4
C     Calculates 1 electron scalar ZORA part (Hcore) of a closed shell
 
5
C     complex Fock matrix.  Note that input is the real part of the
 
6
C     density matrix, and output is real part of the Fock matrix.
 
7
C
 
8
 
 
9
 
 
10
      subroutine zfock_cs_core_scalarzora (params, g_densre, g_fcore)
 
11
      implicit none
 
12
 
 
13
#include "rtdb.fh"
 
14
#include "bas.fh"
 
15
#include "errquit.fh"
 
16
#include "mafdecls.fh"
 
17
#include "stdio.fh"
 
18
#include "cdft.fh"
 
19
#include "global.fh"
 
20
#include "zora.fh"
 
21
#include "rt_tddft.fh"
 
22
 
 
23
      
 
24
C     == Inputs ==
 
25
      type(rt_params_t), intent(in) :: params
 
26
      integer, intent(in)           :: g_densre
 
27
 
 
28
      
 
29
C     == Outputs ==
 
30
      integer, intent(in)           :: g_fcore 
 
31
 
 
32
      
 
33
C     == Parameters ==
 
34
      character(*), parameter  :: pname = "zfock_cs_core_scalarzora: "
 
35
 
 
36
      
 
37
C     == Variables ==
 
38
      double precision elapsed
 
39
 
 
40
 
 
41
      if (.not. do_zora)
 
42
     $     call errquit (pname//"called without ZORA active",0,0)
 
43
 
 
44
      call rt_tddft_cs_confirm (params)
 
45
 
 
46
      if (params%prof) call prof_start (elapsed)
 
47
 
 
48
 
 
49
      call ga_zero (g_fcore)      
 
50
      call ga_add (1d0, g_fcore, 1d0, params%g_zora_sf(1), g_fcore)
 
51
 
 
52
      end subroutine
 
53
 
 
54
 
 
55
 
 
56
 
 
57
      
 
58
#if 0      
 
59
      subroutine zfock_cs_core_scalarzora (params, g_densre, g_fcore)
 
60
      implicit none
 
61
 
 
62
#include "rtdb.fh"
 
63
#include "bas.fh"
 
64
#include "errquit.fh"
 
65
#include "mafdecls.fh"
 
66
#include "stdio.fh"
 
67
#include "cdft.fh"
 
68
#include "global.fh"
 
69
#include "zora.fh"
 
70
#include "rt_tddft.fh"
 
71
 
 
72
      
 
73
C     == Inputs ==
 
74
      type(rt_params_t), intent(in) :: params
 
75
      integer, intent(in)           :: g_densre
 
76
 
 
77
      
 
78
C     == Outputs ==
 
79
      integer, intent(in)           :: g_fcore 
 
80
 
 
81
      
 
82
C     == Parameters ==
 
83
      character(*), parameter  :: pname = "zfock_cs_core_scalarzora: "
 
84
 
 
85
      
 
86
C     == Variables ==
 
87
      double precision elapsed
 
88
      integer g_sf(2)           ! ZORA scalar arrays; real nbf_ao x nbf_ao
 
89
      integer g_scale_sf(2)     ! ZORA scalar energy scaling arrays; real nbf_ao x nbf_ao
 
90
      character*255 fname
 
91
 
 
92
 
 
93
C     == External ==
 
94
      logical, external ::  dft_zora_read
 
95
 
 
96
 
 
97
      if (.not. do_zora)
 
98
     $     call errquit (pname//"called without ZORA active",0,0)
 
99
 
 
100
      call rt_tddft_cs_confirm (params)
 
101
 
 
102
      if (params%prof) call prof_start (elapsed)
 
103
 
 
104
C
 
105
C     Allocation
 
106
C
 
107
      if (.not. ga_create(mt_dbl, params%nbf_ao, params%nbf_ao,
 
108
     $     "sf(1)", 0, 0, g_sf(1)))
 
109
     $     call errquit (pname//"couldnt make g_sf(1)", 0, GA_ERR)
 
110
      if (.not. ga_create(mt_dbl, params%nbf_ao, params%nbf_ao,
 
111
     $     "sf(2)", 0, 0, g_sf(2)))
 
112
     $     call errquit (pname//"couldnt make g_sf(2)", 0, GA_ERR)
 
113
 
 
114
      if (.not. ga_create(mt_dbl, params%nbf_ao, params%nbf_ao,
 
115
     $     "scale sf(1)", 0, 0, g_scale_sf(1)))
 
116
     $     call errquit (pname//"couldnt make g_sf(1)", 0, GA_ERR)
 
117
      if (.not. ga_create(mt_dbl, params%nbf_ao, params%nbf_ao,
 
118
     $     "scale sf(2)", 0, 0, g_scale_sf(2)))
 
119
     $     call errquit (pname//"couldnt make g_sf(2)", 0, GA_ERR)
 
120
 
 
121
 
 
122
C
 
123
C     Get ZORA data from file.  If we can't read it, quit--rebuilding it
 
124
C     on the fly is far too slow.  We only use g_so and g_sf, as the
 
125
C     scaling arrays are only applied to the eigenvalues in the SCF.
 
126
C
 
127
      call util_file_name ("zora_sf", .false., .false., fname)
 
128
 
 
129
      call ga_zero (g_sf)
 
130
      call ga_zero (g_scale_sf)
 
131
 
 
132
      if (ga_nodeid().eq.0)
 
133
     $     write (luout, *) pname//"todo: read in once only"
 
134
 
 
135
 
 
136
C     1 for ipol = 1
 
137
      if (.not.dft_zora_read(fname, params%nbf_ao, 1,
 
138
     $     params%nbf_ao, mult, g_sf, g_scale_sf))
 
139
     $     call errquit (pname//
 
140
     $     "failed to read scalar ZORA data from: "//trim(fname), 0, 0)
 
141
      
 
142
C      call ga_print (g_sf(1))
 
143
 
 
144
      call ga_zero (g_fcore)      
 
145
      call ga_add (1d0, g_fcore, 1d0, g_sf(1), g_fcore)
 
146
 
 
147
      if (.not. ga_destroy (g_sf(1)))
 
148
     $     call errquit (pname//"failed to destroy g_sf(1)", 0, 0)
 
149
      if (.not. ga_destroy (g_sf(2)))
 
150
     $     call errquit (pname//"failed to destroy g_sf(1)", 0, 0)
 
151
 
 
152
      if (.not. ga_destroy (g_scale_sf(1)))
 
153
     $     call errquit (pname//"failed to destroy g_scale_sf(1)", 0, 0)
 
154
      if (.not. ga_destroy (g_scale_sf(2)))
 
155
     $     call errquit (pname//"failed to destroy g_scale_sf(1)", 0, 0)
 
156
 
 
157
      if (params%prof)
 
158
     $     call prof_end (elapsed, "Fock CS core scalar ZORA")
 
159
      
 
160
      end subroutine
 
161
#endif