fixed wrong declaration in dispersion plus some cleaning in colddisp and hermitian

This commit is contained in:
Lorenzo Figini 2015-05-22 11:10:55 +00:00
parent df2faa8213
commit 89d104a299

View File

@ -3,9 +3,9 @@ module dispersion
use calcei_mod use calcei_mod
implicit none implicit none
integer, parameter :: dp=kind(1.0d0) integer, parameter :: dp=kind(1.0d0)
integer, parameter :: tmax=5,npts=500 integer, parameter :: npts=500
real(dp), save :: ttv(npts+1),extv(npts+1) real(dp), save :: ttv(npts+1),extv(npts+1)
real(dp), parameter :: dtex=2.0d0*tmax/dble(npts) real(dp), parameter :: tmax=5.0d0,dtex=2.0d0*tmax/dble(npts)
! !
contains contains
! !
@ -21,16 +21,14 @@ subroutine colddisp(xg,yg,npl,nprf,sox)
real(dp) :: nprf ! N perpendicular to B (cold) real(dp) :: nprf ! N perpendicular to B (cold)
real(dp) :: sox ! sox=-1 ==> O mode, sox=1 ==> X mode real(dp) :: sox ! sox=-1 ==> O mode, sox=1 ==> X mode
! !
real(dp) :: yg2,npl2,nprf2,n_f2,dnl,del real(dp) :: yg2,npl2,dnl,del,dxg
! !
npl2=npl*npl npl2=npl*npl
dnl=1.0d0-npl2 dnl=1.0d0-npl2
dxg=1.0d0-xg
yg2=yg*yg yg2=yg*yg
del=sqrt(dnl*dnl+4.0d0*npl2*(1.0d0-xg)/yg2) del=sqrt(dnl*dnl+4.0d0*npl2*dxg/yg2)
n_f2=1.0d0-xg-xg*yg2*(1.0d0+npl2+sox*del)/(1.0d0-xg-yg2)/2.0d0 nprf=sqrt(dxg-npl2-xg*yg2*(1.0d0+npl2+sox*del)/(dxg-yg2)/2.0d0)
!
nprf2=n_f2-npl2
nprf=sqrt(nprf2)
! !
end subroutine colddisp end subroutine colddisp
! !
@ -403,7 +401,6 @@ subroutine diel_tens_fr(xg,yg,mu,npl,e330,cr,ci,epsl,lrm,fast)
! !
llm=min(3,lrm) llm=min(3,lrm)
! !
dt=2.0d0*tmax/dble(npts)
bth2=2.0d0/mu bth2=2.0d0/mu
bth=sqrt(bth2) bth=sqrt(bth2)
mu2=mu*mu mu2=mu*mu
@ -417,7 +414,7 @@ subroutine diel_tens_fr(xg,yg,mu,npl,e330,cr,ci,epsl,lrm,fast)
upl2=bth2*x**2 upl2=bth2*x**2
upl=bth*x upl=bth*x
gx=1.0d0+t*t/mu gx=1.0d0+t*t/mu
exdx=cr*extv(i)*gx/rxt*dt exdx=cr*extv(i)*gx/rxt*dtex
! !
n1=1 n1=1
if(fast.gt.2) n1=-llm if(fast.gt.2) n1=-llm