/// <summary>
        /// Create a dependant variable : it's a stored variable in a specific use template (implemented for a specific language)
        /// the variable has a data type fixed. If it's not the same, the variable value is converted into the good data type
        /// if needed, this variable makes a mutable parameter
        /// </summary>
        /// <param name="comp">compiler object</param>
        /// <param name="converter">language converter</param>
        /// <param name="proc">process</param>
        /// <param name="ut">UseTemplate object</param>
        /// <param name="valueName">name of the variable</param>
        /// <param name="desiredDataType">fixed data type</param>
        /// <returns>the name of the variable (it comes to non computable)</returns>
        public static string CreateDependantVariable(ICompilateur comp, ICodeConverter converter, IProcessInstance proc, UseTemplate ut, string valueName, EnumDataType desiredDataType)
        {
            string var = valueName;

            if (ut.Parameters.ContainsKey(valueName))
            {
                var = Helper.ReplaceStringParameter(ut, valueName);
            }
            // important : la variable n'est plus calculable
            IData newVar = Helper.ConvertNonComputableVariableType(proc, converter, var, desiredDataType);

            comp.UpdateParameters(converter, proc, newVar.Name, true);
            return(converter.ReturnVarName(newVar));
        }