Home    Search    Reference Manuals    Return   




#
#
## Following curves are defined in this file
## -----------------------------------------
##  func char ctrack_design= Tangent_Track
##  func char ctrack_design= Curve_R200_h150_t120
##  func char ctrack_design= Curve_L200_h150_t120
##  func char ctrack_design= Curve_R300_h150_t120
##  func char ctrack_design= Curve_L300_h150_t120
##  func char ctrack_design= Curve_R400_h150_t120
##  func char ctrack_design= Curve_L400_h150_t120
##  func char ctrack_design= Curve_R600_h150_t120
##  func char ctrack_design= Curve_L600_h150_t120
##  func char ctrack_design= Curve_R1000_h150_t120
##  func char ctrack_design= Curve_L1000_h150_t120
##  func char ctrack_design= Curve_R1160_h150_t120
##  func char ctrack_design= Curve_L1160_h150_t120
##  func char ctrack_design= Curve_R1300_h150_t120
##  func char ctrack_design= Curve_L1300_h150_t120
##
#
#
# Definition of designed track geometry
# =====================================
#
#
  if_then_char_init ctrack_design .eq. Tangent_Track
   func const Curve_radius=0.
   func intpl_r ro_trac_design   -100 0    500 0
   func intpl_r f_trac_design    -100 0    500 0
   func intpl_r z_trac_design    -100 0    500 0
  endif
#
  if_then_char_init ctrack_design .eq. Curve_R200_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12     200    # Curve radius between s1 and s2
    func const ha12  0.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_L200_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12    -200    # Curve radius between s1 and s2
    func const ha12  -.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_R300_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12     300    # Curve radius between s1 and s2
    func const ha12  0.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_L300_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12    -300    # Curve radius between s1 and s2
    func const ha12  -.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_R400_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12     400    # Curve radius between s1 and s2
    func const ha12  0.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_L400_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12    -400    # Curve radius between s1 and s2
    func const ha12  -.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_R600_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12     600    # Curve radius between s1 and s2
    func const ha12  0.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_L600_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12    -600    # Curve radius between s1 and s2
    func const ha12  -.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_R1000_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12    1000    # Curve radius between s1 and s2
    func const ha12  0.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_L1000_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12   -1000    # Curve radius between s1 and s2
    func const ha12  -.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_R1160_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12    1160    # Curve radius between s1 and s2
    func const ha12  0.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_L1160_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12   -1160    # Curve radius between s1 and s2
    func const ha12  -.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_R1300_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12    1300    # Curve radius between s1 and s2
    func const ha12  0.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif
#
  if_then_char_init ctrack_design .eq. Curve_L1300_h150_t120

    func const s-1    -100    # Start of first tangent track
    func const s0        0    # Start of transition curve
    func const s1      120    # Start of circular curve
    func const s2      500    # End of circular curve
    func const R12   -1300    # Curve radius between s1 and s2
    func const ha12  -.150    # Cant between s1 and s2
    func const Curve_radius=R12
    s_var scalar_0 Curve_radius # Save Curve_radius for postprocessing

    func inv_init   R12inv   R12
    func operp_init f12      ha12 / bo / 2.
    func div_init   z12b     ha12   2.0
    func abs_init   z12a     z12b
    func copy_init  z12     -z12a

    func intpl_r ro_trac_design  s-1 0.0  s0 0.0  s1 R12inv  s2 R12inv
    func intpl_r f_trac_design   s-1 0.0  s0 0.0  s1 f12     s2 f12
    func intpl_r z_trac_design   s-1 0.0  s0 0.0  s1 z12     s2 z12
  endif