22 #include "sll_assert.h" 
   23 #include "sll_working_precision.h" 
   40          compute_characteristics
 
   60          sll_real64, 
dimension(:), 
intent(in) :: a
 
   61          sll_real64, 
intent(in) :: dt
 
   62          sll_real64, 
dimension(:), 
intent(in) :: input
 
   63          sll_real64, 
dimension(:), 
intent(out) :: output
 
   73          sll_real64, 
intent(in)  :: eta
 
   74          sll_real64, 
intent(in) :: eta_min
 
   75          sll_real64, 
intent(in) :: eta_max
 
   86       sll_real64, 
intent(in)  :: eta
 
   87       sll_real64, 
intent(in) :: eta_min
 
   88       sll_real64, 
intent(in) :: eta_max
 
   91       eta_out = (eta - eta_min)/(eta_max - eta_min)
 
   92       eta_out = eta_out - real(floor(eta_out), kind=
f64)
 
   93       if (eta_out == 1._f64) 
then 
   96       if (.not. ((eta_out >= 0) .and. (eta_out < 1))) 
then 
   98          print *, 
'#eta_min=', eta_min
 
   99          print *, 
'#eta_max=', eta_max
 
  100          print *, 
'#(eta-eta_min)/(eta_max-eta_min)=', (eta - eta_min)/(eta_max - eta_min)
 
  101          print *, 
'#floor(-1e-19)', floor(-1e-19)
 
  102          print *, 
'#eta_out=', eta_out
 
  104       sll_assert((eta_out >= 0) .and. (eta_out < 1))
 
  105       eta_out = eta_min + eta_out*(eta_max - eta_min)
 
  106       sll_assert((eta_out >= eta_min) .and. (eta_out < eta_max))
 
  115       sll_real64, 
intent(in)  :: eta
 
  116       sll_real64, 
intent(in) :: eta_min
 
  117       sll_real64, 
intent(in) :: eta_max
 
  118       sll_real64 :: eta_out
 
  120       eta_out = (eta - eta_min)/(eta_max - eta_min)
 
  121       if (eta_out > 1) 
then 
  124       if (eta_out < 0) 
then 
  127       sll_assert((eta_out >= 0) .and. (eta_out <= 1))
 
  128       eta_out = eta_min + eta_out*(eta_max - eta_min)
 
  129       sll_assert((eta_out >= eta_min) .and. (eta_out <= eta_max))
 
Abstract class for characteristic derived type.
 
function, public sll_f_process_outside_point_set_to_limit(eta, eta_min, eta_max)
 
function, public sll_f_process_outside_point_periodic(eta, eta_min, eta_max)
 
Module to select the kind parameter.
 
integer, parameter, public f64
f64 is the kind type for 64-bit reals (double precision)