1      subroutine ga_conjg(g_a, g_b)
2c   Takes the complex conjugate of g_a and store it in g_b
3      implicit none
4#include "mafdecls.fh"
5#include "global.fh"
6#include "stdio.fh"
7c
8      integer g_a, g_b
9c
10      integer dtypea, da1, da2
11      integer dtypeb, db1, db2
12      integer iloa, ihia, jloa, jhia
13      integer ilob, ihib, jlob, jhib
14      integer iA, lda
15      integer iB, ldb
16c
17      call ga_inquire(g_a, dtypea, da1, da2)
18      call ga_inquire(g_b, dtypeb, db1, db2)
19      if(dtypea .ne. mt_dcpl .or. dtypeb .ne. mt_dcpl) then
20        call ga_error('ga_conj: arrays must be complex')
21      end if
22      call ga_zero(g_b)
23c
24      call ga_distribution(g_a, ga_nodeid(), iloa, ihia, jloa, jhia)
25      call ga_distribution(g_b, ga_nodeid(), ilob, ihib, jlob, jhib)
26c      write(luout,*) "nodeid:", ga_nodeid()
27      call ga_access(g_a, iloa, ihia, jloa, jhia, iA, lda)
28      call ga_access(g_b, ilob, ihib, jlob, jhib, iB, ldb)
29c      write(luout,*) "access"
30c      write(luout,*) "lo:", ilo, jlo
31c      write(luout,*) "hi:", ihi, jhi
32      call conjGA(dcpl_mb(iA), ihia-iloa+1, jhia-jloa+1,
33     $            dcpl_mb(iB), ihib-ilob+1, jhib-jlob+1)
34c      write(luout,*) "conjugated"
35      call ga_release_update(g_a, iloa, ihia, jloa, jhia)
36      call ga_release_update(g_b, ilob, ihib, jlob, jhib)
37c      write(luout,*) "released"
38      call ga_sync()
39
40      end subroutine ga_conjg
41
42      subroutine conjGA(A, arows, acols, B, brows, bcols)
43      implicit none
44#include "stdio.fh"
45c
46      integer arows, acols
47      complex*16 A(arows, acols)
48      integer brows, bcols
49      complex*16 B(brows, bcols)
50c      write(luout,*) A
51      B = conjg(A)
52      end subroutine conjGA
53