UDPRIM train1 -
       purpose:
           serve as a template for UDP developer training
           it creates either:
               a straight WireBody aligned with a coordinate axis
               a rectangular SheetBody parallel to a coordinate plane
               a brick SolidBody
       input Bodys:
           -none-
       input arguments (specified as name/value pairs):
           lenx        length in x direction                   [default 0]
           leny        length in y direction                   [default 0]
           lenz        length in z direction                   [default 0]
           center      location of the center (3 values)       [default 0]
       output arguments:
           @@area      surface area (for SheetBody and SolidBody)
                                                               [default 0]
           @@volume    volume (for SolidBody)                  [default 0]
       usage notes:
           lenx, leny, and lenz must be non-negative scalars

           if lenx=leny=lenz=0
               an error is raised
           elseif lenx=leny=0
               a WireBody parallel to the Z-axis is generated
           elseif leny=lenz=0
               a WireBody parallel to the X-axis is generated
           elseif lenz=lenx=0
               a WireBody parallel to the Y-axis is generated
           elseif lenx=0
               a SheetBody parallel to the YZ-plane is generated
           elseif leny=0
               a SheetBody parallel to the ZX-plane is generated
           elseif lenz=0
               a SheetBody parallel to the XY-plane is generated
           else
               a SolidBody is generated

           if center has three values
               the Body is centered at the specified location
           else
               the Body is centered at the origin

           analytic sensitivities are computed
       contributed by:
           John Dannenhoffer john@geocentrictech.com
