Macro in Navier-Stokes solver

Hi all,

Considering the example below, I have systematically a compilation error related to the macro ugradv. This macro is a copy/paste from a post published in this forum.
Any idea is welcome.

//Macro
macro grad(u) [dx(u), dy(u), dz(u)] //
macro Grad(U) [grad(U#x), grad(U#y), grad(U#z)] //
macro div(ux, uy, uz) (dx(ux) + dy(uy) + dz(uz)) //
macro Div(U) div(U#x, U#y, U#z) //
macro ugradv(ux,uy,uz,vx,vy,vz) [ [ux,uy,uz]'*grad(vx) , [ux,uy,uz]'*grad(vy) , [ux,uy,uz]'*grad(vz) ] //

func uIn=10.;

//Problem
solve NS ([ux, uy, uz, p],[vx, vy, vz, q])
	= int3d(Th)(
		+ Mu * (Grad(u) : Grad(v))
		- p * Div(v)
		- Div(u) * q
	)
	- int3d(Th)(
		 [fx, fy, fz]' * [vx, vy, vz]
	)
	+ int3d(Th)(ugradv(ux,uy,uz,ux,uy,uz)' * [vx,vy,vz])	
//	+ on(21, ux=0., uy=0.,  uz=0.)  // liquid
	+ on(20, ux=0., uy=0.,  uz=0.)  // gas
    + on(19, ux=0., uy=uIn, uz=0)   // inlet
	+ on(22, ux=0., uy=0.,  uz=0.); // wall

ugradv(ux,uy,uz,ux,uy,uz) is illegal
It should be ugradv(ux,uy,uz,uxold,uyold,uzold) or something linear.

Thank you, I’m going to investigate this point (I’m new comer in using freefem)