I want to write the DIP_iR matrix by adding the following code (see bottom) to the file DIPOLE_driver.F (before cleaning DIP_iR).
I use the "call PP_wait()" and "set myid" to let the master cpu write the matrix.
I get the following strange results
Code: Select all
mpirun -np 12 yambo -F ipa.in -J ipa_12
1 150 1 150 19 for debug
Shape(DIP_iR) is: 3 150 150 7 1 for debug
mpirun -np 8 yambo -F ipa.in -J ipa_8
1 150 1 150 19 for debug
Shape(DIP_iR) is: 3 150 150 10 1 for debug
mpirun -np 10 yambo -F ipa.in -J ipa_10
mpirun -np 6 yambo -F ipa.in -J ipa_6
mpirun -np 4 yambo -F ipa.in -J ipa_4
1 150 1 150 19 for debug
Shape(DIP_iR) is: 3 150 150 19 1 for debug
I use the newest Yambo by clone. The input and output files are attached.
I have noticed "viewtopic.php?t=382", which shows how to use python to do post-processing,
but I prefer to output them directly by using fortran.
Any help will be appreciated.
Code: Select all
!~ lyzhao lyzhao lyzhao lyzhao
call PP_wait()
!~ if (master_cpu) then !lyzhao
if (myid==0) then !lyzhao
write(*,*) Dip%ib(1),Dip%ib_lim(1),Dip%ib_lim(2),Dip%ib(2),Xk%nibz, " for debug"
open(200,file='YBDIPiR.BIN',form='UNFORMATTED',action='WRITE')
write (*,*) "Shape(DIP_iR) is: ",shape(DIP_iR), " for debug"
write(200) DIP_iR
close(200)
endif
!~ lyzhao lyzhao lyzhao lyzhao
!
! Clean up
!
if (.not.io_DIP) return
!
call DIP_alloc('DIP_iR')
call DIP_alloc('DIP_P')
call DIP_alloc('DIP_v')