Commit 5c0b58c7 authored by Matthias Redies's avatar Matthias Redies

introduce types to intgrf

parent 885948ee
......@@ -100,7 +100,7 @@
integrand = hybdat%core1(:, i, l, itype)*hybdat%core1(:, j, l, itype)&
& + hybdat%core2(:, i, l, itype)*hybdat%core2(:, j, l, itype)
IF (mpi%irank == 0) WRITE (6, '(F10.6)', advance='no')&
& intgrf(integrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
& intgrf(integrand, atoms, itype, hybdat%gridf)
END DO
IF (mpi%irank == 0) WRITE (6, *)
END DO
......@@ -130,7 +130,7 @@
& + hybdat%core2(:, i, l, itype)*hybdat%bas2(:, j, l, itype)
olapcb(j) = &
& intgrf(integrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
& intgrf(integrand, atoms, itype, hybdat%gridf)
IF (mpi%irank == 0)&
& WRITE (6, '(F10.6)', advance='no') olapcb(j)
......@@ -211,7 +211,7 @@
& + hybdat%bas2(:, i, l, itype)*hybdat%bas2(:, j, l, itype)
IF (mpi%irank == 0) WRITE (6, '(F10.6)', advance='no')&
& intgrf(integrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
& intgrf(integrand, atoms, itype, hybdat%gridf)
END DO
IF (mpi%irank == 0) WRITE (6, *)
END DO
......
......@@ -313,12 +313,12 @@ CONTAINS
DO i = 1, mpbasis%num_rad_bas_fun(l, itype)
! note that mpbasis%radbasfn_mt already contains the factor rgrid
moment(i, l, itype) = intgrf(atoms%rmsh(:, itype)**(l + 1)*mpbasis%radbasfn_mt(:, i, l, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
END DO
END DO
DO i = 1, mpbasis%num_rad_bas_fun(0, itype)
moment2(i, itype) = intgrf(atoms%rmsh(:, itype)**3*mpbasis%radbasfn_mt(:, i, 0, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
END DO
END DO
call timestop("calc moments of MT")
......@@ -384,11 +384,11 @@ CONTAINS
! note that mpbasis%radbasfn_mt already contains one factor rgrid
olap(n, l, itype, iqnrm) = &
intgrf(atoms%rmsh(:, itype)*mpbasis%radbasfn_mt(:, n, l, itype)*sphbes_var(:, l), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
integral(n, l, itype, iqnrm) = &
intgrf(atoms%rmsh(:, itype)*mpbasis%radbasfn_mt(:, n, l, itype)*sphbesmoment1(:, l), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
END DO
END DO
......@@ -439,8 +439,7 @@ CONTAINS
integrand = mpbasis%radbasfn_mt(:, n1, l, itype)*(primf1 + primf2)
! call intgr0( (4*pimach())/(2*l+1)*integrand,rmsh(1,itype),dx(itype),jri(itype),mat(n2*(n2-1)/2+n1) )
mat(n2*(n2 - 1)/2 + n1) = (4*pi_const)/(2*l + 1) &
*intgrf(integrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, &
atoms%ntype, itype, gridf)
*intgrf(integrand, atoms, itype, gridf)
END DO
END DO
......@@ -1583,18 +1582,18 @@ CONTAINS
IF (l == 0) THEN
coeff(j) = SQRT(4*pi_const) &
*intgrf(atoms%rmsh(:, itype)*mpbasis%radbasfn_mt(:, i, 0, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf) &
atoms, itype, gridf) &
/SQRT(cell%vol)
claplace(j) = -SQRT(4*pi_const) &
*intgrf(atoms%rmsh(:, itype)**3*mpbasis%radbasfn_mt(:, i, 0, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf) &
atoms, itype, gridf) &
/SQRT(cell%vol)
ELSE IF (l == 1) THEN
cderiv(j, M) = -SQRT(4*pi_const/3)*CMPLX(0.0, 1.0) &
*intgrf(atoms%rmsh(:, itype)**2*mpbasis%radbasfn_mt(:, i, 1, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf) &
atoms, itype, gridf) &
/SQRT(cell%vol)
END IF
END DO
......
......@@ -157,8 +157,7 @@ CONTAINS
primf2(:atoms%jri(itype)) = primf2(:atoms%jri(itype))*atoms%rmsh(:atoms%jri(itype), itype)**(l + 1)
DO j = 1, n
integrand = fprod(:, j)*(primf1 + primf2)
integral(i, j) = fpi_const/(2*l + 1)*intgrf(integrand, atoms%jri, atoms%jmtd, atoms%rmsh, &
atoms%dx, atoms%ntype, itype, hybdat%gridf)
integral(i, j) = fpi_const/(2*l + 1)*intgrf(integrand, atoms, itype, hybdat%gridf)
END DO
END DO
......@@ -345,8 +344,7 @@ CONTAINS
primf2(:atoms%jri(itype)) = primf2(:atoms%jri(itype))*atoms%rmsh(:atoms%jri(itype), itype)**(l + 1)
DO j = 1, n
integrand = fprod(:, j)*(primf1 + primf2)
integral(i, j) = fpi_const/(2*l + 1)*intgrf(integrand, atoms%jri, atoms%jmtd, atoms%rmsh, &
atoms%dx, atoms%ntype, itype, hybdat%gridf)
integral(i, j) = fpi_const/(2*l + 1)*intgrf(integrand, atoms, itype, hybdat%gridf)
END DO
END DO
......@@ -510,8 +508,7 @@ CONTAINS
integrand = rprod*(primf1 + primf2)
rdum1 = rdum*intgrf(integrand, atoms%jri, atoms%jmtd, &
atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
rdum1 = rdum*intgrf(integrand, atoms, itype, hybdat%gridf)
iatom = iatom0
DO ieq = 1, atoms%neq(itype)
......@@ -692,7 +689,7 @@ CONTAINS
integrand = rprod*(primf1 + primf2)
rdum2 = rdum1*intgrf(integrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
rdum2 = rdum1*intgrf(integrand, atoms, itype, hybdat%gridf)
iatom = iatom0
DO ieq = 1, atoms%neq(itype)
......
......@@ -250,8 +250,8 @@ CONTAINS
hybdat%prod%n1(n,l,itype) = n1
hybdat%prod%n2(n,l,itype) = n2
DO i = 1, mpbasis%num_rad_bas_fun(l, itype)
hybdat%prodm(i, n, l, itype) = intgrf(basprod(:ng)*mpbasis%radbasfn_mt(:ng, i, l, itype), atoms%jri, &
atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
hybdat%prodm(i, n, l, itype) = intgrf(basprod(:ng)*mpbasis%radbasfn_mt(:ng, i, l, itype), &
atoms, itype, hybdat%gridf)
END DO
END IF
END DO
......
......@@ -2278,9 +2278,10 @@ CONTAINS
DO j = 1, n
! Integration over r
integrand = fprod(:, j)*sum_primf
integral(i, j) = fpi_const/(2*l + 1)* &
intgrf(integrand, jri, jmtd, rmsh, &
dx, ntype, itype, gridf)
call juDFT_error("stop the following line has to be reimplemented:")
! integral(i, j) = fpi_const/(2*l + 1)* &
! intgrf(integrand, jri, jmtd, rmsh, &
! dx, ntype, itype, gridf)
END DO
END DO
......@@ -2512,7 +2513,8 @@ CONTAINS
integrand = rprod*sum_primf
rdum1 = rdum*intgrf(integrand, jri, jmtd, rmsh, dx, ntype, itype, gridf)
call juDFT_error("stop the following line has to be reimplemented:")
!rdum1 = rdum*intgrf(integrand, jri, jmtd, rmsh, dx, ntype, itype, gridf)
iatom = iatom0
DO ieq = 1, neq(itype)
......
......@@ -125,13 +125,13 @@ CONTAINS
kb = 1.0/ws*wronskian(hybdat%bas1_MT(1, l, itype), hybdat%drbas1_MT(1, l, itype), hybdat%bas1_MT(p, l, itype), hybdat%drbas1_MT(p, l, itype))
integrand = hybdat%bas1(:, 2, l, itype)*hybdat%bas1(:, 2, l, itype) + hybdat%bas2(:, 2, l, itype)*hybdat%bas2(:, 2, l, itype)
olap_udot = intgrf(integrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
olap_udot = intgrf(integrand, atoms, itype, hybdat%gridf)
integrand = hybdat%bas1(:, 1, l, itype)*hybdat%bas1(:, p, l, itype) + hybdat%bas2(:, 1, l, itype)*hybdat%bas2(:, p, l, itype)
olap_uulo = intgrf(integrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
olap_uulo = intgrf(integrand, atoms, itype, hybdat%gridf)
integrand = hybdat%bas1(:, 2, l, itype)*hybdat%bas1(:, p, l, itype) + hybdat%bas2(:, 2, l, itype)*hybdat%bas2(:, p, l, itype)
olap_udotulo = intgrf(integrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
olap_udotulo = intgrf(integrand, atoms, itype, hybdat%gridf)
rdum = ka**2 + (kb**2)*olap_udot + 1.0 + 2.0*ka*olap_uulo + 2.0*kb*olap_udotulo
clo(ilo, itype) = 1.0/sqrt(rdum)
......@@ -502,8 +502,8 @@ CONTAINS
iintegrand = atoms%rmsh(:, itype)*(hybdat%bas1(:, p, l, itype)*iu1(:, i, iband) + hybdat%bas2(:, p, l, itype)*iu2(:, i, iband))
carr2(i, iband) = intgrf(rintegrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf) &
+ img*intgrf(iintegrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
carr2(i, iband) = intgrf(rintegrand, atoms, itype, hybdat%gridf) &
+ img*intgrf(iintegrand, atoms, itype, hybdat%gridf)
END DO
END DO
......@@ -543,8 +543,8 @@ CONTAINS
iintegrand = atoms%rmsh(:, itype)*(u1_lo(:, ilo, itype)*iu1(:, i, iband) + u2_lo(:, ilo, itype)*iu2(:, i, iband))
carr2(i, iband) = intgrf(rintegrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf) &
+ img*intgrf(iintegrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
carr2(i, iband) = intgrf(rintegrand, atoms, itype, hybdat%gridf) &
+ img*intgrf(iintegrand, atoms, itype, hybdat%gridf)
END DO
END DO
......@@ -592,8 +592,8 @@ CONTAINS
- iu1(:, i, iband1)*ru1(:, j, iband2) - iu2(:, i, iband1)*ru2(:, j, iband2))
olap_ibsc(i, j, iband2, iband1) = olap_ibsc(i, j, iband2, iband1) &
+ intgrf(rintegrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf) &
+ img*intgrf(iintegrand, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
+ intgrf(rintegrand, atoms, itype, hybdat%gridf) &
+ img*intgrf(iintegrand, atoms, itype, hybdat%gridf)
END DO
END DO
......@@ -880,9 +880,9 @@ CONTAINS
DO n1 = 1, hybrid%num_radfun_per_l(l - 1, itype)
ic = ic + 1
qmat1(n1, n2, l, itype) = intgrf(dbas1(:)*hybdat%bas1(:, n1, l - 1, itype) + &
dbas2(:)*hybdat%bas2(:, n1, l - 1, itype), atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf) &
dbas2(:)*hybdat%bas2(:, n1, l - 1, itype), atoms, itype, hybdat%gridf) &
+ intgrf((hybdat%bas1(:, n2, l, itype)*hybdat%bas1(:, n1, l - 1, itype) + hybdat%bas2(:, n2, l, itype)*hybdat%bas2(:, n1, l - 1, itype)) &
/atoms%rmsh(:, itype), atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)*(l + 1)
/atoms%rmsh(:, itype), atoms, itype, hybdat%gridf)*(l + 1)
END DO
END IF
......@@ -890,9 +890,9 @@ CONTAINS
DO n1 = 1, hybrid%num_radfun_per_l(l + 1, itype)
qmat2(n1, n2, l, itype) = intgrf(dbas1(:)*hybdat%bas1(:, n1, l + 1, itype) + dbas2(:)*hybdat%bas2(:, n1, l + 1, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf) &
atoms, itype, hybdat%gridf) &
- intgrf((hybdat%bas1(:, n2, l, itype)*hybdat%bas1(:, n1, l + 1, itype) + hybdat%bas2(:, n2, l, itype)*hybdat%bas2(:, n1, l + 1, itype)) &
/atoms%rmsh(:, itype), atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)*l
/atoms%rmsh(:, itype), atoms, itype, hybdat%gridf)*l
END DO
END IF
......
......@@ -286,7 +286,7 @@ CONTAINS
DO i = 1, nn
DO j = 1, i
rdum1 = intgrf(mpbasis%radbasfn_mt(:,i, l, itype)*mpbasis%radbasfn_mt(:,j, l, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
IF (i == j) THEN
rdum1 = ABS(1 - rdum1)
......@@ -351,7 +351,7 @@ CONTAINS
rdum = 0
DO i = 1, mpbasis%num_rad_bas_fun(l, itype)
rdum1 = intgrf(atoms%rmsh(:n_grid_pt, itype)**(l + 1)*mpbasis%radbasfn_mt(:n_grid_pt, i, l, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
IF (ABS(rdum1) > rdum) THEN
n_radbasfn = i
rdum = rdum1
......@@ -383,10 +383,10 @@ CONTAINS
IF (i == n_radbasfn) CYCLE
! calculate moment of radial function i
rdum1 = intgrf(atoms%rmsh(:n_grid_pt, itype)**(l + 1)*mpbasis%radbasfn_mt(:n_grid_pt, i, l, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
rdum = intgrf(atoms%rmsh(:n_grid_pt, itype)**(l + 1)*mpbasis%radbasfn_mt(:n_grid_pt, n_radbasfn, l, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
bashlp(:n_grid_pt) = mpbasis%radbasfn_mt(:n_grid_pt, n_radbasfn, l, itype)
......@@ -404,7 +404,7 @@ CONTAINS
- rdum/SQRT(rdum**2 + rdum1**2)*mpbasis%radbasfn_mt(:n_grid_pt, i, l, itype)
rdum1 = intgrf(atoms%rmsh(:n_grid_pt, itype)**(l + 1)*mpbasis%radbasfn_mt(:n_grid_pt, i, l, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
IF (rdum1 > 1E-10) call judft_error('moment of radial function does not vanish', calledby='mixedbasis')
......@@ -416,7 +416,7 @@ CONTAINS
DO i = 1, mpbasis%num_rad_bas_fun(l, itype)
DO j = 1, mpbasis%num_rad_bas_fun(l, itype)
rdum1 = intgrf(mpbasis%radbasfn_mt(:n_grid_pt, i, l, itype)*mpbasis%radbasfn_mt(:n_grid_pt, j, l, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
IF (i /= j) THEN
rdum = rdum + rdum1
ELSE
......@@ -426,8 +426,8 @@ CONTAINS
END DO
IF (mpi%irank == 0) &
WRITE (6, '(6x,I4,'' ->'',f10.5,'' ('',ES8.1,'' )'')') n_radbasfn, &
intgrf(atoms%rmsh(:n_grid_pt, itype)**(l + 1)*mpbasis%radbasfn_mt(:n_grid_pt, n_radbasfn, l, itype), atoms%jri, &
atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf), rdum
intgrf(atoms%rmsh(:n_grid_pt, itype)**(l + 1)*mpbasis%radbasfn_mt(:n_grid_pt, n_radbasfn, l, itype), &
atoms, itype, gridf), rdum
END DO
END DO
......@@ -531,7 +531,7 @@ CONTAINS
DO l = 0, atoms%lmax(itype)
DO i = 1, hybrid%num_radfun_per_l(l, itype)
norm = sqrt(intgrf(bas1(:,i, l, itype, jspin)**2 + bas2(:,i, l, itype, jspin)**2, &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf))
atoms, itype, gridf))
bas1(:atoms%jri(itype), i, l, itype, jspin) = bas1(:atoms%jri(itype), i, l, itype, jspin)/norm
bas2(:atoms%jri(itype), i, l, itype, jspin) = bas2(:atoms%jri(itype), i, l, itype, jspin)/norm
END DO
......@@ -579,7 +579,7 @@ CONTAINS
norm = SQRT( &
intgrf(mpbasis%radbasfn_mt(:,i_basfn, l, itype)**2, &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype,&
atoms,&
itype, gridf)&
)
end function calc_radbas_norm
......@@ -606,7 +606,7 @@ CONTAINS
DO n2 = 1, n_radbasfn
DO n1 = 1, n2
olap(n1, n2) = intgrf(mpbasis%radbasfn_mt(:,n1, l, itype)*mpbasis%radbasfn_mt(:,n2, l, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
atoms, itype, gridf)
olap(n2, n1) = olap(n1, n2)
END DO
END DO
......@@ -687,13 +687,13 @@ CONTAINS
DO j = i + 1, nn + 1
mpbasis%radbasfn_mt(:n_grid_pt, i, 0, itype) = mpbasis%radbasfn_mt(:n_grid_pt, i, 0, itype) &
- intgrf(mpbasis%radbasfn_mt(:n_grid_pt, i, 0, itype)*mpbasis%radbasfn_mt(:n_grid_pt, j, 0, itype), &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf) &
atoms, itype, gridf) &
*mpbasis%radbasfn_mt(:n_grid_pt, j, 0, itype)
END DO
mpbasis%radbasfn_mt(:n_grid_pt, i, 0, itype) = mpbasis%radbasfn_mt(:n_grid_pt, i, 0, itype) &
/SQRT(intgrf(mpbasis%radbasfn_mt(:n_grid_pt, i, 0, itype)**2, &
atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf))
atoms, itype, gridf))
END DO
nn = nn + 1
mpbasis%num_rad_bas_fun(l, itype) = nn
......
......@@ -187,7 +187,7 @@ CONTAINS
olapmt(n1, n2, l, itype) = intgrf( &
& bas1(:, n1, l, itype)*bas1(:, n2, l, itype)&
& + bas2(:, n1, l, itype)*bas2(:, n2, l, itype),&
& atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, gridf)
& atoms, itype, gridf)
! olapmt(n2,n1,l,itype) = olapmt(n1,n2,l,itype)
END DO
END DO
......
......@@ -390,7 +390,7 @@ CONTAINS
olapmt(n1, n2, l, itype) = intgrf( &
& hybdat%bas1(:, n1, l, itype)*hybdat%bas1(:, n2, l, itype)&
& + hybdat%bas2(:, n1, l, itype)*hybdat%bas2(:, n2, l, itype),&
& atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, atoms%ntype, itype, hybdat%gridf)
& atoms, itype, hybdat%gridf)
END DO
END DO
END DO
......
......@@ -19,20 +19,21 @@ CONTAINS
! Before first use of this function it has to be initialized with
! intgrf_init.
FUNCTION intgrf(f, jri, jmtd, rmsh, dx, ntype, itype, gridf)
FUNCTION intgrf(f, atoms, itype, gridf)
use m_juDFT
use m_types_setup
IMPLICIT NONE
REAL :: intgrf
INTEGER, INTENT(IN) :: itype, ntype, jmtd
INTEGER, INTENT(IN) :: jri(ntype)
REAL, INTENT(IN) :: dx(ntype), rmsh(jmtd, ntype)
REAL, INTENT(IN) :: gridf(jmtd, ntype)
REAL :: intgrf
type(t_atoms) :: atoms
INTEGER, INTENT(IN) :: itype
REAL, INTENT(IN) :: gridf(atoms%jmtd, atoms%ntype)
REAL, INTENT(IN) :: f(*)
! - local -
TYPE(intgrf_out) :: fct_res
fct_res = pure_intgrf(f, jri, jmtd, rmsh, dx, ntype, itype, gridf)
fct_res = pure_intgrf(f, atoms%jri, atoms%jmtd, atoms%rmsh, atoms%dx, &
atoms%ntype, itype, gridf)
IF (fct_res%ierror == NEGATIVE_EXPONENT_WARNING) THEN
write (6, *) 'intgrf: Warning!'// &
'Negative exponent x in extrapolation a+c*r**x'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment