1!------------------------------------------------------------------------------- 2! 3! rho2cd.f90 4! converts BerkeleyGW file RHO to PARATEC file CD 5! written by M. Jain (May 2010) 6! 7!------------------------------------------------------------------------------- 8 9#include "f_defs.h" 10 11program rho2cd 12 13 use global_m 14 use wfn_rho_vxc_io_m 15 implicit none 16 17 character(len=24) :: bdate 18 character(len=8) :: btime 19 character(len=11) :: cdate 20 character(len=14) :: stime 21 22 type(kpoints) :: kp 23 type(gspace) :: gvec 24 type(symmetry) :: syms 25 type(crystal) :: crys 26 27 integer :: ig, is 28 SCALAR, allocatable :: rho(:,:) 29 30 integer :: iflavor 31 character(len=3) :: sheader 32 33 call open_file(95,file='RHO',form='unformatted',status='old') 34 call open_file(21,file='CD',form='unformatted',status='replace') 35 36 write(6,*) 'Opening RHO' 37 38 sheader = 'RHO' 39 iflavor = 0 40 call read_binary_header_type(95, sheader, iflavor, kp, gvec, syms, crys, warn = .false.) 41 42 SAFE_ALLOCATE(gvec%components, (3, gvec%ng)) 43 call read_binary_gvectors(95, gvec%ng, gvec%ng, gvec%components) 44 45 SAFE_ALLOCATE(rho, (gvec%ng, kp%nspin)) 46 call read_binary_data(95, gvec%ng, gvec%ng, kp%nspin, rho) 47 48 call date_time(cdate, stime) 49 write(bdate, '(a11,13x)') cdate 50 write(btime, '(a8)') stime(1:8) 51 write(21) bdate, btime 52 53 write(21) 1, kp%nspin 54 55 do ig = 1, gvec%ng 56 write(21) gvec%components(1:3, ig) 57 write(21) (COMPLEXIFY(rho(ig, is)), is = 1, kp%nspin) 58 enddo 59 write(21) -1234567, 0, 0 60 ! the purpose of this last line is a profound mystery 61 62 call dealloc_header_type(sheader, crys, kp) 63 SAFE_DEALLOCATE_P(gvec%components) 64 SAFE_DEALLOCATE(rho) 65 66 call close_file(95) 67 call close_file(21) 68 69end program rho2cd 70