mirror of https://gitlab.com/QEF/q-e.git
bz_form.f90 and wypos.f90 took a disproportionate amount of compilation time,
likely due to the length of those routines. After recasting long routines inyo into a long list of calls to small subroutines, compilation time is much more acceptable. Many changes but everything should work exactly as before. git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13376 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
ef1c3b7f3d
commit
e792274870
|
@ -237,14 +237,54 @@ END SUBROUTINE
|
||||||
SUBROUTINE init_bz(bz_struc)
|
SUBROUTINE init_bz(bz_struc)
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
TYPE(bz), INTENT(INOUT) :: bz_struc
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
INTEGER :: n1(6), n2(6), i
|
INTEGER :: ibz
|
||||||
INTEGER :: ibz, idir, idir1
|
|
||||||
|
|
||||||
bz_struc%letter_list(1)='gG '
|
bz_struc%letter_list(1)='gG '
|
||||||
bz_struc%letter_coord(:,1)=0.0_DP
|
bz_struc%letter_coord(:,1)=0.0_DP
|
||||||
ibz=bz_struc%ind
|
ibz=bz_struc%ind
|
||||||
|
|
||||||
IF ( ibz ==1) THEN
|
IF ( ibz ==1) THEN
|
||||||
|
CALL init_bz_1(bz_struc)
|
||||||
|
ELSEIF (ibz==2) THEN
|
||||||
|
CALL init_bz_2(bz_struc)
|
||||||
|
ELSEIF (ibz==3) THEN
|
||||||
|
CALL init_bz_3(bz_struc)
|
||||||
|
ELSEIF (ibz==4) THEN
|
||||||
|
CALL init_bz_4(bz_struc)
|
||||||
|
ELSEIF (ibz==5) THEN
|
||||||
|
CALL init_bz_5(bz_struc)
|
||||||
|
ELSEIF (ibz==6) THEN
|
||||||
|
CALL init_bz_6(bz_struc)
|
||||||
|
ELSEIF (ibz==7) THEN
|
||||||
|
CALL init_bz_7(bz_struc)
|
||||||
|
ELSEIF (ibz==8) THEN
|
||||||
|
CALL init_bz_8(bz_struc)
|
||||||
|
ELSEIF (ibz==9) THEN
|
||||||
|
CALL init_bz_9(bz_struc)
|
||||||
|
ELSEIF (ibz==10) THEN
|
||||||
|
CALL init_bz_10(bz_struc)
|
||||||
|
ELSEIF (ibz==11) THEN
|
||||||
|
CALL init_bz_11(bz_struc)
|
||||||
|
ELSEIF (ibz==12) THEN
|
||||||
|
CALL init_bz_12(bz_struc)
|
||||||
|
ELSEIF (ibz==13) THEN
|
||||||
|
CALL init_bz_13(bz_struc)
|
||||||
|
ELSEIF (ibz==14) THEN
|
||||||
|
CALL init_bz_14(bz_struc)
|
||||||
|
ELSEIF (ibz==15) THEN
|
||||||
|
CALL init_bz_15(bz_struc)
|
||||||
|
ELSEIF (ibz==16) THEN
|
||||||
|
CALL init_bz_16(bz_struc)
|
||||||
|
ELSE
|
||||||
|
CALL errore('init_bz','Brillouin zone type not available',1)
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
END SUBROUTINE init_bz
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_1(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
!
|
!
|
||||||
! simple cubic bz
|
! simple cubic bz
|
||||||
!
|
!
|
||||||
|
@ -286,7 +326,11 @@ IF ( ibz ==1) THEN
|
||||||
|
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==2) THEN
|
END SUBROUTINE init_bz_1
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_2(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
!
|
!
|
||||||
! fcc bz
|
! fcc bz
|
||||||
!
|
!
|
||||||
|
@ -384,7 +428,12 @@ ELSEIF (ibz==2) THEN
|
||||||
|
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==3) THEN
|
END SUBROUTINE init_bz_2
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_3(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
|
|
||||||
!
|
!
|
||||||
! bcc bz
|
! bcc bz
|
||||||
!
|
!
|
||||||
|
@ -452,8 +501,12 @@ ELSEIF (ibz==3) THEN
|
||||||
|
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
|
|
||||||
|
END SUBROUTINE init_bz_3
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_4(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
|
|
||||||
ELSEIF (ibz==4) THEN
|
|
||||||
!
|
!
|
||||||
! simple tetragonal bz
|
! simple tetragonal bz
|
||||||
!
|
!
|
||||||
|
@ -489,7 +542,12 @@ ELSEIF (ibz==4) THEN
|
||||||
|
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==5) THEN
|
END SUBROUTINE init_bz_4
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_5(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
|
|
||||||
!
|
!
|
||||||
! centered tetragonal (c<a) bz
|
! centered tetragonal (c<a) bz
|
||||||
!
|
!
|
||||||
|
@ -540,7 +598,11 @@ ELSEIF (ibz==5) THEN
|
||||||
|
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==6) THEN
|
END SUBROUTINE init_bz_5
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_6(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
!
|
!
|
||||||
! centered tetragonal (c>a) bz
|
! centered tetragonal (c>a) bz
|
||||||
!
|
!
|
||||||
|
@ -627,7 +689,11 @@ ELSEIF (ibz==6) THEN
|
||||||
|
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==7) THEN
|
END SUBROUTINE init_bz_6
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_7(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
!
|
!
|
||||||
! simple orthorombic bz
|
! simple orthorombic bz
|
||||||
!
|
!
|
||||||
|
@ -667,7 +733,11 @@ ELSEIF (ibz==7) THEN
|
||||||
|
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==8) THEN
|
END SUBROUTINE init_bz_7
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_8(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
!
|
!
|
||||||
! face centered orthorombic (1/a^2 > 1/b^2 + 1/c^2) bz
|
! face centered orthorombic (1/a^2 > 1/b^2 + 1/c^2) bz
|
||||||
!
|
!
|
||||||
|
@ -764,7 +834,11 @@ ELSEIF (ibz==8) THEN
|
||||||
|
|
||||||
CALL adjust_orthorombic(bz_struc)
|
CALL adjust_orthorombic(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==9) THEN
|
END SUBROUTINE init_bz_8
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_9(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
!
|
!
|
||||||
! face centered orthorombic (1/a^2 < 1/b^2 + 1/c^2) bz case 2
|
! face centered orthorombic (1/a^2 < 1/b^2 + 1/c^2) bz case 2
|
||||||
!
|
!
|
||||||
|
@ -886,7 +960,12 @@ ELSEIF (ibz==9) THEN
|
||||||
|
|
||||||
CALL adjust_orthorombic(bz_struc)
|
CALL adjust_orthorombic(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==10) THEN
|
END SUBROUTINE init_bz_9
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_10(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
|
|
||||||
!
|
!
|
||||||
! face centered orthorombic (1/a^2 = 1/b^2 + 1/c^2) bz
|
! face centered orthorombic (1/a^2 = 1/b^2 + 1/c^2) bz
|
||||||
!
|
!
|
||||||
|
@ -980,7 +1059,11 @@ ELSEIF (ibz==10) THEN
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
CALL adjust_orthorombic(bz_struc)
|
CALL adjust_orthorombic(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==11) THEN
|
END SUBROUTINE init_bz_10
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_11(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
!
|
!
|
||||||
! body centered orthorombic bz
|
! body centered orthorombic bz
|
||||||
!
|
!
|
||||||
|
@ -1174,7 +1257,12 @@ ELSEIF (ibz==11) THEN
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
CALL adjust_orthorombic(bz_struc)
|
CALL adjust_orthorombic(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==12) THEN
|
END SUBROUTINE init_bz_11
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_12(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
|
|
||||||
!
|
!
|
||||||
! one face centered orthorombic bz
|
! one face centered orthorombic bz
|
||||||
!
|
!
|
||||||
|
@ -1260,7 +1348,11 @@ ELSEIF (ibz==12) THEN
|
||||||
|
|
||||||
CALL adjust_one_face_centered_orthorombic(bz_struc)
|
CALL adjust_one_face_centered_orthorombic(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==13) THEN
|
END SUBROUTINE init_bz_12
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_13(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
!
|
!
|
||||||
! hexagonal
|
! hexagonal
|
||||||
!
|
!
|
||||||
|
@ -1299,8 +1391,12 @@ ELSEIF (ibz==13) THEN
|
||||||
bz_struc%letter_coord(:,6) = bz_struc%vertex_coord(:,1)
|
bz_struc%letter_coord(:,6) = bz_struc%vertex_coord(:,1)
|
||||||
|
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
!
|
|
||||||
ELSEIF (ibz==14) THEN
|
END SUBROUTINE init_bz_13
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_14(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
!
|
!
|
||||||
! trigonal alpha < 90 bz
|
! trigonal alpha < 90 bz
|
||||||
!
|
!
|
||||||
|
@ -1369,7 +1465,12 @@ ELSEIF (ibz==14) THEN
|
||||||
bz_struc%vertex_coord(:,14))
|
bz_struc%vertex_coord(:,14))
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
|
|
||||||
ELSEIF (ibz==15) THEN
|
END SUBROUTINE init_bz_14
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_15(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
|
|
||||||
!
|
!
|
||||||
! trigonal alpha > 90 bz
|
! trigonal alpha > 90 bz
|
||||||
!
|
!
|
||||||
|
@ -1429,8 +1530,13 @@ ELSEIF (ibz==15) THEN
|
||||||
bz_struc%letter_coord(:,8) = bz_struc%vertex_coord(:,7)
|
bz_struc%letter_coord(:,8) = bz_struc%vertex_coord(:,7)
|
||||||
|
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
!
|
|
||||||
ELSEIF (ibz==16) THEN
|
END SUBROUTINE init_bz_15
|
||||||
|
|
||||||
|
SUBROUTINE init_bz_16(bz_struc)
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE(bz), INTENT(INOUT) :: bz_struc
|
||||||
|
INTEGER :: n1(6), n2(6), i, idir, idir1
|
||||||
!
|
!
|
||||||
! Simple monoclinic lattice
|
! Simple monoclinic lattice
|
||||||
!
|
!
|
||||||
|
@ -1489,12 +1595,7 @@ ELSEIF (ibz==16) THEN
|
||||||
|
|
||||||
CALL find_axis_coordinates(bz_struc)
|
CALL find_axis_coordinates(bz_struc)
|
||||||
|
|
||||||
ELSE
|
END SUBROUTINE init_bz_16
|
||||||
CALL errore('init_bz','Brillouin zone type not available',1)
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
RETURN
|
|
||||||
END SUBROUTINE init_bz
|
|
||||||
|
|
||||||
SUBROUTINE compute_vertices(bz_struc)
|
SUBROUTINE compute_vertices(bz_struc)
|
||||||
!
|
!
|
||||||
|
|
2823
Modules/wypos.f90
2823
Modules/wypos.f90
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue