
NAME
vemu02  reads a VECFEM mesh file
SYNOPSIS
 CALL VEMU02(

LIVEM, IVEM, LNEK, NEK,
LRPARM, RPARM, LIPARM, IPARM, LDNOD, DNOD, LRDPRM, RDPARM,
LIDPRM, IDPARM, LNODN, NODNUM, LNOD, NOD, LNOPRM, NOPARM,
LBIG, RBIG, IBIG)
 INTEGER

LIVEM, LNEK, LRPARM, LIPARM, LDNOD, LRDPRM,
LIDPRM, LNODN, LNOPRM, LBIG
 INTEGER

IVEM(LIVEM), NEK(LNEK), IPARM(LIPARM), DNOD(LDNOD),
IDPARM(LIDPRM), NODNUM(LNODN), IBIG(*)
 DOUBLE PRECISION

RPARM(LRPARM), RDPARM(LRDPRM),
NOD(LDNOD), NOPARM(LNOPRM), RBIG(LBIG)
PURPOSE
vemu02 reads the mesh from a file on the first process and distributes
the mesh to the processes. The data has to be written in the special format
specified below. Only isoparametrical meshes are supported. A
mixed finite element mesh can be created from the read
mesh by vemgen(later) or
vemge2. vemu02 can be called without a preceding
vemdis call, but you have
to call vemdis before you call any other
VECFEM routine.
ARGUMENTS
 LIVEM integer, scalar, input, local

Length of the integer information vector,
LIVEM>= MESH+ NINFO.
 IVEM integer, array: IVEM(LIVEM), input/output, local/global

Integer information vector.
 (1)=MESH, input, local

Start address of the mesh informations in IVEM,
MESH>203+ NPROC.
 (2)=ERR, output, global

Error number.
0  program terminated without error. 
90  LBIG is too small. 
95  mesh arrays are too small. 
96  unexpected element type. 
97  DIM or NK is illegal. 
99  fatal error.   (5)=NIVEM, output, local

Used length of IVEM.
 (27)=LOUT, input, local

Unit number of the standard output file, normally 6.
 (28)=OUTCNT, input, local

Output control flag, normally 1.
0  only error messages are printed. 
>0  a protocol is printed.   (29), input, local

Unit of the mesh file. The unit is only used on the process 1. On
the assigned data set the 'REWIND'command has to be executable.
 (200)=NPROC, input, global

Number of processes, see combgn.
 (201)=MYPROC, input, local

Logical process id number, see combgn.
 (202)=NMSG, input/output, global

Message counter. The difference of the input and the output values
gives the number of communications during the vemu02 call.
 (204)=TIDS(1), input, global

Begin of the list TIDS which defines the mapping of the
logical process ids to the physical process ids. See combgn.
 (MESH), input/output, local

Start of mesh informations, see mesh.
 (MESH+2)=NK, input, global

Number of solution components. If NK is greater than NK
specified in the mesh file, the missing components get no Dirichlet
conditions. If NK is lower than NK
specified in the mesh file, the additional components in the mesh file
are ignored.
 (MESH+3)=DIM, input, global

Space dimension, 1<=DIM<=3.
 LNEK integer, scalar, input, local

Length of the element array.
 NEK integer, array: NEK(LNEK), output, local

Array of the elements, see mesh.
 LRPARM integer, scalar, input, local

Length of the real parameter array.
 RPARM double precision, array: RPARM(LRPARM), output, local

Real parameter array, see mesh.
 LIPARM integer, scalar, input, local

Length of the integer parameter array.
 IPARM integer, array: IPARM(LIPARM), output, local

Integer parameter array, see mesh.
 LDNOD integer, scalar, input, local

Length of the array of the Dirichlet nodes.
 DNOD integer, array: DNOD(LDNOD), input, local

Array of the Dirichlet nodes, see mesh.
 LRDPRM integer, scalar, input, local

Length of the real Dirichlet parameter array.
 RDPARM double precision, array: RDPARM(LRDPRM), output, local

Array of the real Dirichlet parameters, see mesh.
 LIDPRM integer, scalar, input, local

Length of the integer Dirichlet parameter array.
 IDPARM integer, array: IDPARM(LIDPRM), output, local

Array of the integer Dirichlet parameters, see mesh.
 LNODN integer, scalar, input, local

Length of the array of the id numbers of the geometrical nodes.
 NODNUM integer, array: NODNUM(LNODN), output, local

Array of the id numbers of the geometrical nodes, see mesh.
 LNOD integer, scalar, input, local

Length of the array of the coordinates of the geometrical nodes.
 NOD double precision, array: NOD(LNOD), output, local

Array of the coordinates of the geometrical nodes, see mesh.
 LNOPRM integer, scalar, input, local

Length of the array of the node parameters.
 NOPARM double precision, array: NOPARM(LNOPRM), output, local

Array of the node parameters, see mesh.
 LBIG integer, scalar, input, local

Length of the real work array. The needed length of LBIG
depends on the given mesh. A
minimal length of LBIG cannot be given. It should be as
large as possible.
 RBIG double precision, array: RBIG(LBIG), work array, local

Real work array.
 IBIG integer, array: IBIG(*), work array, local

Integer work array, RBIG and IBIG have to be defined
by the EQUIVALENCE statement.
DATA FORMAT
The mesh file has three parts. In the first part the geometrical nodes
are specified, in the second part the elements are described and in the
third part the Dirichlet conditions are set.
Nodes
The node coordinates are written to unit UNIT by the following FORTRAN code:
WRITE(UNIT,*) NDEG
DO i=1,NDEG
WRITE(UNIT,*) NODNUM,NOD(1),NOD(2),NOD(3)
ENDDO
where NDEG is the number of nodes in the mesh and the node
with node id NODNUM has the coordinates
(NOD(1), NOD(2), NOD(3)).
For a twodimensional mesh, set NOD(3)=0;
for a onedimensional mesh, set NOD(2)=NOD(3)=0.
Elements
The elements are written to unit UNIT by the following FORTRAN code:
WRITE(UNIT,*) NGROUP
DO k=1,NGROUP
WRITE(UNIT,*) NE,CLASS,FORM,GEOTYP
DO i=1,NE
WRITE(UNIT,*) ELEMID,INDEX,(NEK(j),j=1,GEOTYP)
ENDDO
ENDDO
where NGROUP specifies the number of different element types and
NE the number of elements of type
(CLASS, FORM, GEOTYP). ELEMID is the id number of the element
and must be unique. INDEX is an arbitray integer values. It is stored
as the second integer vector parameter and can be used to refer into a
material table.
NEK gives the id number of the GEOTYP
nodes which describe the element. The following figure shows the allowed
elements of order two and the succession of the describing nodes:
domain 
CLASS 
FORM 
GEOTYP 
VECFEM elements 
point 
0 
1 
1 
1 
line 
1 
2 
3 
132 
area 
2 
3 
6 
3
 \
6 5
 \
142 

2 
4 
8 
473
 
8 6
 
152 
volume 
3 
6 
15 
6
/ : \
15 : 14
/ : \
4135
 : 
 12 
 : 
10 3 11
 / \ 
 9 8 
 / \
172 

3 
4 
10 
4
\ \
 \ 10
 \ \
 9 3
 \ / 
8 X 6
 / \ 
 7 \ 
 / \
152 

3 
8 
20 
8197
/ : /:
20 : 18 :
/ : / :
5176 :
 :  :
 16  15
13 : 14 :
 4113
 /  /
 12  10
 / /
192 
Additionally vemu02 considers all VECFEM elements which are
described in the manual.
Dirichlet Conditions
The Dirichlet conditions are written to unit UNIT by
the following FORTRAN code:
WRITE(UNIT,*) NK
DO d=1,NK
WRITE(UNIT,*) NDC
DO i=1,NDC
WRITE(UNIT,*) DNOD,PREVALUE
ENDDO
ENDDO
where NK specifies the number of solution components and
NDC the number of nodes with Dirichlet conditions for
component d. DNOD is the id number of the node at which a
Dirichlet condition is set, and PREVALUE is a real number which
in general specifies the value of the Dirichlet Condition at this node.
EXAMPLE
see vemexamples.
METHOD
On the first process,
vemu02 passes through the mesh file twice. In the first
pass the program checks the mesh file and computes the needed
length for the mesh arrays. In the second pass vemu02 reads the
mesh data and distributes the mesh to the other processes so that the
mesh arrays are occupied evenly.
The Nodes
If DIM=3, vemu02 reads the x1,x2 and x3coordinates from the mesh
file. If DIM=2, only the x1 and x2
coordinates are read, and if DIM=1, only the x1coordinate is read.
The Elements
The id numbers of the geometrical nodes which define the elements are
stored into NEK. The groups are split up by the element parameters
(GEOTYP,FORM,CLASS) so that a minimal number of groups
will be created. Therefore the actual number of groups in the mesh
could be different from the number of groups specified in the
mesh file. The element id is stored as the first integer vector parameter.
The index INDEX is stored as the second integer parameter.
Dirichlet Conditions
The id numbers of the geometrical nodes which are specified for
Dirichlet conditions are stored into DNOD. The real
parameter PREVALUE for the condition is stored as the first real vector
parameter.
REFERENCES
[FAQ], [DATAMAN], [DATAMAN2], [P_MPI].
SEE ALSO
VECFEM, vemcompile, vemrun, vemhint,
mesh, vemexamples, vemdis.
COPYRIGHTS
 Program by

Program by L. Grosz, 19941996.
opyrights by Universitaet Karlsruhe 19891996.
Copyrights by Lutz Grosz 1996.
All rights reserved. More details see VECFEM.
by L. Grosz, Auckland , 6. June, 2000.
