mirror of https://gitlab.com/QEF/q-e.git
Several print format extended to allow more than 999 phonon modes (!)
This commit is contained in:
parent
959ec69827
commit
0a5989da7b
|
@ -77,7 +77,7 @@ SUBROUTINE solve_ph ( )
|
|||
END IF
|
||||
CALL mp_bcast(mode_done,ionode_id,world_comm)
|
||||
CALL mp_bcast(dyn,ionode_id,world_comm)
|
||||
PRINT '(" Phonon: modes up to mode ",i3," already done")', mode_done
|
||||
PRINT '(" Phonon: modes up to mode",i4," already done")', mode_done
|
||||
GOTO 2
|
||||
1 CLOSE(unit=iunres)
|
||||
ENDIF
|
||||
|
@ -89,17 +89,17 @@ SUBROUTINE solve_ph ( )
|
|||
DO nu = 1, nmodes
|
||||
IF ( has_equivalent((nu-1)/3+1)==1) THEN
|
||||
! calculate only independent modes
|
||||
WRITE( stdout,'(" *** mode # ",i3," : using symmetry")') nu
|
||||
WRITE( stdout,'(" *** mode #",i4," : using symmetry")') nu
|
||||
GOTO 10
|
||||
ENDIF
|
||||
IF ( nu<=mode_done) THEN
|
||||
! do not recalculate modes already done
|
||||
WRITE( stdout,'(" *** mode # ",i3," : using previous run")') nu
|
||||
WRITE( stdout,'(" *** mode #",i4," : using previous run")') nu
|
||||
GOTO 10
|
||||
ENDIF
|
||||
IF ( asr .and. (nu-1)/3+1==nasr ) THEN
|
||||
! impose ASR on last atom instead of calculating mode
|
||||
WRITE( stdout,'(" *** mode # ",i3," : using asr")') nu
|
||||
WRITE( stdout,'(" *** mode #",i4," : using asr")') nu
|
||||
GOTO 10
|
||||
ENDIF
|
||||
! calculate |b> = dV/dtau*psi
|
||||
|
@ -126,7 +126,7 @@ SUBROUTINE solve_ph ( )
|
|||
!
|
||||
ENDIF
|
||||
!
|
||||
WRITE( stdout,'(" *** mode # ",i3," : ",i3," iterations")') &
|
||||
WRITE( stdout,'(" *** mode #",i4," : ",i3," iterations")') &
|
||||
& nu, iter
|
||||
10 CONTINUE
|
||||
ENDDO
|
||||
|
|
|
@ -350,13 +350,13 @@ next=0
|
|||
DO imode = 1, 3 * nat
|
||||
IF ( imode < next .OR. ABS(w1(imode)) < 1.d-3 ) CYCLE
|
||||
IF (num_rap_mode(imode) == 0) THEN
|
||||
WRITE(stdout,'(5x,"freq (",i3," -",i3,") = ",f12.1,2x,"[cm-1]",3x, "--> ?")') imode, imode, w1(imode)
|
||||
WRITE(stdout,'(5x,"freq (",i4,"-",i4,") = ",f12.1,2x,"[cm-1]",3x, "--> ?")') imode, imode, w1(imode)
|
||||
ELSE
|
||||
irap=num_rap_mode(imode)
|
||||
next = imode + NINT(DBLE(char_mat(irap,1)))
|
||||
cdum=" "
|
||||
IF (lir) cdum=TRIM(ir_ram(irap))
|
||||
WRITE(stdout,'(5x,"freq (",i3," -",i3,") = ",f12.1,2x,"[cm-1]",3x,"--> ",a19)') &
|
||||
WRITE(stdout,'(5x,"freq (",i4,"-",i4,") = ",f12.1,2x,"[cm-1]",3x,"--> ",a19)') &
|
||||
imode, next-1, w1(imode), name_rap(irap)//" "//cdum
|
||||
ENDIF
|
||||
ENDDO
|
||||
|
|
|
@ -78,10 +78,10 @@ SUBROUTINE phqscf
|
|||
imode0 = imode0 + npert (irr1)
|
||||
ENDDO
|
||||
IF (npe == 1) THEN
|
||||
WRITE( stdout, '(//,5x,"Representation #", i3," mode # ",i3)') &
|
||||
WRITE( stdout, '(//,5x,"Representation #", i3," mode #",i4)') &
|
||||
irr, imode0 + 1
|
||||
ELSE
|
||||
WRITE( stdout, '(//,5x,"Representation #", i3," modes # ",8i3)') &
|
||||
WRITE( stdout, '(//,5x,"Representation #", i3," modes #",8i4)') &
|
||||
irr, (imode0+irr1, irr1=1,npe)
|
||||
ENDIF
|
||||
!
|
||||
|
|
|
@ -6,39 +6,39 @@
|
|||
! or http://www.gnu.org/copyleft/gpl.txt .
|
||||
!
|
||||
SUBROUTINE write_modes_out(irr, imode0)
|
||||
!
|
||||
! This routine writes the displacements on the representation irr that
|
||||
! starts at mode imode0
|
||||
!
|
||||
USE kinds, ONLY : DP
|
||||
USE ions_base, ONLY : nat
|
||||
USE modes, ONLY : u, npert
|
||||
USE io_global, ONLY : stdout
|
||||
IMPLICIT NONE
|
||||
INTEGER, INTENT(IN) :: imode0, irr
|
||||
INTEGER :: mu, nu
|
||||
|
||||
WRITE( stdout, '(5x,"Irreps are as follows:",/)')
|
||||
IF (npert (irr) .eq.1) THEN
|
||||
WRITE( stdout, '(20x," mode # ",i3)') imode0 + 1
|
||||
WRITE( stdout, '(20x," (",2f10.5," ) ")') ( (u (mu, nu) ,&
|
||||
&nu = imode0 + 1, imode0 + npert (irr) ) , mu = 1, 3 * nat)
|
||||
ELSEIF (npert (irr) .eq.2) THEN
|
||||
WRITE( stdout, '(2(10x," mode # ",i3,16x))') imode0 + 1, &
|
||||
imode0 + 2
|
||||
WRITE( stdout, '(2(10x," (",2f10.5," ) "))') ( (u (mu, nu) , nu &
|
||||
&= imode0 + 1, imode0 + npert (irr) ) , mu = 1, 3 * nat)
|
||||
ELSEIF (npert (irr) .eq.3) THEN
|
||||
WRITE( stdout, '(4x,3(" mode # ",i3,13x))') imode0 + 1, imode0 &
|
||||
+ 2, imode0 + 3
|
||||
WRITE( stdout, '((5x,3("(",2f10.5," ) ")))') ( (u (mu, nu) , &
|
||||
nu = imode0 + 1, imode0 + npert (irr) ) , mu = 1, 3 * nat)
|
||||
ELSE
|
||||
WRITE( stdout, '(4x,4(" mode # ",i3,13x))') imode0 + 1, imode0 &
|
||||
+ 2, imode0 + 4
|
||||
WRITE( stdout, '((5x,4("(",2f10.5," ) ")))') ( (u (mu, nu) , &
|
||||
nu = imode0 + 1, imode0 + npert (irr) ) , mu = 1, 3 * nat)
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
!
|
||||
! This routine writes the displacements on the representation irr that
|
||||
! starts at mode imode0
|
||||
!
|
||||
USE kinds, ONLY : DP
|
||||
USE ions_base, ONLY : nat
|
||||
USE modes, ONLY : u, npert
|
||||
USE io_global, ONLY : stdout
|
||||
IMPLICIT NONE
|
||||
INTEGER, INTENT(IN) :: imode0, irr
|
||||
INTEGER :: mu, nu
|
||||
|
||||
WRITE( stdout, '(5x,"Irreps are as follows:",/)')
|
||||
IF (npert (irr) .eq.1) THEN
|
||||
WRITE( stdout, '(20x," mode #",i4)') imode0 + 1
|
||||
WRITE( stdout, '(20x," (",2f10.5," ) ")') ( (u (mu, nu) ,&
|
||||
&nu = imode0 + 1, imode0 + npert (irr) ) , mu = 1, 3 * nat)
|
||||
ELSEIF (npert (irr) .eq.2) THEN
|
||||
WRITE( stdout, '(2(10x," mode #",i4,16x))') imode0 + 1, &
|
||||
imode0 + 2
|
||||
WRITE( stdout, '(2(10x," (",2f10.5," ) "))') ( (u (mu, nu) , nu &
|
||||
&= imode0 + 1, imode0 + npert (irr) ) , mu = 1, 3 * nat)
|
||||
ELSEIF (npert (irr) .eq.3) THEN
|
||||
WRITE( stdout, '(4x,3(" mode #",i4,13x))') imode0 + 1, imode0 &
|
||||
+ 2, imode0 + 3
|
||||
WRITE( stdout, '((5x,3("(",2f10.5," ) ")))') ( (u (mu, nu) , &
|
||||
nu = imode0 + 1, imode0 + npert (irr) ) , mu = 1, 3 * nat)
|
||||
ELSE
|
||||
WRITE( stdout, '(4x,4(" mode #",i4,13x))') imode0 + 1, imode0 &
|
||||
+ 2, imode0 + 4
|
||||
WRITE( stdout, '((5x,4("(",2f10.5," ) ")))') ( (u (mu, nu) , &
|
||||
nu = imode0 + 1, imode0 + npert (irr) ) , mu = 1, 3 * nat)
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
END SUBROUTINE write_modes_out
|
||||
|
|
Loading…
Reference in New Issue