135 lines
5.4 KiB
Fortran
135 lines
5.4 KiB
Fortran
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
MODULE THERMAL_P
|
||
|
!
|
||
|
! This module defines the thermal parameters
|
||
|
!
|
||
|
USE ACCURACY_REAL
|
||
|
!
|
||
|
IMPLICIT NONE
|
||
|
!
|
||
|
REAL (WP) :: K_TH,V_TH,L_TH,CV,P,MU_TH
|
||
|
!
|
||
|
END MODULE THERMAL_P
|
||
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
MODULE PRINT_THERMAL
|
||
|
!
|
||
|
! This module prints the thermal properties in the log file
|
||
|
!
|
||
|
!
|
||
|
CONTAINS
|
||
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
SUBROUTINE CALC_THERMAL_PROP
|
||
|
!
|
||
|
USE MATERIAL_PROP, ONLY : RS,DMN
|
||
|
USE EXT_FIELDS, ONLY : T
|
||
|
USE THERMAL_PROPERTIES
|
||
|
USE CHEMICAL_POTENTIAL, ONLY : MU
|
||
|
!
|
||
|
USE THERMAL_P
|
||
|
!
|
||
|
IMPLICIT NONE
|
||
|
!
|
||
|
CALL TH_PROP(DMN,RS,T,K_TH,V_TH,L_TH,CV,P) !
|
||
|
MU_TH=MU(DMN,T) !
|
||
|
!
|
||
|
END SUBROUTINE CALC_THERMAL_PROP
|
||
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
SUBROUTINE PRINT_THERMAL_PROP
|
||
|
!
|
||
|
! This subroutine prints the thermal properties in the log file
|
||
|
!
|
||
|
!
|
||
|
!
|
||
|
! Author : D. Sébilleau
|
||
|
!
|
||
|
! Last modified : 28 Jul 2020
|
||
|
!
|
||
|
!
|
||
|
USE CONSTANTS_P1, ONLY : BOHR
|
||
|
USE ENE_CHANGE, ONLY : ANG,EV
|
||
|
USE EXT_FIELDS, ONLY : T
|
||
|
!
|
||
|
USE THERMAL_P
|
||
|
!
|
||
|
IMPLICIT NONE
|
||
|
!
|
||
|
REAL (WP) :: TEST
|
||
|
!
|
||
|
INTEGER :: LOGF
|
||
|
!
|
||
|
LOGF=6 ! log file unit
|
||
|
!
|
||
|
TEST=90000.0E0_WP !
|
||
|
!
|
||
|
CALL CALC_THERMAL_PROP !
|
||
|
!
|
||
|
WRITE(LOGF,17) !
|
||
|
WRITE(LOGF,7) T !
|
||
|
WRITE(LOGF,27) !
|
||
|
!
|
||
|
IF(K_TH*BOHR <= TEST) THEN !
|
||
|
WRITE(LOGF,10) K_TH*ANG !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,15) K_TH*ANG !
|
||
|
END IF !
|
||
|
IF(V_TH <= TEST) THEN !
|
||
|
WRITE(LOGF,20) V_TH !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,25) V_TH !
|
||
|
END IF !
|
||
|
IF(L_TH <= TEST) THEN !
|
||
|
WRITE(LOGF,30) L_TH/ANG !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,35) L_TH/ANG !
|
||
|
END IF !
|
||
|
IF(CV <= TEST) THEN !
|
||
|
WRITE(LOGF,40) CV !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,45) CV !
|
||
|
END IF !
|
||
|
IF(P <= TEST) THEN !
|
||
|
WRITE(LOGF,50) P !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,55) P !
|
||
|
END IF !
|
||
|
IF(MU_TH/EV <= TEST) THEN !
|
||
|
WRITE(LOGF,60) MU_TH/EV !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,65) MU_TH/EV !
|
||
|
END IF !
|
||
|
!
|
||
|
WRITE(LOGF,70) !
|
||
|
!
|
||
|
! Formats:
|
||
|
!
|
||
|
10 FORMAT(5X,'|',5X,'De Broglie wave vector : ',F10.3,' Å^{-1}',' |')
|
||
|
20 FORMAT(5X,'|',5X,'thermal velocity : ',F10.3,' m/s',3X,' |')
|
||
|
30 FORMAT(5X,'|',5X,'Landau length : ',F10.3,' Å |')
|
||
|
40 FORMAT(5X,'|',5X,'electron specific heat : ',F10.3,' SI |')
|
||
|
50 FORMAT(5X,'|',5X,'electron pressure : ',F10.3,' SI |')
|
||
|
60 FORMAT(5X,'|',5X,'chemical potential : ',F10.3,' eV |')
|
||
|
!
|
||
|
15 FORMAT(5X,'|',5X,'De Broglie wave vector : ',E12.6,' Å^{-1} |')
|
||
|
25 FORMAT(5X,'|',5X,'thermal velocity : ',E12.6,' m/s |')
|
||
|
35 FORMAT(5X,'|',5X,'Landau length : ',E12.6,' Å |')
|
||
|
45 FORMAT(5X,'|',5X,'electron specific heat : ',E12.6,' SI |')
|
||
|
55 FORMAT(5X,'|',5X,'electron pressure : ',E12.6,' SI |')
|
||
|
65 FORMAT(5X,'|',5X,'chemical potential : ',E12.6,' eV |')
|
||
|
!
|
||
|
7 FORMAT(5X,'|',10X,'Thermal properties at T = ',F10.3,' °K : ',5X,'|')
|
||
|
17 FORMAT(6X,'_________________________________________________________')
|
||
|
27 FORMAT(5X,'| |')
|
||
|
70 FORMAT(5X,'|_________________________________________________________|',/)
|
||
|
!
|
||
|
END SUBROUTINE PRINT_THERMAL_PROP
|
||
|
!
|
||
|
END MODULE PRINT_THERMAL
|