1. Harald Klimach
  2. aotus

Commits

Harald Klimach  committed d55601e

Added some description on the vectors

  • Participants
  • Parent commits 550fdc4
  • Branches default

Comments (0)

Files changed (1)

File Home.wiki

View file
  • Ignore whitespace
 * aotus_module: provides the high end level to easily retrieve data from a Lua
 script
 
+On top of those there is an additional aot_vector_module, which allows the
+reading of values into arrays of rank 1.
+
 It can be compiled by various modern Fortran compilers as outlined in
 [[CompilerSupport]].
 
 
 This should cover the most typical tasks for configurations.
 
+
+=== Vectors ===
+
+In addition to the scalar retrieval routines, there is an aot_vector_module
+provided, which provides interfaces with arrays of rank 1 to access vectorial
+data in form of tables.
+They follow the same interfaces, as the scalar routines, however the values,
+error codes and defaults have to be one-dimensional arrays.
+
+{{{
+#!fortran
+call get_config_val(conf, var, conf_val, errCode, default)
+}}}
+Where:
+* **conf**: is the Lua context of type flu_state
+* **var**: is a string identifying the variable you want to retrieve
+* **conf_val(:)**: is the array the vector should be stored in
+* **errCode(:)**: Returns an error code with various bits set for different errors,
+that might happen, while retrieving each component of the vector.
+They can be checked by ibset, and the different error codes are encoded in
+parameters:
+** aoterr_fatal: Something went irrecoverably wrong
+** aoterr_nonExistent: The requested component is not set in the Lua script
+** aoterr_wrongType: The requested component in the Lua script  does not meet the
+requested data type
+** For example you can check for a fatal error by using "ibset(errCode(1),
+aoterr_fatal)"
+* //optional// **default(:)**: A default vector to put into the variable, if the
+variable is not provided in the Lua script, it also fills vectors, which are
+only partially defined in the configuration script.
+
+The interface for vectors within other tables is defined accordingly.
+In the interface described above, the conf_val vector has a given size, and
+just the values need to be filled.
+However it might be necessary to retrieve arrays, of which the size is not
+known beforehand, and should depend on the table definition in the configuration.
+For these cases there are additional routines defined, which take allocatable
+arrays as input.
+These are then allocated and filled according to the configuration or the
+provided default vector.
+In these interfaces you have to provide an additional parameter **maxlength**,
+which limits the size of the vector to allocate.
+For undefined vectors zero sized arrays are returned for the values and the
+error codes.
+
 ----
 
 Welcome to your wiki! This is the default page we've installed for your convenience. Go ahead and edit it.