diff --git a/libhreels/myEels20.f90 b/libhreels/myEels20.f90 index 4bcdfb0cd00791cd58252f1300f3d96d0a09cd26..eea3d4becde86d22bb8530ecc07ca2ed100bdf84 100755 --- a/libhreels/myEels20.f90 +++ b/libhreels/myEels20.f90 @@ -20,10 +20,10 @@ subroutine doeels (e0, theta, phia, phib, wmin, wmax, dw, & integer, parameter :: nt = 5 double precision, intent(in) :: e0, theta, phia, phib, wmin, wmax, dw + integer, intent(in) :: name_size, osc_size, neps double precision, intent(in) :: thick(name_size), epsinf(name_size), osc(3, osc_size) character*10, intent(in) :: name(name_size) - character*10, intent(in) :: contrl, mode - integer, intent(in) :: name_size, osc_size, neps + character, intent(in) :: contrl(10), mode(10) integer, intent(in) :: wn_array_size integer, intent(in) :: layers, nper, nos(name_size) double precision, intent(out) :: wn_array(wn_array_size), f_array(wn_array_size) @@ -44,11 +44,11 @@ subroutine doeels (e0, theta, phia, phib, wmin, wmax, dw, & ru, um, dlimf, wn, user, ration common / mulayr / argmin, argmax, epsmac, flag + data aerr / 0.0d0 /, rerr / 1.0d-06 /, f / 0.0d0 /, f1 / 0.0d0 / + !if (present(debug)) debug = .True. debugFirstRun = .True. - data aerr / 0.0d0 /, rerr / 1.0d-06 /, f / 0.0d0 /, f1 / 0.0d0 / - ! *** machine-dependent constants ! *** epsmac + 1.0 = epsmac , cosh(argmin) = 1.0 , tanh(argmax) = 1.0 flag = 1 @@ -234,7 +234,9 @@ subroutine quanc8(fun, a, b, abserr, relerr, result, errest, nofun, flag, eps, d ! left to do when the limit on nofun was approached. implicit none - external fun + + fun + double precision :: fun double precision, intent(in) :: a double precision, intent(in) :: b @@ -552,9 +554,9 @@ double precision function fint1(u, eps, d, layers, nper, eps_size) double precision, intent(in) :: u + integer, intent(in) :: layers, nper, eps_size double precision, intent(in) :: d(eps_size) double complex, intent(in) :: eps(eps_size) - integer, intent(in) :: layers, nper, eps_size logical :: ration, user double precision :: acoef, bcoef, ccoef, cospsi, den, dif, dlimf, e, elleps @@ -611,9 +613,9 @@ double precision function fint2(u, eps, d, layers, nper, eps_size) double precision, intent(in) :: u + integer, intent(in) :: layers, nper, eps_size double precision, intent(in) :: d(eps_size) double complex, intent(in) :: eps(eps_size) - integer, intent(in) :: layers, nper, eps_size logical :: ration, user double precision :: a, arg, b, b2, c, ccoef, cospsi, dlimf, elleps, phi @@ -672,9 +674,9 @@ double precision function fint3(u, eps, d, layers, nper, eps_size) double precision, intent(in) :: u + integer, intent(in) :: layers, nper, eps_size double precision, intent(in) :: d(eps_size) double complex, intent(in) :: eps(eps_size) - integer, intent(in) :: layers, nper, eps_size logical :: ration, user double precision :: a, arg, b, ccoef, cospsi, dlimf, elleps, phi1, phi2 @@ -949,7 +951,8 @@ subroutine seteps(nos, osc_size, osc, epsinf, wn, nLayer, eps) ! * the present frequency wn (in cm**-1) * ! ****************************************************************** - ! implicit none + implicit none + integer, intent(in) :: nLayer integer, dimension(nLayer),intent(in) :: nos integer, intent(in) :: osc_size @@ -962,8 +965,9 @@ subroutine seteps(nos, osc_size, osc, epsinf, wn, nLayer, eps) double complex :: nomi, deno, addeps double precision :: wn2, b - integer :: flag + integer j, k, l, m logical debugFirstRun + common /control/ debugFirstRun j = 0