mirror of https://gitlab.com/QEF/q-e.git
Update read_namelists.f90
This commit is contained in:
parent
81b4ebc56a
commit
f88832e709
|
@ -397,7 +397,7 @@ MODULE read_namelists_module
|
||||||
diago_thr_init = 0.0_DP
|
diago_thr_init = 0.0_DP
|
||||||
diago_cg_maxiter = 20
|
diago_cg_maxiter = 20
|
||||||
diago_ppcg_maxiter = 20
|
diago_ppcg_maxiter = 20
|
||||||
diago_david_ndim = 4
|
diago_david_ndim = 2
|
||||||
diago_full_acc = .FALSE.
|
diago_full_acc = .FALSE.
|
||||||
!
|
!
|
||||||
sic = 'none'
|
sic = 'none'
|
||||||
|
@ -1866,7 +1866,6 @@ MODULE read_namelists_module
|
||||||
CHARACTER(LEN=2) :: prog
|
CHARACTER(LEN=2) :: prog
|
||||||
INTEGER :: ios
|
INTEGER :: ios
|
||||||
INTEGER :: unit_loc=5
|
INTEGER :: unit_loc=5
|
||||||
LOGICAL :: required, success
|
|
||||||
!
|
!
|
||||||
! ... end of declarations
|
! ... end of declarations
|
||||||
!
|
!
|
||||||
|
@ -1895,7 +1894,7 @@ MODULE read_namelists_module
|
||||||
IF( ionode ) THEN
|
IF( ionode ) THEN
|
||||||
READ( unit_loc, control, iostat = ios )
|
READ( unit_loc, control, iostat = ios )
|
||||||
END IF
|
END IF
|
||||||
success = check_namelist_read(ios, unit_loc, "control")
|
CALL check_namelist_read(ios, unit_loc, "control")
|
||||||
!
|
!
|
||||||
CALL control_bcast( )
|
CALL control_bcast( )
|
||||||
CALL control_checkin( prog )
|
CALL control_checkin( prog )
|
||||||
|
@ -1911,7 +1910,7 @@ MODULE read_namelists_module
|
||||||
IF( ionode ) THEN
|
IF( ionode ) THEN
|
||||||
READ( unit_loc, system, iostat = ios )
|
READ( unit_loc, system, iostat = ios )
|
||||||
END IF
|
END IF
|
||||||
success = check_namelist_read(ios, unit_loc, "system")
|
CALL check_namelist_read(ios, unit_loc, "system")
|
||||||
!
|
!
|
||||||
CALL system_bcast( )
|
CALL system_bcast( )
|
||||||
!
|
!
|
||||||
|
@ -1923,7 +1922,7 @@ MODULE read_namelists_module
|
||||||
IF( ionode ) THEN
|
IF( ionode ) THEN
|
||||||
READ( unit_loc, electrons, iostat = ios )
|
READ( unit_loc, electrons, iostat = ios )
|
||||||
END IF
|
END IF
|
||||||
success = check_namelist_read(ios, unit_loc, "electrons")
|
CALL check_namelist_read(ios, unit_loc, "electrons")
|
||||||
!
|
!
|
||||||
CALL electrons_bcast( )
|
CALL electrons_bcast( )
|
||||||
CALL electrons_checkin( prog )
|
CALL electrons_checkin( prog )
|
||||||
|
@ -1933,34 +1932,28 @@ MODULE read_namelists_module
|
||||||
!
|
!
|
||||||
ios = 0
|
ios = 0
|
||||||
IF ( ionode ) THEN
|
IF ( ionode ) THEN
|
||||||
IF ( ( TRIM( calculation ) /= 'nscf' .AND. &
|
IF ( ( TRIM( calculation ) /= 'nscf' .AND. &
|
||||||
TRIM( calculation ) /= 'bands' ) .OR. &
|
TRIM( calculation ) /= 'bands' ) .OR. &
|
||||||
( TRIM( prog_ ) == 'PW+iPi' ) ) THEN
|
( TRIM( prog_ ) == 'PW+iPi' ) ) THEN
|
||||||
READ( unit_loc, ions, iostat = ios )
|
READ( unit_loc, ions, iostat = ios )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
!
|
||||||
!
|
! SCF might (optionally) have &ions :: ion_positions = 'from_file'
|
||||||
! SCF might have &ions :: ion_positions = 'from_file'
|
!
|
||||||
IF ( TRIM( calculation ) == 'scf' ) THEN
|
IF ( (ios /= 0) .AND. TRIM( calculation ) == 'scf' ) THEN
|
||||||
required = .FALSE.
|
! presumably, not found: rewind the file pointer to the location
|
||||||
ELSE
|
! of the previous present section, in this case electrons
|
||||||
required = .TRUE.
|
REWIND( unit_loc )
|
||||||
END IF
|
READ( unit_loc, electrons, iostat = ios )
|
||||||
!
|
|
||||||
success = check_namelist_read(ios, unit_loc, "ions", required)
|
|
||||||
!
|
|
||||||
IF (success) THEN
|
|
||||||
CALL ions_bcast( )
|
|
||||||
CALL ions_checkin( prog )
|
|
||||||
ELSE
|
|
||||||
! Rewind the file pointer to the location of the previous present
|
|
||||||
! section, in this case electrons
|
|
||||||
IF ( ionode ) THEN
|
|
||||||
REWIND( unit_loc )
|
|
||||||
READ( unit_loc, electrons, iostat = ios )
|
|
||||||
END IF
|
END IF
|
||||||
|
!
|
||||||
END IF
|
END IF
|
||||||
!
|
!
|
||||||
|
CALL check_namelist_read(ios, unit_loc, "ions")
|
||||||
|
!
|
||||||
|
CALL ions_bcast( )
|
||||||
|
CALL ions_checkin( prog )
|
||||||
|
!
|
||||||
! ... CELL namelist
|
! ... CELL namelist
|
||||||
!
|
!
|
||||||
ios = 0
|
ios = 0
|
||||||
|
@ -1973,7 +1966,7 @@ MODULE read_namelists_module
|
||||||
READ( unit_loc, cell, iostat = ios )
|
READ( unit_loc, cell, iostat = ios )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
success = check_namelist_read(ios, unit_loc, "cell")
|
CALL check_namelist_read(ios, unit_loc, "cell")
|
||||||
!
|
!
|
||||||
CALL cell_bcast()
|
CALL cell_bcast()
|
||||||
CALL cell_checkin( prog )
|
CALL cell_checkin( prog )
|
||||||
|
@ -1984,7 +1977,7 @@ MODULE read_namelists_module
|
||||||
READ( unit_loc, press_ai, iostat = ios )
|
READ( unit_loc, press_ai, iostat = ios )
|
||||||
end if
|
end if
|
||||||
END IF
|
END IF
|
||||||
success = check_namelist_read(ios, unit_loc, "press_ai")
|
CALL check_namelist_read(ios, unit_loc, "press_ai")
|
||||||
!
|
!
|
||||||
CALL press_ai_bcast()
|
CALL press_ai_bcast()
|
||||||
!
|
!
|
||||||
|
@ -1999,7 +1992,7 @@ MODULE read_namelists_module
|
||||||
READ( unit_loc, wannier, iostat = ios )
|
READ( unit_loc, wannier, iostat = ios )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
success = check_namelist_read(ios, unit_loc, "wannier")
|
CALL check_namelist_read(ios, unit_loc, "wannier")
|
||||||
!
|
!
|
||||||
CALL wannier_bcast()
|
CALL wannier_bcast()
|
||||||
CALL wannier_checkin( prog )
|
CALL wannier_checkin( prog )
|
||||||
|
@ -2013,7 +2006,7 @@ MODULE read_namelists_module
|
||||||
READ( unit_loc, wannier_ac, iostat = ios )
|
READ( unit_loc, wannier_ac, iostat = ios )
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
success = check_namelist_read(ios, unit_loc, "wannier_ac")
|
CALL check_namelist_read(ios, unit_loc, "wannier_ac")
|
||||||
!
|
!
|
||||||
CALL wannier_ac_bcast()
|
CALL wannier_ac_bcast()
|
||||||
CALL wannier_ac_checkin( prog )
|
CALL wannier_ac_checkin( prog )
|
||||||
|
@ -2022,21 +2015,14 @@ MODULE read_namelists_module
|
||||||
!
|
!
|
||||||
END SUBROUTINE read_namelists
|
END SUBROUTINE read_namelists
|
||||||
!
|
!
|
||||||
FUNCTION check_namelist_read(ios, unit_loc, nl_name, required)
|
SUBROUTINE check_namelist_read(ios, unit_loc, nl_name)
|
||||||
! Set required = .TRUE. if nl_name card is required
|
|
||||||
! The presence/absence of the card is returned
|
|
||||||
USE io_global, ONLY : ionode, ionode_id
|
USE io_global, ONLY : ionode, ionode_id
|
||||||
USE mp, ONLY : mp_bcast
|
USE mp, ONLY : mp_bcast
|
||||||
USE mp_images, ONLY : intra_image_comm
|
USE mp_images, ONLY : intra_image_comm
|
||||||
!
|
!
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
INTEGER, INTENT(in) :: ios, unit_loc
|
INTEGER,INTENT(in) :: ios, unit_loc
|
||||||
CHARACTER(LEN=*), INTENT(in) :: nl_name
|
CHARACTER(LEN=*) :: nl_name
|
||||||
LOGICAL, INTENT(in), OPTIONAL :: required
|
|
||||||
!
|
|
||||||
! ... local variables
|
|
||||||
!
|
|
||||||
LOGICAL :: check_namelist_read
|
|
||||||
CHARACTER(len=512) :: line
|
CHARACTER(len=512) :: line
|
||||||
INTEGER :: ios2
|
INTEGER :: ios2
|
||||||
!
|
!
|
||||||
|
@ -2047,14 +2033,8 @@ MODULE read_namelists_module
|
||||||
READ(unit_loc,'(A512)', iostat=ios2) line
|
READ(unit_loc,'(A512)', iostat=ios2) line
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
!
|
|
||||||
CALL mp_bcast( ios2, ionode_id, intra_image_comm )
|
CALL mp_bcast( ios2, ionode_id, intra_image_comm )
|
||||||
!
|
|
||||||
IF( ios2 /= 0 .AND. PRESENT(required) .AND. .NOT. required) THEN
|
|
||||||
check_namelist_read = .FALSE.
|
|
||||||
RETURN
|
|
||||||
END IF
|
|
||||||
!
|
|
||||||
IF( ios2 /= 0 ) THEN
|
IF( ios2 /= 0 ) THEN
|
||||||
CALL errore( ' read_namelists ', ' could not find namelist &'//TRIM(nl_name), 2)
|
CALL errore( ' read_namelists ', ' could not find namelist &'//TRIM(nl_name), 2)
|
||||||
ENDIF
|
ENDIF
|
||||||
|
@ -2068,8 +2048,6 @@ MODULE read_namelists_module
|
||||||
1 )
|
1 )
|
||||||
END IF
|
END IF
|
||||||
!
|
!
|
||||||
check_namelist_read = .TRUE.
|
END SUBROUTINE check_namelist_read
|
||||||
RETURN
|
|
||||||
END FUNCTION check_namelist_read
|
|
||||||
!
|
!
|
||||||
END MODULE read_namelists_module
|
END MODULE read_namelists_module
|
||||||
|
|
Loading…
Reference in New Issue