66       c_dyn, test_filter, mij, lij, num, den)
 
   67    logical, 
intent(in) :: if_ext
 
   68    real(kind=
rp), 
intent(in) :: t
 
   69    integer, 
intent(in) :: tstep
 
   70    type(
coef_t), 
intent(in) :: coef
 
   71    type(
field_t), 
intent(inout) :: nut
 
   72    type(
field_t), 
intent(in) :: delta
 
   73    type(
field_t), 
intent(inout) :: c_dyn
 
   75    type(
field_t), 
intent(inout) :: mij(6), lij(6)
 
   76    type(
field_t), 
intent(inout) :: num, den
 
   78    type(
field_t), 
pointer :: u, v, w
 
   81    type(
field_t), 
pointer :: s11, s22, s33, s12, s13, s23, s_abs
 
   82    real(kind=
rp) :: alpha 
 
   83    integer :: temp_indices(7)
 
   86    if (tstep .eq. 1) 
then 
   92    if (if_ext .eqv. .true.) 
then 
  112    call strain_rate(s11%x, s22%x, s33%x, s12%x, s13%x, s23%x, u, v, w, coef)
 
  114    call coef%gs_h%op(s11%x, s11%dof%size(), 
gs_op_add)
 
  115    call coef%gs_h%op(s22%x, s11%dof%size(), 
gs_op_add)
 
  116    call coef%gs_h%op(s33%x, s11%dof%size(), 
gs_op_add)
 
  117    call coef%gs_h%op(s12%x, s11%dof%size(), 
gs_op_add)
 
  118    call coef%gs_h%op(s13%x, s11%dof%size(), 
gs_op_add)
 
  119    call coef%gs_h%op(s23%x, s11%dof%size(), 
gs_op_add)
 
  121    do concurrent(i = 1:u%dof%size())
 
  122       s11%x(i,1,1,1) = s11%x(i,1,1,1) * coef%mult(i,1,1,1)
 
  123       s22%x(i,1,1,1) = s22%x(i,1,1,1) * coef%mult(i,1,1,1)
 
  124       s33%x(i,1,1,1) = s33%x(i,1,1,1) * coef%mult(i,1,1,1)
 
  125       s12%x(i,1,1,1) = s12%x(i,1,1,1) * coef%mult(i,1,1,1)
 
  126       s13%x(i,1,1,1) = s13%x(i,1,1,1) * coef%mult(i,1,1,1)
 
  127       s23%x(i,1,1,1) = s23%x(i,1,1,1) * coef%mult(i,1,1,1)
 
  130    do concurrent(i = 1:u%dof%size())
 
  131       s_abs%x(i,1,1,1) = sqrt(2.0_rp * (s11%x(i,1,1,1)*s11%x(i,1,1,1) + &
 
  132            s22%x(i,1,1,1)*s22%x(i,1,1,1) + &
 
  133            s33%x(i,1,1,1)*s33%x(i,1,1,1)) + &
 
  134            4.0_rp * (s12%x(i,1,1,1)*s12%x(i,1,1,1) + &
 
  135            s13%x(i,1,1,1)*s13%x(i,1,1,1) + &
 
  136            s23%x(i,1,1,1)*s23%x(i,1,1,1)))
 
  141         s_abs, test_filter, delta, u%dof%size())
 
  144    do concurrent(i =1:u%dof%size())
 
  145       if (den%x(i,1,1,1) .gt. 0.0_rp) 
then 
  146          c_dyn%x(i,1,1,1) = 0.5_rp * (num%x(i,1,1,1)/den%x(i,1,1,1))
 
  148          c_dyn%x(i,1,1,1) = 0.0_rp
 
  150       c_dyn%x(i,1,1,1) = 
max(c_dyn%x(i,1,1,1),0.0_rp)
 
  151       nut%x(i,1,1,1) = c_dyn%x(i,1,1,1) * delta%x(i,1,1,1)**2 &
 
  156    call col2(nut%x, coef%mult, nut%dof%size())
 
 
  171    type(
field_t), 
intent(inout) :: lij(6)
 
  172    type(
field_t), 
pointer, 
intent(in) :: u, v, w
 
  174    integer, 
intent(in) :: n
 
  177    integer :: temp_indices(3)
 
  178    type(
field_t), 
pointer :: fu, fv, fw
 
  184    call test_filter%apply(fu, u)
 
  185    call test_filter%apply(fv, v)
 
  186    call test_filter%apply(fw, w)
 
  189    do concurrent(i = 1:n)
 
  190       lij(1)%x(i,1,1,1) = fu%x(i,1,1,1) * fu%x(i,1,1,1)
 
  191       lij(2)%x(i,1,1,1) = fv%x(i,1,1,1) * fv%x(i,1,1,1)
 
  192       lij(3)%x(i,1,1,1) = fw%x(i,1,1,1) * fw%x(i,1,1,1)
 
  193       lij(4)%x(i,1,1,1) = fu%x(i,1,1,1) * fv%x(i,1,1,1)
 
  194       lij(5)%x(i,1,1,1) = fu%x(i,1,1,1) * fw%x(i,1,1,1)
 
  195       lij(6)%x(i,1,1,1) = fv%x(i,1,1,1) * fw%x(i,1,1,1)
 
  201    call col3(fu%x, u%x, u%x, n)
 
  202    call test_filter%apply(fv, fu)
 
  203    call sub2(lij(1)%x, fv%x, n)
 
  205    call col3(fu%x, v%x, v%x, n)
 
  206    call test_filter%apply(fv, fu)
 
  207    call sub2(lij(2)%x, fv%x, n)
 
  209    call col3(fu%x, w%x, w%x, n)
 
  210    call test_filter%apply(fv, fu)
 
  211    call sub2(lij(3)%x, fv%x, n)
 
  213    call col3(fu%x, u%x, v%x, n)
 
  214    call test_filter%apply(fv, fu)
 
  215    call sub2(lij(4)%x, fv%x, n)
 
  217    call col3(fu%x, u%x, w%x, n)
 
  218    call test_filter%apply(fv, fu)
 
  219    call sub2(lij(5)%x, fv%x, n)
 
  221    call col3(fu%x, v%x, w%x, n)
 
  222    call test_filter%apply(fv, fu)
 
  223    call sub2(lij(6)%x, fv%x, n)
 
 
  241       s_abs, test_filter, delta, n)
 
  242    type(
field_t), 
intent(inout) :: mij(6)
 
  243    type(
field_t), 
intent(inout) :: s11, s22, s33, s12, s13, s23, s_abs
 
  245    type(
field_t), 
intent(in) :: delta
 
  246    integer, 
intent(in) :: n
 
  248    integer :: temp_indices(7)
 
  249    type(
field_t), 
pointer :: fs11, fs22, fs33, fs12, fs13, fs23, fs_abs
 
  250    real(kind=
rp) :: delta_ratio2 
 
  252    real(kind=
rp) :: delta2
 
  254    delta_ratio2 = ((test_filter%nx-1.0_rp)/(test_filter%nt-1.0_rp))**2
 
  266    call test_filter%apply(fs_abs, s_abs)
 
  268    call test_filter%apply(fs11, s11)
 
  269    call col3(mij(1)%x, fs_abs%x, fs11%x, n)
 
  270    call cmult(mij(1)%x, delta_ratio2, n)
 
  272    call test_filter%apply(fs22, s22)
 
  273    call col3(mij(2)%x, fs_abs%x, fs22%x, n)
 
  274    call cmult(mij(2)%x, delta_ratio2, n)
 
  276    call test_filter%apply(fs33, s33)
 
  277    call col3(mij(3)%x, fs_abs%x, fs33%x, n)
 
  278    call cmult(mij(3)%x, delta_ratio2, n)
 
  280    call test_filter%apply(fs12, s12)
 
  281    call col3(mij(4)%x, fs_abs%x, fs12%x, n)
 
  282    call cmult(mij(4)%x, delta_ratio2, n)
 
  284    call test_filter%apply(fs13, s13)
 
  285    call col3(mij(5)%x, fs_abs%x, fs13%x, n)
 
  286    call cmult(mij(5)%x, delta_ratio2, n)
 
  288    call test_filter%apply(fs23, s23)
 
  289    call col3(mij(6)%x, fs_abs%x, fs23%x, n)
 
  290    call cmult(mij(6)%x, delta_ratio2, n)
 
  296    call col3(fs11%x, s_abs%x, s11%x, n)
 
  297    call test_filter%apply(fs22, fs11)
 
  298    call sub2(mij(1)%x, fs22%x, n)
 
  300    call col3(fs11%x, s_abs%x, s22%x, n)
 
  301    call test_filter%apply(fs22, fs11)
 
  302    call sub2(mij(2)%x, fs22%x, n)
 
  304    call col3(fs11%x, s_abs%x, s33%x, n)
 
  305    call test_filter%apply(fs22, fs11)
 
  306    call sub2(mij(3)%x, fs22%x, n)
 
  308    call col3(fs11%x, s_abs%x, s12%x, n)
 
  309    call test_filter%apply(fs22, fs11)
 
  310    call sub2(mij(4)%x, fs22%x, n)
 
  312    call col3(fs11%x, s_abs%x, s13%x, n)
 
  313    call test_filter%apply(fs22, fs11)
 
  314    call sub2(mij(5)%x, fs22%x, n)
 
  316    call col3(fs11%x, s_abs%x, s23%x, n)
 
  317    call test_filter%apply(fs22, fs11)
 
  318    call sub2(mij(6)%x, fs22%x, n)
 
  321    do concurrent(i = 1:n)
 
  322       delta2 = delta%x(i,1,1,1)**2
 
  323       mij(1)%x(i,1,1,1) = mij(1)%x(i,1,1,1) * delta2
 
  324       mij(2)%x(i,1,1,1) = mij(2)%x(i,1,1,1) * delta2
 
  325       mij(3)%x(i,1,1,1) = mij(3)%x(i,1,1,1) * delta2
 
  326       mij(4)%x(i,1,1,1) = mij(4)%x(i,1,1,1) * delta2
 
  327       mij(5)%x(i,1,1,1) = mij(5)%x(i,1,1,1) * delta2
 
  328       mij(6)%x(i,1,1,1) = mij(6)%x(i,1,1,1) * delta2
 
 
  341    type(
field_t), 
intent(inout) :: num, den
 
  342    type(
field_t), 
intent(in) :: lij(6), mij(6)
 
  343    real(kind=
rp), 
intent(in) :: alpha
 
  344    integer, 
intent(in) :: n
 
  346    real(kind=
rp), 
dimension(n) :: num_curr, den_curr
 
  349    do concurrent(i = 1:n)
 
  350       num_curr(i) = mij(1)%x(i,1,1,1)*lij(1)%x(i,1,1,1) + &
 
  351            mij(2)%x(i,1,1,1)*lij(2)%x(i,1,1,1) + &
 
  352            mij(3)%x(i,1,1,1)*lij(3)%x(i,1,1,1) + &
 
  353            2.0_rp*(mij(4)%x(i,1,1,1)*lij(4)%x(i,1,1,1) + &
 
  354            mij(5)%x(i,1,1,1)*lij(5)%x(i,1,1,1) + &
 
  355            mij(6)%x(i,1,1,1)*lij(6)%x(i,1,1,1))
 
  356       den_curr(i) = mij(1)%x(i,1,1,1)*mij(1)%x(i,1,1,1) + &
 
  357            mij(2)%x(i,1,1,1)*mij(2)%x(i,1,1,1) + &
 
  358            mij(3)%x(i,1,1,1)*mij(3)%x(i,1,1,1) + &
 
  359            2.0_rp*(mij(4)%x(i,1,1,1)*mij(4)%x(i,1,1,1) + &
 
  360            mij(5)%x(i,1,1,1)*mij(5)%x(i,1,1,1) + &
 
  361            mij(6)%x(i,1,1,1)*mij(6)%x(i,1,1,1))
 
  365    do concurrent(i = 1:n)
 
  366       num%x(i,1,1,1) = alpha * num%x(i,1,1,1) + (1.0_rp - alpha) * num_curr(i)
 
  367       den%x(i,1,1,1) = alpha * den%x(i,1,1,1) + (1.0_rp - alpha) * den_curr(i)