Fortran Mesh Object Subroutines

Create a new mesh object called cmo_name

cmo_create(cmo_name,ierror)

Get values of scalar attribute of the mesh object.

cmo_get_intinfo(ioption,cmo_name,iout,lout,itype,ierror)

ioption is the name of the mesh object attribute whose value is to be retrieved; the information retrieved may be one of these key words or it may be the name of a user supplied integer attribute  (generated by a cmo_addatt command):

    ----------- ------------------------------------------------
    ioption     number_of_attributes
                nnodes (number of nodes in the mesh)
                nelements (number of elements in the mesh)
                nfaces (number of unique topological facets)
                nedges (number of unique edges in mesh)
                mbndry (boundary node flag value)
                ndimensions_topo (topological dimensionality)
                ndimensions_geom
                nodes_per_element
                edges_per_element
                faces_per_element
    cmo_name    name of mesh object
    iout        value of attribute returned
    lout        length of attribute always 1
    itype       type of attribute always 1
    ierror      return flag (0= no errors)
    ----------- ------------------------------------------------

Return pointer to array attributes.

cmo_get_info(ioption, cmo_name, iout, lout, itype, ierror)

ioption - name of mesh object attribute.  It may be one of these keywords or a users supplied array attribute.

    --------------------- -------------------------------------------------------
    ioption (key words)   isetwd ( pset membership information)
                          ialias (alternate node numbers)
                          imt1 (node material)
                          itp1 (node type)
                          icr1 (constraint numbers for nodes)
                          isn1 (child, parent node correspondence)
                          ign1 (igeneration numbers for nodes)
                          xic, yic, zic (node coordinates
                          itetclr (integer array of element material)
                          itettyp (geometry of element)
                          xtetwd (eltset membership information)
                          itetoff (index into itet array for an element)
                          jtetoff (index into jtet array for an element)
                          itet (node vertices for each element)
                          jtet (element connectivity)
    cmo_name              name of mesh object
    iout                  pointer to the attribute if the attribute is a vector
    lout                  length of array associated with this pointer 
    itype                 type of attribute always 4
    ierror                return flag (0= no errors)
    --------------------- -------------------------------------------------------

Set values of integer  attribute of the mesh object.

cmo_set_info(ioption,cmo_name,data,lin,itype,ierror)

   ----------- -----------------------------------------
   ioption     attribute name
   cmo_name    name of mesh object
   data        value of the scalar attribute to be set
   lin         length code of attribute (1)
   itype       type of attribute (1)
   ----------- -----------------------------------------

Get the name of the current mesh object.

cmo_get_name(cmo_name,ierror)

This routine is useful when looping through all the attributes of a mesh object. To get the number of attributes use cmo_get_intinfo(‘number_of_attributes’).

cmo_get_attribute_name(cmo_name,attribute_index,attribute_name,ierror)

Adjust memory associated with mesh object. Must be called whenever the size of the mesh is adjusted in order to provide memory to the pointered attributes.

cmo_newlen(cmo_name,ierror)

Release a mesh object called cmo_name and release its memory. 

cmo_release(cmo_name,ierror)

Retrieve a mesh object value,  the attribute type will determine what is returned.

cmo_get_attinfo (ioption, cmo_name, iout, rout, cout, ipout, lout,itype, ierror)

 ----------------------- -------------------------------------------------------------------------------------------------
    ioption                 name of mesh object attribute 
    cmo_name                name of mesh object
    iout,rout,cout,ipout    returned value of attribute - only one of the four will be returned depending on attribute type
    ierror                  error return - 0 if no errors
    itype                   attribute type returned ( 1= integer, 2=real, 3=character, 4=pointer)
 ----------------------- -------------------------------------------------------------------------------------------------

Retrieve the integer values of the requested mesh object attributes length and rank.

cmo_get_length(att_name,cmo_name,length,irank,ierror)

   ----------- -------------------------------
    att_name    name of mesh object attribute
    cmo_name    name of mehs object
    length      length of attribute (integer)
    irank       rank of attribute (integer)
    ierror      return flag (0 = no errors)    
    ----------- -------------------------------

Set mesh object attribute values for integer, real or character attributes.

cmo_set_attinfo(ioption,cmo_name,idata,rdata,cdata,type_data,ierror)

    -------------------- ------------------------------------------------
    ioption              name of attribute
    cmo_name             name of mesh object 
    idata,rdata,cdata    value to be set depending on type of attribute
    type_data            type of data, 1=integer, 2=real, 3=character
    ierror               return flag (0 = no errors)
    -------------------- ------------------------------------------------

Return attribute definition:

cmo_get_attparam(ioption,cmo_name,index,ctype,crank,clen,cinter,cpers,cio,ierror)

    ----------- -----------------------------------------------------------------------------------------------------------
    ioption     character string that gives name of attribute.  This is required input parameter
    cmo_name    name of mesh object. This is an input parameter that is usually a character variable that contains 
                the name of the mesh object.
    index       attribute number 
    ctype       character string that gives type of attribute:  'INT' ,' REAL'   'CHARACTER', ' VINT (Vector of integers),
                'VDOUBLE' (vector of reals),  'VCHAR' (vector of characters)
    crank       character string that gives rank of attribute: e.g.'scalar', 'vector', 
                or the name of a user defined INT attribute.
    clen        chracter string that gives length of attribute: e.g. 'nnodes', 'nelements', 'scalar', 'vector', 
                or a user defined INT attribute
    cinter      character string that gives interpolation method: e.g. 'linear', 'log'
    cpers       character string that gives persistence: 'permanent' or 'temporary'
    cio         character string that gives i/o flags for writing attributes to a mesh file
    ierror      error flag ( 0= no errors)
    ----------- -----------------------------------------------------------------------------------------------------------

## CODE EXAMPLES

  call get_attinfo (‘ipointi’, acmo, firstpt, rout, cout, ipout, itype, ierror)

The value of the mesh object attribute ipointi wil be returned in the variable called firstpt.  A 1 will be returned in itype.

cmo_get_attinfo(‘geom_name’, cmoa, iout,rout,gname, ipout,itype,ierror)

The value of the mesh object attribute called geom_name in the mesh cmoa will be returned in the variable gname.  A 3 will be returned in itype.

cmo_get_attparam(‘ipointi’, cmoa, index, ctype,crank,clen,cinter,cpers,cio,ierror)

Returns: index=37, ctype=’INT’, crank=’scalar’,  clen=  ‘scalar’, cinter=  ‘constant’,  cpers =   ‘permanent’,cio=’l’.

cmo_set_attinfo(‘epsilonl’, -def-, idum, epsilonnew,cdum,2,ierror)

Changes the value of the current mesh object attribute named epsilonl to the value of the local real variable epsilonnew.