FUNCTION variable_value_type
(variable : GENERIC) : STRING;
LOCAL svt : STRING; feacr : STRING; variable_typeof : SET [1:?] OF STRING; END_LOCAL; svt := 'FEA_SCALAR_VECTOR_TENSOR_SCHEMA.'; feacr := 'FINITE_ELEMENT_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.'; variable_typeof := TYPEOF (variable);
IF SIZEOF ([(feacr + 'CURVE_SCALAR_VARIABLE'), (feacr + 'SURFACE_SCALAR_VARIABLE'), (feacr + 'VOLUME_SCALAR_VARIABLE'), (feacr + 'BOUNDARY_CURVE_SCALAR_VARIABLE'), (feacr + 'BOUNDARY_SURFACE_SCALAR_VARIABLE'), (feacr + 'AGGREGATED_SCALAR_VARIABLE'), (feacr + 'VOLUME_ANGULAR_VARIABLE'), (feacr + 'AGGREGATED_ANGULAR_VARIABLE'), (feacr + 'APPLICATION_DEFINED_SCALAR_VARIABLE')] * variable_typeof ) = 1 THEN RETURN (svt + 'SCALAR'); END_IF;
IF SIZEOF ([(feacr + 'CURVE_VECTOR_2D_VARIABLE'), (feacr + 'SURFACE_VECTOR_2D_VARIABLE'), (feacr + 'APPLICATION_DEFINED_VECTOR_2D_VARIABLE')] * variable_typeof ) = 1 THEN RETURN (svt + 'TENSOR1_2D'); END_IF;
IF SIZEOF ([(feacr + 'CURVE_VECTOR_3D_VARIABLE'), (feacr + 'SURFACE_VECTOR_3D_VARIABLE'), (feacr + 'VOLUME_VECTOR_3D_VARIABLE'), (feacr + 'BOUNDARY_CURVE_VECTOR_3D_VARIABLE'), (feacr + 'BOUNDARY_SURFACE_VECTOR_3D_VARIABLE'), (feacr + 'AGGREGATED_VECTOR_3D_VARIABLE'), (feacr + 'APPLICATION_DEFINED_VECTOR_3D_VARIABLE')] * variable_typeof ) = 1 THEN RETURN (svt + 'TENSOR1_3D'); END_IF;
IF SIZEOF ([(feacr + 'SURFACE_TENSOR2_2D_VARIABLE'), (feacr + 'APPLICATION_DEFINED_TENSOR2_2D_VARIABLE')] * variable_typeof ) = 1 THEN RETURN (svt + 'SYMMETRIC_TENSOR2_3D'); END_IF;
IF SIZEOF ([(feacr + 'VOLUME_TENSOR2_3D_VARIABLE'), (feacr + 'AGGREGATED_TENSOR2_3D_VARIABLE'), (feacr + 'APPLICATION_DEFINED_TENSOR2_3D_VARIABLE')] * variable_typeof ) = 1 THEN RETURN (svt + 'SYMMETRIC_TENSOR2_3D'); END_IF;
RETURN ('NO_MATCH'); END_FUNCTION; -- variable_value_type
|