!*****************************************************************************************************!
! TITLE: CFVR5101 - Bridge Stretch
! SUBTITLE:
!
! DESCRIPTION: The example is a bridge with the following geometry:
! DESCRIPTION:
! DESCRIPTION: Plan View
! DESCRIPTION:
! DESCRIPTION: - Straight line: From MP 90 to MP 120.
! DESCRIPTION:
! DESCRIPTION: - Clothoid: From MP 120 (radius = 0) to MP 170 (radius = -80).
! DESCRIPTION:
! DESCRIPTION: - Arc: From MP 170 to MP 200 (radius = -80).
! DESCRIPTION:
! DESCRIPTION: - Straight line: From MP 200 to MP 300.
! DESCRIPTION:
! DESCRIPTION: Elevation View
! DESCRIPTION:
! DESCRIPTION: - Straight line: From MP 90 to MP 150 (3% slope).
! DESCRIPTION:
! DESCRIPTION: - Parabola: From MP 150 (3% slope) to MP 200 (-2% slope).
! DESCRIPTION:
! DESCRIPTION: The aim of the example is to verify the geometry of a bridge.
!
! ELEMENT TYPE: NONE
! MODULES: NLBR
! UNITS: SI
! KEYWORD1: Bridges
!
!*************************************************************************************!

  FINISH
  ~CFCLEAR,,1
  ~CFACTIV,NLBR,Y
  NomFile='CFVR5101'
  /TITLE, %NomFile%, Bridge Stretch

! -------------------------------------------------------------------------------------
! Initial data
! -------------------------------------------------------------------------------------
! CivilFEM SETUP

  ~UNITS,SI
  ~CODESEL,EC3-92,EHE,,,EC8-94

/PREP7
~brang,DEG
~brinip,2,3,4,5,6,7
~braddpl, 90,120,   0,   0   ! Straight line
~braddpl,   ,170,   0, -80   ! Clothoid
~braddpl,   ,200, -80, -80   ! Arc
~braddpl,   ,300,   0,   0,15*0.9 ! Twisted straight line
~braddel, 90,150,   3,   3   ! Straight line
~braddel,   ,200,   3,  -2   ! Parabola

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp    = 25
  NComp_ch = 1

! Marix dim.
  *DIM,LABEL,CHAR,Ncomp,1
  *DIM,LABEL_CH,CHAR,Ncomp_ch,1
  *DIM,VALUE,,Ncomp,3
  *DIM,VALUE_CH,CHAR,Ncomp_ch,3
  *DIM,TOLER,,Ncomp,2

! Correct data, Labels, obtained data
!--------------------------------------------------------------------------------------
   VALUE( 1,1) =  2           $     LABEL( 1)  = 'vx'
   VALUE( 2,1) =  3           $     LABEL( 2)  = 'vy'
   VALUE( 3,1) =  4           $     LABEL( 3)  = 'vz'
   VALUE( 4,1) =  5           $     LABEL( 4)  = 'px'
   VALUE( 5,1) =  6           $     LABEL( 5)  = 'py'
   VALUE( 6,1) =  7           $     LABEL( 6)  = 'pz'
   VALUE_CH( 1,1) = 'DEG'     $     LABEL_CH(1)= 'ANG'
   VALUE( 7,1) =  4           $     LABEL( 7)  = 'Pl Count'
   VALUE( 8,1) =  90          $     LABEL( 8)  = 'MP 1 p 1'
   VALUE( 9,1) = 120          $     LABEL( 9)  = 'MP 1 p 2'
   VALUE(10,1) = 120          $     LABEL(10)  = 'MP 2 p 1'
   VALUE(11,1) = 170          $     LABEL(11)  = 'MP 2 p 2'
   VALUE(12,1) = 170          $     LABEL(12)  = 'MP 3 p 1'
   VALUE(13,1) = 200          $     LABEL(13)  = 'MP 3 p 2'
   VALUE(14,1) =  2           $     LABEL(14)  = 'El Count'
   VALUE(15,1) =  90          $     LABEL(15)  = 'MP 1 e 1'
   VALUE(16,1) = 150          $     LABEL(16)  = 'MP 1 e 2'
   VALUE(17,1) = 150          $     LABEL(17)  = 'MP 2 e 1'
   VALUE(18,1) = 200          $     LABEL(18)  = 'MP 2 e 2'
   VALUE(19,1) = 1            $     LABEL(19)  = 'Type p 1'
   VALUE(20,1) = 3            $     LABEL(20)  = 'Type p 2'
   VALUE(21,1) = 2            $     LABEL(21)  = 'Type p 3'
   VALUE(22,1) = 0            $     LABEL(22)  = 'A p 1'
   VALUE(23,1) = -SQRT(50*80) $     LABEL(23)  = 'A p 2'
   VALUE(24,1) = -80          $     LABEL(24)  = 'A p 3'
   VALUE(25,1) = 15*0.9       $     LABEL(25)  = 'ANG p 4'

   ~CFGET,VALUE( 1,2),BRIDGE,,STRETCH,VINI,,1
   ~CFGET,VALUE( 2,2),BRIDGE,,STRETCH,VINI,,2
   ~CFGET,VALUE( 3,2),BRIDGE,,STRETCH,VINI,,3
   ~CFGET,VALUE( 4,2),BRIDGE,,STRETCH,PINI,,1
   ~CFGET,VALUE( 5,2),BRIDGE,,STRETCH,PINI,,2
   ~CFGET,VALUE( 6,2),BRIDGE,,STRETCH,PINI,,3
   ~CFGET,VALUE_CH( 1,2),BRIDGE,,STRETCH,ANG,
   ~CFGET,VALUE( 7,2),BRIDGE,,STRETCH,PLANT,COUNT,
   ~CFGET,VALUE( 8,2),BRIDGE,,STRETCH,PLANT,MP,1,1
   ~CFGET,VALUE( 9,2),BRIDGE,,STRETCH,PLANT,MP,1,2
   ~CFGET,VALUE(10,2),BRIDGE,,STRETCH,PLANT,MP,2,1
   ~CFGET,VALUE(11,2),BRIDGE,,STRETCH,PLANT,MP,2,2
   ~CFGET,VALUE(12,2),BRIDGE,,STRETCH,PLANT,MP,3,1
   ~CFGET,VALUE(13,2),BRIDGE,,STRETCH,PLANT,MP,3,2
   ~CFGET,VALUE(14,2),BRIDGE,,STRETCH,ELEV,COUNT,
   ~CFGET,VALUE(15,2),BRIDGE,,STRETCH,ELEV,MP,1,1
   ~CFGET,VALUE(16,2),BRIDGE,,STRETCH,ELEV,MP,1,2
   ~CFGET,VALUE(17,2),BRIDGE,,STRETCH,ELEV,MP,2,1
   ~CFGET,VALUE(18,2),BRIDGE,,STRETCH,ELEV,MP,2,2
   ~CFGET,VALUE(19,2),BRIDGE,,STRETCH,PLANT,TYPE,1
   ~CFGET,VALUE(20,2),BRIDGE,,STRETCH,PLANT,TYPE,2
   ~CFGET,VALUE(21,2),BRIDGE,,STRETCH,PLANT,TYPE,3
   ~CFGET,VALUE(22,2),BRIDGE,,STRETCH,PLANT,PARAM,1
   ~CFGET,VALUE(23,2),BRIDGE,,STRETCH,PLANT,PARAM,2
   ~CFGET,VALUE(24,2),BRIDGE,,STRETCH,PLANT,PARAM,3
   ~CFGET,VALUE(25,2),BRIDGE,,STRETCH,PLANT,ANG,4

 ~braddel,   ,300,
 ~BRSKTCH

! Warning and error tolerances
   *DO,II,1,NComp
     TOLER(II, 1)= 1E-9
     TOLER(II, 2)= 1E-9
   *ENDDO

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
