模板用户函数 (Fortran)

本节提供有助于创建用户函数的模板。

用户函数的通用目的在于根据此模板,使用通过对 args(参数) 进行运算获得的值填充 result(结果) 组分表,如示例中所示:

subroutine name(result, size, args ...)
use StarRealMod
integer, intent(in) :: size

name(名称):函数名。 这是任意名称:Simcenter STAR-CCM+ 不会对特定功能施加特定函数名。 但是,有一些受保护的名称必须避免:ucarg、ucfunc、ucfunction、uclib、ufarg、uffunc、uflib

result(结果):用户函数返回的值的组分表。 它声明为:

real(StarReal), intent(out) :: result(size)

(对于标量函数),或者:

real(StarReal), intent(out) :: result(3,size)

(对于矢量函数)。 result(结果) 组分表的每个元素表示一个网格单元或面,具体取决于用户函数的类型。

size(尺寸)result(结果) 组分表中的元素数量。

args(参数)Simcenter STAR-CCM+ 传递到函数的参数从可用变量的列表中选择并通过 ufarg 请求。 下表中提供了包含各类元素的 arg(参数) 组分表的声明形式。

元素类型 声明(所有 intent(in)

int

integer arg(*)

实部

real(StarReal) arg(*)

unsigned int

integer arg(*)

Vector<2, unsigned int>

integer arg(2,*)

Vector<3, CoordReal>

real(CoordReal) arg(3,*)

Vector<3, Real>

real(StarReal) arg(3,*)

例如,将

real(CoordReal), intent(in) :: centroid(3,*)
real(StarReal), intent(in) :: temperature(*)

形心位置和温度声明为参数。

StarRealCoordReal 类型可定义浮点变量的精度,它们在 StarReal.f 文件中定义。