Is there any way to merge SUS files?

GW, Bethe-Salpeter …

Moderators: maryam.azizi, bruneval

Locked
Robin
Posts: 61
Joined: Thu Jan 14, 2010 3:18 am

Is there any way to merge SUS files?

Post by Robin » Mon Sep 06, 2010 5:09 am

Dear friends,

I have successfully merged SCR files by using mrgscr. Now I am wondering if there is any way (if proper in theory) to do the same thing to SUS files. I did not find an available tool in abinit.

Thanks.

Sincerely,
Guangfu Luo

User avatar
gmatteo
Posts: 291
Joined: Sun Aug 16, 2009 5:40 pm

Re: Is there any way to merge SUS files?

Post by gmatteo » Thu Oct 14, 2010 2:43 pm

Dear Guangfu,

The file format of the SUS and SCR files are very similar.
In principle one case use mrgscr to merge SUS files but one has to make small changes
in the code to include this option. A version of mrgscr capable of merging SUS files will be released soon.

Robin
Posts: 61
Joined: Thu Jan 14, 2010 3:18 am

Re: Is there any way to merge SUS files?

Post by Robin » Fri Oct 15, 2010 5:43 pm

Dear Gmatteo,

It is nice to hear that. Since you are going to modify this tool, I'd like to add one more piece of suggestion: can you allow mrgscr to accept the relative path of the SUS or SCR files? In the present version, mrgscr does not accept the path (like ../) before the file names.

Sincerely,
Guangfu Luo

User avatar
gmatteo
Posts: 291
Joined: Sun Aug 16, 2009 5:40 pm

Re: Is there any way to merge SUS files?

Post by gmatteo » Fri Oct 15, 2010 7:29 pm

This change will be available in the forthcoming release.
For the moment you have to change the routine prompt_string defined in 27_toolbox_oop/m_io_tools
using the version below:

subroutine prompt_string(msg,string)

!Arguments ------------------------------------

character(len=*),intent(in) :: msg
character(len=*),intent(out) :: string

!Local variables-------------------------------
integer :: ios
character(len=4) :: PS
! *********************************************************************

ios=-1 ; PS=PS1
do while (ios/=0)
write(STDOUT,'(a)',ADVANCE='NO')PS//TRIM(msg)//BLANK
read(STDIN,'(a)',IOSTAT=ios)string ! <<<< It was read(STDIN,*,IOSTAT=ios)
if (ios==IO_EOT) call prompt_exit()
PS=PS2
end do
write(STDOUT,*)

end subroutine prompt_string
!!***

Locked