OpenMCTDHB v2.3

schmidtortho.f

Go to the documentation of this file.
00001 C########################################################################
00002 C                                                                       #
00003 C                        SCHMIDTORTHO                                   #
00004 C                                                                       #
00005 C Library module making Schmidt-orthogonalization.                      #
00006 C                                                                       #
00007 C Contains:                                                             #
00008 C       schmidtortho: Schmidt-orthogonalizes a set of complex vectors   #
00009 C                     in column form.                                   #
00010 C                                                                       #
00011 C V7.0 MB                                                               #
00012 C########################################################################
00013 
00014 
00015 C-----------------------------------------------------------------------
00016 C                         SCHMIDTORTHO
00017 C
00018 C Schmidt-orthogonalizes a set of complex vectors,
00019 C (e.g. single-particle functions).
00020 C The vectors are the column-vectors of psi(gdim,dim)
00021 C-----------------------------------------------------------------------
00022 
00025       subroutine schmidtortho (psi,gdim,dim,ierr)
00026 
00027       implicit none
00028 
00029       integer    gdim,dim,e,e1,ierr
00030       complex*16 psi(gdim,dim),overlap
00031       real*8     norm
00032 
00033 C-----------------------------------------------------------------------
00034 C Schmidt-orthogonalize the set of functions.
00035 C The orthonormalization is made twice to remove numerical inaccuracies.
00036 C-----------------------------------------------------------------------
00037       ierr = 0
00038       do e=1,dim
00039          do e1=1,e-1
00040             call vvaxzz(psi(1,e1),psi(1,e),overlap,gdim)
00041             call xvxxzzs(overlap,psi(1,e1),psi(1,e),gdim)
00042          enddo
00043          call normvxz(psi(1,e),norm,gdim)
00044          if (norm .le. 1.0d-99 ) norm = 1.0d99
00045          call xvixdzo(norm,psi(1,e),gdim)
00046       enddo
00047 
00048       do e=1,dim
00049          do e1=1,e-1
00050             call vvaxzz(psi(1,e1),psi(1,e),overlap,gdim)
00051             call xvxxzzs(overlap,psi(1,e1),psi(1,e),gdim)
00052          enddo
00053          call normvxz(psi(1,e),norm,gdim)
00054          if( norm .le. 0.8d0 ) then
00055             ierr = e 
00056             return
00057          end if
00058          call xvixdzo(norm,psi(1,e),gdim)
00059       enddo
00060 
00061       return
00062       end
00063 
00064 
00065 C-----------------------------------------------------------------------
00066 C                            SCHMIDTORTHOD
00067 C
00068 C Schmidt-orthogonalizes (row-orthogonalization) a real quadratic
00069 C matrix psi(dim,dim).
00070 C
00071 C SS 11/98
00072 C-----------------------------------------------------------------------
00073 
00076       subroutine schmidtorthod (psi,dim)
00077 
00078       implicit none
00079 
00080       integer    dim,e,e1,i
00081       real*8 psi(dim,dim),overlap,norm
00082       call tranqxd(psi,dim)
00083 
00084 C-----------------------------------------------------------------------
00085 C Schmidt-orthogonalize the matrix.
00086 C The orthonormalization is made twice to remove numerical inaccuracies.
00087 C-----------------------------------------------------------------------
00088       do i=1,2
00089          do e=1,dim
00090             do e1=1,e-1
00091                call vvtxdd(psi(1,e1),psi(1,e),overlap,dim)
00092                call xvxxdds(overlap,psi(1,e1),psi(1,e),dim)
00093             enddo
00094             call normvxd(psi(1,e),norm,dim)
00095             call xvixddo(norm,psi(1,e),dim)
00096          enddo
00097       enddo
00098 
00099       call tranqxd(psi,dim)
00100 
00101       return
00102       end
00103 
00104 
00105 C#######################################################################
 All Namespaces Files Functions Variables