From 0a5989da7bff8d2abd8f2a21e1d81509253a0cf3 Mon Sep 17 00:00:00 2001 From: Paolo Giannozzi Date: Thu, 26 Mar 2020 09:23:34 +0100 Subject: [PATCH] Several print format extended to allow more than 999 phonon modes (!) --- PHonon/Gamma/solve_ph.f90 | 10 +++--- PHonon/PH/find_mode_sym.f90 | 4 +-- PHonon/PH/phqscf.f90 | 4 +-- PHonon/PH/write_modes.f90 | 70 ++++++++++++++++++------------------- 4 files changed, 44 insertions(+), 44 deletions(-) diff --git a/PHonon/Gamma/solve_ph.f90 b/PHonon/Gamma/solve_ph.f90 index 7eed2d789..41e821ef7 100644 --- a/PHonon/Gamma/solve_ph.f90 +++ b/PHonon/Gamma/solve_ph.f90 @@ -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 diff --git a/PHonon/PH/find_mode_sym.f90 b/PHonon/PH/find_mode_sym.f90 index ee0cbb2cf..19ec023c9 100644 --- a/PHonon/PH/find_mode_sym.f90 +++ b/PHonon/PH/find_mode_sym.f90 @@ -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 diff --git a/PHonon/PH/phqscf.f90 b/PHonon/PH/phqscf.f90 index f7a1c6e7a..6ff62236e 100644 --- a/PHonon/PH/phqscf.f90 +++ b/PHonon/PH/phqscf.f90 @@ -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 ! diff --git a/PHonon/PH/write_modes.f90 b/PHonon/PH/write_modes.f90 index d77fcdced..c5c67ebde 100644 --- a/PHonon/PH/write_modes.f90 +++ b/PHonon/PH/write_modes.f90 @@ -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