~siesta-pseudos-bases/siesta/trunk-psml

« back to all changes in this revision

Viewing changes to Src/setup_hamiltonian.F

  • Committer: Alberto Garcia
  • Date: 2019-09-02 14:09:43 UTC
  • mfrom: (427.6.323 trunk)
  • Revision ID: albertog@icmab.es-20190902140943-mzmbe1jacgefpgxw
Sync to trunk-776 (notably nc/soc wavefunction support)


Show diffs side-by-side

added added

removed removed

Lines of Context:
88
88
!$OMP parallel default(shared), private(ispin,io)
89
89
 
90
90
!     Save present H matrix
91
 
!$OMP do collapse(2)
92
91
      do ispin = 1, spin%H
 
92
!$OMP do
93
93
         do io = 1,maxnh
94
94
            Hold(io,ispin) = H(io,ispin)
95
95
         end do
 
96
!$OMP end do nowait
96
97
      end do
97
 
!$OMP end do
98
98
 
99
99
!$OMP single
100
100
      H_kin => val(H_kin_1D)
121
121
      end do
122
122
 
123
123
      if ( spin%SO_onsite ) then
124
 
!$OMP do collapse(2)
125
124
        do ispin = 3 , spin%H
 
125
!$OMP do
126
126
          do io = 1,maxnh
127
127
            H(io,ispin) = H_so_on(io,ispin-2)
128
128
          end do
 
129
!$OMP end do nowait
129
130
        end do
130
 
!$OMP end do nowait
131
131
         
132
132
      else
133
133
 
134
 
!$OMP do collapse(2)
135
134
        do ispin = 3 , spin%H
 
135
!$OMP do
136
136
          do io = 1,maxnh
137
137
            H(io,ispin) = 0._dp
138
138
          end do
 
139
!$OMP end do nowait
139
140
        end do
140
 
!$OMP end do nowait
141
 
         
 
141
 
142
142
      end if
143
143
         
144
144
! ..................
157
157
      Eso = 0.0_dp
158
158
!$OMP end single ! keep wait
159
159
      
160
 
!$OMP do collapse(2), reduction(+:Ekin,Enl)
161
 
      do ispin = 1, spin%spinor
162
 
        do io = 1,maxnh
 
160
!$OMP do reduction(+:Ekin,Enl)
 
161
      do io = 1,maxnh
 
162
        do ispin = 1, spin%spinor
163
163
          Ekin = Ekin + H_kin(io) * Dscf(io,ispin)
164
164
          Enl  = Enl  + H_vkb(io) * Dscf(io,ispin)
165
165
        end do