模板用户函数 (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(*)
形心位置和温度声明为参数。
StarReal 和 CoordReal 类型可定义浮点变量的精度,它们在 StarReal.f 文件中定义。