def _writeCrossSectionLink(self, link, fileObject, replaceParamFile):
        """
        Write Cross Section Link to File Method
        """
        linkType = link.type

        # Write cross section link header
        dx = vwp(link.dx, replaceParamFile)
        try:
            fileObject.write('DX             %.6f\n' % dx)
        except:
            fileObject.write('DX             %s\n' % dx)

        fileObject.write('%s\n' % linkType)
        fileObject.write('NODES          %s\n' % link.numElements)

        for node in link.nodes:
            # Write node information
            fileObject.write('NODE %s\n' % node.nodeNumber)
            fileObject.write('X_Y  %.6f %.6f\n' % (node.x, node.y))
            fileObject.write('ELEV %.6f\n' % node.elevation)

            if node.nodeNumber == 1:
                # Write cross section information after first node
                fileObject.write('XSEC\n')

                # Cases
                if 'TRAPEZOID' in linkType or 'TRAP' in linkType:
                    # Retrieve cross section
                    xSec = link.trapezoidalCS

                    # Write cross section properties
                    mannings_n = vwp(xSec.mannings_n, replaceParamFile)
                    bottomWidth = vwp(xSec.bottomWidth, replaceParamFile)
                    bankfullDepth = vwp(xSec.bankfullDepth, replaceParamFile)
                    sideSlope = vwp(xSec.sideSlope, replaceParamFile)

                    try:
                        fileObject.write('MANNINGS_N     %.6f\n' % mannings_n)
                    except:
                        fileObject.write('MANNINGS_N     %s\n' % mannings_n)

                    try:
                        fileObject.write('BOTTOM_WIDTH   %.6f\n' % bottomWidth)
                    except:
                        fileObject.write('BOTTOM_WIDTH   %s\n' % bottomWidth)

                    try:
                        fileObject.write('BANKFULL_DEPTH %.6f\n' % bankfullDepth)
                    except:
                        fileObject.write('BANKFULL_DEPTH %s\n' % bankfullDepth)

                    try:
                        fileObject.write('SIDE_SLOPE     %.6f\n' % sideSlope)
                    except:
                        fileObject.write('SIDE_SLOPE     %s\n' % sideSlope)

                    # Write optional cross section properties
                    self._writeOptionalXsecCards(fileObject=fileObject, xSec=xSec, replaceParamFile=replaceParamFile)

                elif 'BREAKPOINT' in linkType:
                    # Retrieve cross section
                    xSec = link.breakpointCS

                    # Write cross section properties
                    mannings_n = vwp(xSec.mannings_n, replaceParamFile)
                    try:
                        fileObject.write('MANNINGS_N     %.6f\n' % mannings_n)
                    except:
                        fileObject.write('MANNINGS_N     %s\n' % mannings_n)

                    fileObject.write('NPAIRS         %s\n' % xSec.numPairs)
                    fileObject.write('NUM_INTERP     %s\n' % vwp(xSec.numInterp, replaceParamFile))


                    # Write optional cross section properties
                    self._writeOptionalXsecCards(fileObject=fileObject, xSec=xSec, replaceParamFile=replaceParamFile)

                    # Write breakpoint lines
                    for bp in xSec.breakpoints:
                        fileObject.write('X1   %.6f %.6f\n' % (bp.x, bp.y))
                else:
                    log.error('OOPS: MISSED A CROSS SECTION TYPE. CIF LINE 580. {0}'.format(linkType))
Write Cross Section Link to File Method