~siesta-ts/siesta/trunk_ts_soc

« back to all changes in this revision

Viewing changes to Util/Optical/optical_input.f

  • Committer: Nils Wittemeier
  • Date: 2019-02-14 07:45:07 UTC
  • mfrom: (746.1.15 trunk)
  • Revision ID: nils@4wittemeier.de-20190214074507-1mvzbmj9kw19gllr
MergedĀ trunkĀ 761

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
2
 
! Copyright (C) 1996-2016       The SIESTA group
 
2
! Copyright (C) 1996-2016       The SIESTA group
3
3
!  This file is distributed under the terms of the
4
4
!  GNU General Public License: see COPYING in the top directory
5
5
!  or http://www.gnu.org/copyleft/gpl.txt.
6
6
! See Docs/Contributors.txt for a list of contributors.
7
7
!
8
8
 
9
 
C Written by Daniel Sanchez-Portal
 
9
C     Written by Daniel Sanchez-Portal
10
10
 
11
 
       INTEGER*4 NE, NEMX, NSPIN, LASTI,NEXT
 
11
      program optical_input
 
12
      implicit none
 
13
      integer, parameter :: dp = selected_real_kind(10,100)
 
14
      
 
15
       INTEGER NE, NEMX, NSPIN, LASTI,NEXT
12
16
       PARAMETER (NEMX=10000)
13
 
       REAL*8 E(2),E2(NEMX,2),ESTEP
14
 
       REAL*8 OMEGA(NEMX), OMG, eV
15
 
       REAL*8 EMAX, EMIN, FSUM(2), THRESHOLD, THRES
16
 
       REAL*8 C,P,SUM,A,B, EPSMIN, SUM2 , EMAXP, DRUDE(2)
17
 
       PARAMETER (THRESHOLD=0.80)
 
17
       REAL(DP) E(2),E2(NEMX,2),ESTEP
 
18
       REAL(DP) OMEGA(NEMX), OMG, eV
 
19
       REAL(DP) EMAX, EMIN, FSUM(2), THRESHOLD, THRES
 
20
       REAL(DP) C,P,SUM,A,B, EPSMIN, SUM2 , EMAXP, DRUDE(2)
 
21
       PARAMETER (THRESHOLD=0.80_dp)
18
22
       PARAMETER (eV= 13.6058d0)     
19
 
       PARAMETER (EPSMIN=0.01)
 
23
       PARAMETER (EPSMIN=0.01_dp)
20
24
       PARAMETER (EMAXP=200.0d0)
21
 
       CHARACTER*3 CHAR
 
25
       CHARACTER(len=3) STR
22
26
       LOGICAL EXTEND, NONZERO
 
27
 
 
28
       integer :: i, isp
23
29
C
24
30
C
25
31
C
26
32
       READ(5,*) 
27
 
       READ(5,'(a,2f10.4)') CHAR, EMIN,EMAX
28
 
       write(6,*)  CHAR, EMIN,EMAX
 
33
       READ(5,'(a,2f10.4)') STR, EMIN,EMAX
 
34
       write(6,*)  STR, EMIN,EMAX
29
35
       READ(5,*)
30
 
       READ(5,'(a,i3)') CHAR, NSPIN
31
 
       write(6,*)  CHAR, NSPIN
 
36
       READ(5,'(a,i3)') STR, NSPIN
 
37
       write(6,*)  STR, NSPIN
32
38
       DO ISP=1,NSPIN
33
39
          READ(5,*) 
34
 
          READ(5,'(a,f10.4)') CHAR, FSUM(ISP)
35
 
          write(6,*)  CHAR,FSUM(ISP)
 
40
          READ(5,'(a,f10.4)') STR, FSUM(ISP)
 
41
          write(6,*)  STR,FSUM(ISP)
36
42
          READ(5,*)
37
 
          READ(5,'(a,f10.4)') CHAR, DRUDE(ISP)
38
 
          write(6,*)  CHAR, DRUDE(ISP)
 
43
          READ(5,'(a,f10.4)') STR, DRUDE(ISP)
 
44
          write(6,*)  STR, DRUDE(ISP)
39
45
       ENDDO 
40
46
       DO 10 I=1,NEMX+1
41
47
         READ(5,*,END=15) OMG,(E(ISP),ISP=1,NSPIN)
99
105
          C=E2(LASTI,ISP)*(EMAX/eV)**P
100
106
          
101
107
          B=SUM*0.01d0/FSUM(ISP)
102
 
          EMAX=DLOG(C/((P-2)*B) )/(P-2)
 
108
          EMAX=LOG(C/((P-2)*B) )/(P-2)
103
109
          EMAX=MIN(EMAX*eV,EMAXP)
104
110
        ENDIF
105
111